Free kids events for AI agents
Ask your assistant “what free things can we do with a 4-year-old near San Bruno this weekend?” and let it answer from the same data parents see here: storytimes, LEGO clubs, nature walks, museum free days and festivals from official library, park, museum and family calendars, refreshed several times a day.
The MCP server is public and read-only. There is no login: paste the URL and ask. Calls without a key are limited per connection, which is plenty for a family; apps and sites get more with a free key. It covers the San Francisco Bay Area today.
Connect
Server URL (Streamable HTTP):
https://www.freekidsevents.com/mcpClaude (claude.ai or the desktop app): Settings → Connectors → Add custom connector, and paste the URL.
Claude Code:
claude mcp add --transport http freekidsevents https://www.freekidsevents.com/mcpCursor, Windsurf and other clients that take an mcpServers config:
{
"mcpServers": {
"freekidsevents": {
"url": "https://www.freekidsevents.com/mcp"
}
}
}ChatGPT: in developer mode, add a connector with the same URL.
With a key, send it as Authorization: Bearer fke_… (Claude Code: add --header "Authorization: Bearer fke_…"; Cursor: a headers entry), or put it on the URL where a client only takes a URL: https://www.freekidsevents.com/mcp?key=fke_….
Tools
search_events: Free events for kids 0–12 near a town, ZIP or coordinates (2, 5, 10 or 20 miles), or in Bay Area areas, for a date range. Filters for ages, time of day, category and a keyword.list_cities: Cities with their own page, this week’s count of free events, their Bay Area area and page links.get_event: One event by the id search_events returned: times, place, coordinates, ages, organizer page.list_sources: Every official calendar we read, with its public URL.
Arguments for search_events:
location: a town, “Town, ST” or a ZIP, orlatitude+longitude.radius_miles: 2, 5 (default), 10 or 20. Orareas:sf(San Francisco),peninsula(Peninsula),southbay(South Bay),eastbay(East Bay),northbay(North Bay).when: today, tomorrow, weekend, nextweekend or week (next 7 days, default). Orstart_date+end_date(YYYY-MM-DD, up to 62 days).ages:0-5,6-12.time_of_day: morning, afternoon, evening.categories:storytime(Storytime),arts(Arts & crafts),stem(Science & STEM),play(Games & play),shows(Music & shows),nature(Nature & outdoors),festival(Festivals),learning(Reading & languages),other(Family fun).query: a keyword.free_only: true by default; false also returns events with admission.limit(up to 50) andoffsetpage through results.
A raw call, if you are not using an MCP client:
curl -X POST https://www.freekidsevents.com/mcp \
-H 'content-type: application/json' \
-d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_events", "arguments": { "location": "San Bruno", "radius_miles": 5, "when": "weekend", "ages": [ "0-5" ] } } }'What comes back
Each event has a title, date and times (Pacific time), venue, address, city, distance, ages, category, whether it is free and needs sign-up, a short summary, organizer_url (the organizer’s own page), the source calendar, when we last checked it, and an .ics link for calendars.
JSON API
The home page runs on two GET endpoints you can call directly. They take the same parameters as the page URL:
/api/places/?q=san br: towns and ZIP codes for a typeahead./api/events/?loc=San+Bruno&radius=5&when=weekend&ages=0-5: events (alsolat,lng,areas,from,to,time,cat,q,free=0,offset,limit).
Limits and keys
| For | Calls a minute | Calls a day | Events a day | |
|---|---|---|---|---|
| No key | A person asking Claude, ChatGPT or another assistant | 60 | 2,000 | 10,000 |
| Free key | Apps, sites, newsletters and prototypes | 120 | 10,000 | 50,000 |
Days reset at midnight UTC. Over a limit, MCP tools answer with an error that says when to try again, and the JSON API answers 429 with Retry-After. Paging stops at result 400 without a key (1,000 with one): narrow the search instead.
We use your email only to tell you about changes to the API. The key is shown once; keep it somewhere safe.
Terms
- Free for people asking an assistant, and for apps and sites within the free-key limits.
- Send people to
organizer_urlto confirm the time and sign up. Programs change at short notice. - Credit freekidsevents.com when you show our results, and link to the city page when there is one (
city_page). - Keep it to what a person asked for. No mirroring, no copying the listings into another directory or dataset, and no reselling them.
- Higher volume, feeds by area (webhooks, calendars) or showing our listings inside a paid product: write to hello@freekidsevents.com.
Questions or a calendar we should add: hello@freekidsevents.com. See also how we check events and llms.txt.