Event Index
An open directory of public event calendars.
Event Index keeps a directory of public calendar feeds from Luma, Meetup®, Mobilizon, Google Calendar and any site that publishes iCalendar. It reads each feed every few hours and serves every event as iCalendar, jCal and schema.org JSON-LD, and on nostr as a NIP-52 calendar event signed by a key of the calendar's own, so any app can show it and its organizer stays its host.
Event Index is not affiliated with any platform it reads. Event details belong to their organizers; see each event's own page.
Find a calendar
Add a calendar
Paste the address of a public calendar feed (it often ends in .ics, or starts with webcal://). A maintainer reviews each one before it is indexed. Addresses that carry a private token, and personal calendar links, are refused.
In numbers
101 calendars · 510 upcoming events · 101 feeds read in the last day
The whole directory, nightly: index.db (SQLite: directory entries, calendar metadata and poll statistics, no event content), dedicated to the public domain under CC0 1.0.
API
Base address https://api.eventindex.space/api/1.0. No key, open to any origin. Events come as jCal by default, .ics for iCalendar, .json for schema.org JSON-LD.
/calendars/byfeedurl?url= | a calendar by its feed address |
/calendars/byslug/<local name> | a calendar by its local name |
/calendars/byguid/<npub> | a calendar by its nostr key |
/search/calendars/byterm?q=&near=&tag= | calendars by name, area (geohash) or topic |
/events/bycalendar/<local name>?from=&to= | a calendar's events |
/events/byid/<id>[.ics|.json] | one event |
/search/events/byterm?q=&from=&to=&near=&radius=&tag= | events by text, time, area or topic |
/ics/calendar/<local name>.ics | a calendar as an iCalendar feed |
/ics/city/<city>.ics | a city's calendars as one feed |
/stats | the numbers below |
/dump/index.db | the directory as a SQLite file |
Adding a feed is POST https://api.eventindex.space/api/1.0/feeds/add with {"url": "…"}; a maintainer reviews it. The full reference and the data terms are in spec/api.md. Keep each event's link to its own page and credit its organizer and platform when you show it.
On nostr
Relay wss://relay.eventindex.space. The directory is a list (kind 39999 entries) signed by the index key npub1evntrs9lke80t8qrhtkvmnt36985w7nzjehjh7779se7lq8hvmwqg3n44p, _@eventindex.space. Each calendar's key has a name at /.well-known/nostr.json: <local name>@eventindex.space.
Organizers
If your calendar is here and you would rather it were not, find it above and use the form on its page. Once a request is approved, the index stops reading the feed, deletes the calendar's upcoming events from relays that honor deletions, and never indexes it again.