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>.icsa calendar as an iCalendar feed
/ics/city/<city>.icsa city's calendars as one feed
/statsthe numbers below
/dump/index.dbthe 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.