Every year I hit the same problem planning food trips: festival listings tell you a festival exists, but not when the next one is. Pages still show last year's dates, or say "every autumn".
So at TableJourney we keep the next dates of 1,376 food festivals in 55 countries, and we have opened the data up four ways: a REST API, an MCP server for AI assistants, a SQL copy on DoltHub and a plain CSV. All free, no sign-up.
How the dates stay current
A date like "the second weekend of October" goes stale every year. So we store each festival's recurrence rule rather than a date: nth weekday of a month, a fixed day, or an anchor such as Easter or the lunar calendar for Lunar New Year and Mid-Autumn markets. The next edition is computed from the rule, and each festival page carries the source we checked and the date we checked it.
REST: festivals between two dates
curl "https://tablejourney.com/api/v1/festivals?country=italy&from=2026-10-10&to=2026-11-30&limit=3"
Each result has a name, city, starts_on, ends_on, month, whether it is annual, a short summary and a link to the page with the sources. The same API answers other trip questions, for example the signature dishes of a city and where to eat them:
curl "https://tablejourney.com/api/v1/dishes?country=japan&city=osaka&limit=2"
[{"name": "Omurice", "city": "osaka", "country": "japan",
"summary": "Ketchup-seasoned chicken rice wrapped in a soft folded omelette...",
"where_to_eat": [{"name": "Hokkyokusei Shinsaibashi", "page": "https://tablejourney.com/japan/osaka/casual-dining/hokkyokusei-shinsaibashi/"}]}]
The full list of endpoints (places, a composed food day, experiences, things to do) is in the OpenAPI docs at https://tablejourney.com/api/v1/docs.
MCP: ask an assistant
The same data is a remote MCP server (streamable HTTP) at https://tablejourney.com/mcp. In Claude Code:
claude mcp add --transport http tablejourney https://tablejourney.com/mcp
Or in any MCP client config:
{ "mcpServers": { "tablejourney": { "type": "streamable-http", "url": "https://tablejourney.com/mcp" } } }
Then ask things like "which food festivals are on in Spain the week I am there" or "plan a vegetarian food day in Lisbon on Sunday". Tools include festivals, search_places, plan_day, things_to_do and experiences. Setup notes for other clients are at https://tablejourney.com/agents/.
SQL: query it on DoltHub
The dataset is mirrored weekly to DoltHub, so you can query it without downloading anything:
SELECT month, COUNT(*) AS festivals
FROM festivals
GROUP BY month
ORDER BY festivals DESC
LIMIT 3;
Today that returns October (197), September (190) and November (161). Run it at https://www.dolthub.com/repositories/tablejourney/food-festivals or through DoltHub's SQL API.
Download it
- CSV and JSON on GitHub: https://github.com/lewismvaughan/tablejourney-food-festivals
- A citable record on Zenodo: DOI 10.5281/zenodo.23142697
- Charts and findings (busiest month, weekday, length, share free to enter): https://tablejourney.com/festivals/statistics/
The licence is CC BY 4.0: use it for anything, with a credit link.
If a date is wrong or a festival is missing, tell me in the comments or through the contact page; corrections from organisers are locked in so later updates cannot overwrite them.
Top comments (0)