Data
The catalog is 260 contest definitions from 70 sponsors, published under CC BY 4.0. Use it, build on it, ship it in your own project — attribution is the only condition. It is a compilation of public facts and it should stay open.
Subscribe
The iCal feed takes the same filters as the page, so a URL that shows what you want on screen is also the feed that puts it in your calendar.
- /api/ics
- Every contest, or add filters:
?mode=CW&band=20m. Also served at /contests.ics.
The feed emits expanded UTC instants rather than recurrence rules and carries no timezone definitions, because the three big calendar clients disagree about both. Each event’s identifier is stable across deploys — a changed identifier would turn every subscriber’s calendar into duplicates.
JSON
- /api/contests
- Occurrences in a window.
?year=2030for a whole year;?from=and?to=for a range. - /api/search?q=
- Search names and sponsors.
- /api/meta
- The controlled vocabularies — every mode and band a filter accepts — plus the catalog’s fingerprint.
- /api/health
- What the runtime resolved, including which timezone resolver is active.
What a record says
Modes and bands are controlled sets. A field that is free text is a field nothing can query, so the specifics a small vocabulary drops — “PSK31”, “RTTY 75 baud”, “10 GHz through light” — are kept beside it as notes, displayed and never filtered on.
Filtering widens; the record does not. A record says exactly
what the sponsor permits. As a query, Digital matches
Digital, RTTY and FT8/FT4, and every specific mode also matches
Mixed — so a search for digital modes finds the FT8 events without
any RTTY-only contest ever being described as anything but RTTY.
Empty bands means unrecorded, not unbanded. Every band filter therefore excludes such a record. Anything that filters is expected to say so rather than let the contest vanish, which is what the note under the filter panel on the schedule is for.
Source
The engine, the catalog and the provenance registry are all in one repository: github.com/w4ggj/contest-calendar. Code is MIT. The registry records which sponsor page each record was read from and when the link was last confirmed live.