Free Event Calendar Finder
Find explicitly free events in your imported or linked public calendars.
How it works
Combine your own ICS files or public feed URLs, process IANA time zones and bounded daily, weekly, monthly and yearly recurrence, and export sourced event occurrences.
- UTC, all-day and supported IANA TZID/floating times. Local-time recurrence preserves the selected zone across daylight saving. Ambiguous fall-back times choose the first occurrence; nonexistent times are skipped.
- Daily, weekly, monthly and yearly recurrence supports INTERVAL, COUNT, UNTIL, BYMONTH, positive/negative BYMONTHDAY, ordinal BYDAY, WKST and BYSETPOS, plus RDATE, EXDATE and detached overrides/cancellations. Unsupported rules and malformed entries are counted with diagnostics; no invented occurrences.
- At most one year per search, 2,000 source entries per feed, five remote feeds and 2,000 displayed occurrences. Returned event text is capped at four million characters across the selected sources. Missing or failed sources do not prove that no event exists.
- Free status uses X-COST (0 = free) or X-FREE flags first. Otherwise the title and description must say the event itself is free: “free” before an event word (Free yoga, free guided tour), a title starting with “Free”, admission phrases (admission free, free to attend, no charge, Eintritt frei, entrada libre, entrée libre) or kostenlos/gratis/gratuit not tied to an extra. Explicit “not free”/kostenpflichtig wins.
- Free parking, drinks or Wi-Fi, compounds such as gluten-free or sugar-free and idioms such as free jazz do not count. This is source-based calendar search, not a regional discovery database.
Part of Hearth
-
Hearth Home & travel planner
Plan meals, chores, home care, moves, trips and good days for your household in one place.
How to use the Free Event Calendar Finder
Search your own iCalendar files or public .ics feeds for events that are explicitly free, with recurring dates expanded and a clear rule for what counts as free.
What it is for
Libraries, museums, city halls and clubs often publish their programme as an .ics calendar. Searching such a feed for "what is free this month" is tedious: recurring events hide their dates in rules, and "free" appears in many places that have nothing to do with the entry fee. This tool reads up to five public feed URLs or a pasted or opened calendar, expands the dates in your range and marks each occurrence as free, not free or not stated.
It only searches calendars you supply. It is not a regional event database, and a missing or failed feed does not prove that nothing is on.
Worked example
A calendar with five entries, searched from 2026-11-01 to 2026-11-30 in Europe/Berlin with Only explicitly free events switched on:
- "Free yoga in the park", Saturdays at 10:00, repeated weekly six times from 7 November
- "Farmers market", description "Free parking nearby."
- "Gluten-free baking workshop", description "Tickets 25 EUR."
- "Lesung im Rathaus", description "Eintritt frei"
- "Choir concert" with the calendar property
X-COST:12
The result: "5 matching occurrences; 0 unsupported entries." Four are the yoga Saturdays (7, 14, 21 and 28 November); the fifth is the reading on 26 November at 19:00. Switching the free filter off lists 8 occurrences: the market and the baking workshop appear with cost not stated, and the choir concert as not free because its cost is 12.
How to read the result
- Source entries, Unsupported entries and Duplicates removed count what the tool read. Unsupported entries are recurrence rules or dates it could not handle; they are listed rather than guessed.
- Each event card shows date, title, a cost badge such as Free entry, time, place and source. Use the filters for text, Calendar source, Cost status and Starts on to narrow the list.
- Tick Include in export, then Export selected calendar for an
.icsfile with just those dates, or use All events (ICS). - Calendar sources shows each feed with its retrieval time, event count and any error.
The cost badge follows a fixed rule. A cost property in the calendar decides first: X-COST:0 or X-FREE:TRUE means free, a positive cost means not free. Otherwise the title and description must say the event itself is free:
- "free" before an event word, with up to three words in between: "Free yoga", "free guided tour", "free outdoor family concert";
- a title or description that starts with "Free", as in "Free Saturday sketching";
- admission phrases: "admission free", "free to attend", "free and open to the public", "no charge", "no entry fee", "Eintritt frei", "entrada libre", "entrée libre", "ingresso libero";
- kostenlos, kostenfrei, gratis, gratuit or gratuito, unless an extra such as parking, drinks or Wi-Fi stands within two words of it.
Free parking, refreshments or Wi-Fi alone never make an event free. "Gluten-free", "sugar free" and idioms such as "free jazz" or "free speech" do not count. An explicit "not free" or "kostenpflichtig" always wins.
Tips and common mistakes
- Keep the date range short for busy feeds; one search covers at most a year.
- Set Display / floating-time zone to the organiser's zone, otherwise times without a zone are read in the wrong one.
- Use Words in title or description for themes such as "children" or "museum" before filtering by cost.
- "Cost not stated" means the text does not say. Check the organiser's page before you go.
FAQ
Is "free for kids" counted as free?
No. "Free for kids under 6" only covers some visitors, so the event stays at cost not stated. Check the description for the full price.
Can I search several calendars at once?
Yes, up to five public feed URLs. Duplicate occurrences that share an ID are removed.
How are recurring events handled?
Daily, weekly, monthly and yearly rules are expanded into single dates within your range, including exceptions and cancelled dates. A rule the tool cannot read is counted as unsupported instead of producing invented dates.
Guide last updated:
For scripts and AI agents
- JSON API:
POST https://hearthfreeevents.usefulweb.app/api/v1/calculate(same calculation as this page) - Interface description: OpenAPI 3.1 · AI guide: llms.txt
- MCP server (Streamable HTTP):
https://hearthfreeevents.usefulweb.app/mcp· tool namehearth_free_events
Example request
curl -s -X POST https://hearthfreeevents.usefulweb.app/api/v1/calculate \
-H 'content-type: application/json' \
-d '{}'