Feeds
Think Tank Calendar publishes its calendar as open feeds — JSON, RSS and iCalendar. They are free, need no key, and cover the last 7 days and the next 60 days, ACTIVE events only, in chronological order, up to 500 events per response.
The whole calendar
Events JSON
https://thinktankcalendar.com/feeds/events.jsonapplication/json — Structured events — start and end in the event’s own timezone, organizer, topics, registration link. The richest of the three.
Events RSS
https://thinktankcalendar.com/feeds/rss.xmlapplication/rss+xml — RSS 2.0, one item per event, for feed readers and newsroom tooling.
Events calendar
https://thinktankcalendar.com/feeds/upcoming.icstext/calendar — An iCalendar subscription — paste the URL into Google Calendar, Apple Calendar or Outlook and the events appear alongside your own.
One topic, one organization
Replace the placeholder in braces. The topic slugs are listed on the topics index.
One topic, as RSS
https://thinktankcalendar.com/feeds/topics/{slug}/rss.xml
Every event carrying one canonical topic or region tag.
One topic, as a calendar
https://thinktankcalendar.com/topics/{slug}.ics
The same events as an iCalendar subscription.
One organization, as a calendar
https://thinktankcalendar.com/org/{id}.ics
Every event hosted by one organization. The {id} is the last segment of its page URL.
What the JSON contains
Every key below is always present. Fields marked reserved have no data behind them yet and are returned as null (or an empty array) rather than omitted, so the shape never changes under you.
- generated_at
- When this response was built (UTC).
- window
- The { start, end } instants the feed covers.
- count
- How many events are in this response.
- events
- The array described below.
Each entry of events[]
- id
- Stable event identifier, shared with the RSS guid and the calendar UID.
- url
- The event’s page here.
- name
- Event title.
- description
- Full description text, unclipped, or null.
- start
- ISO 8601 with the event’s own UTC offset.
- end
- Same shape as start, or null when the event has no stated end.
- timezone
- IANA timezone name, or null when the source did not state one.
- time_precision
- "datetime", or "date" for an all-day entry whose start is a plain date.
- attendance
- VIRTUAL, INPERSON or HYBRID.
- location
- Venue object: name today; street, city, region, postal_code and country are reserved and currently null.
- virtual_url
- Reserved — currently null.
- organizer
- { id, name, url, page_url } — the organizer’s own site and its page here.
- topics
- Canonical topic slugs, the same slugs the topic pages use.
- registration_url
- Where to register, on the organizer’s own site.
- source_url
- Reserved — currently null.
- cost
- { is_free, amount, currency } — is_free is true only when the source stated a free event; null means unknown.
- speakers
- Reserved — currently an empty array.
- language
- Reserved — currently null.
- updated_at
- When this event record last changed (UTC).
How often they refresh
New events are ingested continuously; each feed response is cached for one hour at the edge and served stale for up to a day if the origin is unreachable. Polling more than once an hour will not show you anything new — hourly is plenty, and calendar clients should keep their own default schedule.
Using the data
Please use the feeds freely, and please credit them: an attribution reading “Event data from Think Tank Calendar” with a link to thinktankcalendar.com is all we ask. Each event links back to the organizer’s own registration page — send people there to register, and tell us at contact@thinktankcalendar.com if a field you need is missing.