About
This is an amateur radio contest calendar that stores rules, not dates. Every contest is held as the recurrence its sponsor published — “the last full weekend of July”, “the third Saturday in May” — and the dates you see are computed from that rule when you load the page.
Where the dates come from
Each record is built from one place: the sponsoring organisation’s own published rules. Not from any third-party contest calendar, and not from a listing that was itself compiled from one. The WA7BNM Contest Calendar is the definitive resource in this hobby and its terms prohibit automated access and republication; this project respects that completely and compiles independently from primary sources instead.
So every record carries its provenance with it:
- rules link
- A deep link to the sponsor’s own rules page. Every contest name on the schedule is that link — it opens in a new tab, because you are leaving this site for theirs.
- the rule, in their wording
- The recurrence is recorded as the sponsor phrased it, so a date that looks wrong can be checked against the sentence it came from.
- verified
- Whether that rule was read directly off the sponsor’s page. Anything not yet checked is labelled unverified on the schedule rather than quietly shown as fact. 248 of 260 records are verified today.
Why a rules engine
A table of dates has a horizon: it covers the years someone typed in. A rule does not, so this calendar answers 2031 as readily as this weekend. When a sponsor changes a rule, one record changes rather than every future row.
It also forces the awkward cases into the open. A full weekend is a Saturday and Sunday with both days inside the month — when a month ends on a Saturday, that Saturday does not begin one. Between 2026 and 2035 this shifts dates in seventeen months. A calendar that reads “first Saturday” is wrong about twice a year, and nobody notices until somebody misses a contest.
Times
Times are UTC, which is how contest rules are written and how operators talk. The page shows UTC by default and can convert to your own zone; every time on it is emitted with a machine-readable UTC instant, so the schedule is correct before any script runs.
Two kinds of contest are not simply UTC, and they need opposite treatment. A contest a sponsor runs at a clock time in their zone has one correct UTC instant that moves an hour across a daylight-saving boundary — those are resolved through the zone, not hardcoded. A contest that starts at a clock time wherever you are has no single UTC instant at all; it sweeps the globe with local dawn, so it is shown as a wall clock and never converted.
What it does not claim
The catalog is honest about its own gaps, because a missing contest is worse than a flagged one. Coverage outside North America and Europe is still thin, and where a band or mode could not be read off the sponsor’s page the field is left empty rather than guessed — which means a filter on that field necessarily excludes the record. When that happens the page says so underneath the filters instead of letting the contest disappear.
Sponsors’ rules text is theirs. This catalog holds facts and its own summaries, and links out for the authoritative wording.