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.json

application/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.xml

application/rss+xml — RSS 2.0, one item per event, for feed readers and newsroom tooling.

Events calendar
https://thinktankcalendar.com/feeds/upcoming.ics

text/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.

Feeds | Think Tank Calendar