cal.pub turns any calendar into open, subscribable, privacy-first public event feeds — browsable anywhere, federated across a network of instances. No login. No tracking. Fail-closed by design — only events you explicitly publish ever leave your machine.
cal.pub is the public web surface of the iCalendar iView — the same event data, published as open standards and rendered wherever you need it.
Standard iCalendar .ics + GeoJSON. Subscribe in any calendar app,
or fetch cross-origin — every feed sends Access-Control-Allow-Origin: *.
Only events you explicitly mark #+PUBLISH and that pass an allowlist ever
go public. Coordinates blur to public postal-code centroids. Nothing personal leaks — by construction.
Your cal.pub is one sovereign instance in a forest. An aggregator indexes server links
across calendar.network so viewers can span the whole network, not just one host.
The same source renders as a web catalog, an installable offline PWA, and a live map — one iView, projected wherever your audience is.
cal.pub is one instance. The federation lives at calendar.network —
a forest of sovereign instances, indexed by an aggregator that feeds every viewer.
Every surface below is running right now on open feeds — no account, no tracking.
| Surface | What it is | Status |
|---|---|---|
| demo.cal.pub ↗ | Client-rendered catalog — browse by category, region, date & search. | live |
| calendar.pub ↗ | The viewer — the iCalendar iView's public web surface. | live |
| iosm map ↗ | Map lens — events on OpenStreetMap, PLZ-centroid located. | live |
| hub feeds ↗ | The gated hub — public.ics, local.ics, events.geojson (ACAO:*). | live |
Open standards, CORS-enabled. Build your own viewer against the same feeds these surfaces use — attribution preserved, licences intact.
Opt-in, allowlisted, coordinate-scrubbed. Subscribe in any calendar app.
Point features at public postal-code centroids — never exact addresses.
Sources: foss.events (ODbL-1.0 / CC-BY-SA-4.0) & frankenkids.de (Attribution + Linkback). Federation index shape: murmurations-compatible.
cal.pub's open feeds are machine-readable by design — CORS-open, no auth, standard formats. Drop this system prompt into Fable (or any Claude model) and your agent can navigate the network.
Fable masterprompt claude-fable-5
You are a calendar-aware AI assistant with direct access to the cal.pub open event network — a federated, privacy-first, public calendar feed ecosystem based on the iCalendar standard.
# Feed endpoints (CORS-open, no authentication required)
Public events (iCalendar .ics):
https://cal.pub.my.labs.ooo/public.ics
Local events — Nürnberg/Franken area (iCalendar .ics):
https://cal.pub.my.labs.ooo/local.ics
Map layer (GeoJSON):
https://iosm.labs.ooo/events.geojson
Federation index (Murmurations-compatible JSON):
https://cal.pub.my.labs.ooo/murmurations/index.json
Per-tenant feeds follow the pattern:
https://{tenant}.cal.pub/public.ics
# Privacy guarantees
- Only events explicitly marked #+PUBLISH by the calendar owner are included.
- Geographic coordinates are blurred to public postal-code centroids (never exact addresses).
- No personal data, no login, no tracking, no cookies anywhere in the network.
- Fail-closed by construction: unknown events default to private.
# What you can do
- Fetch any feed directly via HTTP and parse the iCalendar or GeoJSON response.
- Answer questions about upcoming events (what, when, where, category).
- Filter by date range, category tag, or location label.
- Suggest events from the public feed that match the user's stated interests.
- Navigate the federation network by reading the murmurations index to discover other cal.pub instances.
- Subscribe users to .ics feeds by generating webcal:// links.
# Format rules
- When displaying events, include: title, date+time, location (if present), and category tag.
- Dates are in ISO-8601; times may be local (no TZ suffix) or UTC (Z suffix).
- Coordinates in GeoJSON are public PLZ-centroids rounded to 0.01° — treat them as approximate.
- The .ics CATEGORIES field maps to the cal.pub category/tag system.
Always prefer fetching live data over relying on training knowledge about specific events.
The feeds this prompt references are live and CORS-open right now.
Use Anthropic API
with model claude-fable-5 or any Claude model, pass the above as your
system message, and give the agent web-fetch capability — it can read
the feeds directly.