{
  "query": {
    "kind": "year",
    "from": "2026-01-01T00:00:00.000Z",
    "to": "2026-12-31T23:59:59.999Z",
    "year": 2026,
    "filters": []
  },
  "count": 648,
  "occurrences": [
    {
      "contest_id": "arrl-straight-key-night",
      "name": "ARRL Straight Key Night",
      "start": "2026-01-01T00:00:00Z",
      "end": "2026-01-01T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 23.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "60m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m",
        "2m",
        "1.25m",
        "70cm",
        "33cm",
        "23cm",
        "13cm",
        "3cm"
      ],
      "bands_note": "All authorized amateur frequencies; activity traditionally centres on HF",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/straight-key-night",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-straight-key-night-20260101T0000@contestcal",
      "start_date": "2026-01-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "60m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m",
        "VHF+"
      ],
      "duration_bucket": "12-24"
    },
    {
      "contest_id": "sartg-new-year-rtty",
      "name": "SARTG New Year RTTY Contest",
      "start": "2026-01-01T08:00:00Z",
      "end": "2026-01-01T11:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m"
      ],
      "bands_note": "",
      "sponsor": "SARTG (Scandinavian Amateur Radio Teleprinter Group)",
      "rules_url": "https://www.sartg.com/contest/nyrules.htm",
      "verified": true,
      "note": "",
      "exchange": "RST + QSO number starting with 001 + name + 'Happy New Year' in your native language (abbreviations like 'HNY' are not allowed)",
      "country": "SE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "sartg-new-year-rtty-20260101T0800@contestcal",
      "start_date": "2026-01-01",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "agcw-hnyc",
      "name": "AGCW Happy New Year Contest (HNY)",
      "start": "2026-01-01T09:00:00Z",
      "end": "2026-01-01T12:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/hnyc/",
      "verified": true,
      "note": "Log deadline is a fixed calendar date -- '14. Januar 24:00 MEZ' -- not an interval after the contest, so log_deadline_days is deliberately unset.",
      "exchange": "RST + running 3-digit QSO number from 001 (AGCW members also send their membership number, e.g. 599 067/2583)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-hnyc-20260101T0900@contestcal",
      "start_date": "2026-01-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "agcw-vhf-uhf",
      "name": "AGCW VHF/UHF Contest",
      "start": "2026-01-01T14:00:00Z",
      "end": "2026-01-01T17:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "2m",
        "70cm"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/vhf-uhf/",
      "verified": true,
      "note": "Four dates a year, each with two back-to-back sessions on different bands: the first session is 2 m only, the second 70 cm only. Encoded as two sessions off one anchor, so eight occurrences a year. The per-session band split is not expressible in the current schema -- both bands are listed at contest level.",
      "exchange": "RST + running number + locator",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-vhf-uhf-20260101T1400@contestcal",
      "start_date": "2026-01-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "VHF+"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "agcw-vhf-uhf",
      "name": "AGCW VHF/UHF Contest",
      "start": "2026-01-01T17:00:00Z",
      "end": "2026-01-01T18:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "2m",
        "70cm"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/vhf-uhf/",
      "verified": true,
      "note": "Four dates a year, each with two back-to-back sessions on different bands: the first session is 2 m only, the second 70 cm only. Encoded as two sessions off one anchor, so eight occurrences a year. The per-session band split is not expressible in the current schema -- both bands are listed at contest level.",
      "exchange": "RST + running number + locator",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-vhf-uhf-20260101T1700@contestcal",
      "start_date": "2026-01-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "VHF+"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-01-02T01:00:00Z",
      "end": "2026-01-02T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260102T0100@contestcal",
      "start_date": "2026-01-02",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-01-02T01:45:00Z",
      "end": "2026-01-02T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260102T0145@contestcal",
      "start_date": "2026-01-02",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-01-02T02:30:00Z",
      "end": "2026-01-02T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260102T0230@contestcal",
      "start_date": "2026-01-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "podxs-pskfest",
      "name": "PODXS 070 Club PSKfest",
      "start": "2026-01-03T00:00:00Z",
      "end": "2026-01-03T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 23.98,
      "modes": [
        "Digital"
      ],
      "submodes": [
        "PSK31"
      ],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "PODXS 070 Club",
      "rules_url": "https://www.podxs070.com/o7o-club-sponsored-contests/pskfest",
      "verified": true,
      "note": "",
      "exchange": "State/province/country (SPC)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-01-10T23:59:00Z",
      "uid": "podxs-pskfest-20260103T0000@contestcal",
      "start_date": "2026-01-03",
      "mode_families": [
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "12-24"
    },
    {
      "contest_id": "rsgb-afs-cw",
      "name": "RSGB AFS Contest, CW",
      "start": "2026-01-03T13:00:00Z",
      "end": "2026-01-03T17:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 4,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m"
      ],
      "bands_note": "",
      "sponsor": "RSGB Contest Committee",
      "rules_url": "https://www.rsgbcc.org/hf/",
      "verified": false,
      "note": "UNVERIFIED. The guessed per-year rules filename returned 404 -- find the real AFS rules page under rsgbcc.org/hf/ and set rules_url_pattern. Recurrence and eligibility both unconfirmed.",
      "exchange": "",
      "country": "GB",
      "rules_url_archived": "",
      "rules_url_checked": "",
      "can_enter": false,
      "eligibility_scope": "entity_list",
      "eligibility_reason": "Entry limited to G. K stations may be worked but cannot submit an entry.",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "rsgb-afs-cw-20260103T1300@contestcal",
      "start_date": "2026-01-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "arrl-rtty-roundup",
      "name": "ARRL RTTY Roundup",
      "start": "2026-01-03T18:00:00Z",
      "end": "2026-01-04T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 29.98,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/rtty-roundup",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-rtty-roundup-20260103T1800@contestcal",
      "start_date": "2026-01-03",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-01-05T00:00:00Z",
      "end": "2026-01-05T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260105T0000@contestcal",
      "start_date": "2026-01-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-01-05T17:40:00Z",
      "end": "2026-01-05T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260105T1740@contestcal",
      "start_date": "2026-01-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "ars-spartan-sprint",
      "name": "ARS Spartan Sprint",
      "start": "2026-01-06T01:00:00Z",
      "end": "2026-01-06T03:00:00Z",
      "start_wall": "2026-01-05T20:00:00",
      "end_wall": "2026-01-05T22:00:00",
      "local_rolling": false,
      "timezone": "America/New_York",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "Adventure Radio Society",
      "rules_url": "https://ars-qrp.com/Spartan_Sprint/Spartan_Sprint.html",
      "verified": true,
      "note": "CORRECTION (anchor): previously encoded as the first TUESDAY of the month. The sponsor's rule is the first MONDAY US local, which lands on Tuesday UTC -- and those are different dates whenever the 1st falls on a Tuesday (Sep and Dec 2026). SPONSOR-ANCHORED LOCAL TIME: ARS publishes no UTC time and states the event 'is always at these Local Times', so the UTC instant is what moves -- 0100Z Tuesday under EST, 0000Z Tuesday under EDT. Resolved through America/New_York rather than hardcoded, so DST is handled. ARS lists Eastern, Central, Mountain and Pacific times that are the same instant in every zone that observes DST; Arizona, which does not, is the one place the sponsor's own table is inconsistent.",
      "exchange": "RST + state/province + power output",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "ars-spartan-sprint-20260106T0100@contestcal",
      "start_date": "2026-01-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-07T13:00:00Z",
      "end": "2026-01-07T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260107T1300@contestcal",
      "start_date": "2026-01-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-07T19:00:00Z",
      "end": "2026-01-07T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260107T1900@contestcal",
      "start_date": "2026-01-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-08T03:00:00Z",
      "end": "2026-01-08T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260108T0300@contestcal",
      "start_date": "2026-01-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-08T07:00:00Z",
      "end": "2026-01-08T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260108T0700@contestcal",
      "start_date": "2026-01-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-01-09T01:00:00Z",
      "end": "2026-01-09T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260109T0100@contestcal",
      "start_date": "2026-01-09",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-01-09T01:45:00Z",
      "end": "2026-01-09T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260109T0145@contestcal",
      "start_date": "2026-01-09",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-01-09T02:30:00Z",
      "end": "2026-01-09T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260109T0230@contestcal",
      "start_date": "2026-01-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-01-09T20:00:00Z",
      "end": "2026-01-09T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260109T2000@contestcal",
      "start_date": "2026-01-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-wes",
      "name": "SKCC Weekend Sprintathon (WES)",
      "start": "2026-01-10T12:00:00Z",
      "end": "2026-01-11T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 35.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekend_sprintathon/",
      "verified": true,
      "note": "Older sources describe the anchor as 'the Saturday following the 6th', which differs from '2nd Saturday' in some months. SKCC's current page says 2nd Saturday; re-check if dates drift.",
      "exchange": "RST + state/province/country + name + SKCC number (C/T/S suffix for award holders)",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-wes-20260110T1200@contestcal",
      "start_date": "2026-01-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "naqp-cw",
      "name": "North American QSO Party, CW",
      "start": "2026-01-10T18:00:00Z",
      "end": "2026-01-11T05:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 11.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "National Contest Journal (NCJ)",
      "rules_url": "https://www.ncjweb.com/NAQP-Rules.pdf",
      "verified": true,
      "note": "",
      "exchange": "Name + state/province/country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "naqp-cw-20260110T1800@contestcal",
      "start_date": "2026-01-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-01-12T00:00:00Z",
      "end": "2026-01-12T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260112T0000@contestcal",
      "start_date": "2026-01-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "4sqrp-sss",
      "name": "4 States QRP Group Second Sunday Sprint (SSS)",
      "start": "2026-01-12T01:00:00Z",
      "end": "2026-01-12T03:00:00Z",
      "start_wall": "2026-01-11T19:00:00",
      "end_wall": "2026-01-11T21:00:00",
      "local_rolling": false,
      "timezone": "America/Chicago",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB",
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "4 States QRP Group",
      "rules_url": "https://www.4sqrp.com/SSS/sss_rules_revised_02_2026.pdf",
      "verified": true,
      "note": "SPONSOR-ANCHORED LOCAL TIME. The anchor is the second SUNDAY and the sprint runs into Monday UTC. 4SQRP states the consequence itself: '7 PM until 9 PM central time (CST or CDT, whichever is in effect at the time). If you use UTC, that time changes when we switch from CST to CDT (or vice versa).' Resolved through America/Chicago, so it is 0100Z Monday in winter and 0000Z Monday in summer.",
      "exchange": "RST + state/province/country + 4SQRP member number (power if non-member)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "4sqrp-sss-20260112T0100@contestcal",
      "start_date": "2026-01-12",
      "mode_families": [
        "CW",
        "SSB",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-01-12T17:40:00Z",
      "end": "2026-01-12T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260112T1740@contestcal",
      "start_date": "2026-01-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-14T13:00:00Z",
      "end": "2026-01-14T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260114T1300@contestcal",
      "start_date": "2026-01-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-14T19:00:00Z",
      "end": "2026-01-14T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260114T1900@contestcal",
      "start_date": "2026-01-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-15T03:00:00Z",
      "end": "2026-01-15T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260115T0300@contestcal",
      "start_date": "2026-01-15",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-15T07:00:00Z",
      "end": "2026-01-15T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260115T0700@contestcal",
      "start_date": "2026-01-15",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-01-16T01:00:00Z",
      "end": "2026-01-16T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260116T0100@contestcal",
      "start_date": "2026-01-16",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-01-16T01:45:00Z",
      "end": "2026-01-16T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260116T0145@contestcal",
      "start_date": "2026-01-16",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-01-16T02:30:00Z",
      "end": "2026-01-16T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260116T0230@contestcal",
      "start_date": "2026-01-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-01-16T20:00:00Z",
      "end": "2026-01-16T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260116T2000@contestcal",
      "start_date": "2026-01-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "naqp-ssb",
      "name": "North American QSO Party, SSB",
      "start": "2026-01-17T18:00:00Z",
      "end": "2026-01-18T05:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 11.98,
      "modes": [
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "National Contest Journal (NCJ)",
      "rules_url": "https://www.ncjweb.com/NAQP-Rules.pdf",
      "verified": true,
      "note": "",
      "exchange": "Name + state/province/country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "naqp-ssb-20260117T1800@contestcal",
      "start_date": "2026-01-17",
      "mode_families": [
        "SSB"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "arrl-january-vhf",
      "name": "ARRL January VHF Contest",
      "start": "2026-01-17T19:00:00Z",
      "end": "2026-01-19T03:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 32.98,
      "modes": [
        "Mixed"
      ],
      "submodes": [],
      "bands": [
        "6m",
        "2m",
        "1.25m",
        "70cm",
        "33cm",
        "23cm",
        "13cm",
        "3cm"
      ],
      "bands_note": "All authorized frequencies above 50 MHz",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/january-vhf",
      "verified": false,
      "note": "ARRL states third OR fourth weekend in January -- varies by year. Confirm against current rules annually.",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "VHF+ contest. Scoring depends heavily on local activity and grid density; Florida coverage is thinner than the Northeast.",
      "log_due": null,
      "uid": "arrl-january-vhf-20260117T1900@contestcal",
      "start_date": "2026-01-17",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital",
        "FT8/FT4",
        "Mixed"
      ],
      "band_families": [
        "6m",
        "VHF+"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-01-19T00:00:00Z",
      "end": "2026-01-19T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260119T0000@contestcal",
      "start_date": "2026-01-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-01-19T17:40:00Z",
      "end": "2026-01-19T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260119T1740@contestcal",
      "start_date": "2026-01-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-21T13:00:00Z",
      "end": "2026-01-21T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260121T1300@contestcal",
      "start_date": "2026-01-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-21T19:00:00Z",
      "end": "2026-01-21T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260121T1900@contestcal",
      "start_date": "2026-01-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-22T03:00:00Z",
      "end": "2026-01-22T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260122T0300@contestcal",
      "start_date": "2026-01-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-22T07:00:00Z",
      "end": "2026-01-22T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260122T0700@contestcal",
      "start_date": "2026-01-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-01-23T01:00:00Z",
      "end": "2026-01-23T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260123T0100@contestcal",
      "start_date": "2026-01-23",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-01-23T01:45:00Z",
      "end": "2026-01-23T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260123T0145@contestcal",
      "start_date": "2026-01-23",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-01-23T02:30:00Z",
      "end": "2026-01-23T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260123T0230@contestcal",
      "start_date": "2026-01-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-01-23T20:00:00Z",
      "end": "2026-01-23T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260123T2000@contestcal",
      "start_date": "2026-01-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cq-160-cw",
      "name": "CQ 160-Meter Contest, CW",
      "start": "2026-01-23T22:00:00Z",
      "end": "2026-01-25T22:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 48,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m"
      ],
      "bands_note": "",
      "sponsor": "CQ Magazine",
      "rules_url": "https://www.cq160.com/rules.htm",
      "verified": false,
      "note": "CONFIRM against sponsor rules before publishing.",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cq-160-cw-20260123T2200@contestcal",
      "start_date": "2026-01-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "bartg-sprint",
      "name": "BARTG January Sprint Contest",
      "start": "2026-01-24T12:00:00Z",
      "end": "2026-01-25T11:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 23.98,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "BARTG",
      "rules_url": "https://bartg.org.uk/bartg-sprint-contest/",
      "verified": true,
      "note": "January is the month where 'full weekend' bites hardest: 2032 has five January Saturdays but only four full weekends, and BARTG's own table gives 24 January 2032 -- the fourth full weekend, not the fourth Saturday.",
      "exchange": "Message number only (3 or 4 figures from 001) -- no RST, to shorten the QSO",
      "country": "GB",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-02-01T11:59:00Z",
      "uid": "bartg-sprint-20260124T1200@contestcal",
      "start_date": "2026-01-24",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "12-24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-01-26T00:00:00Z",
      "end": "2026-01-26T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260126T0000@contestcal",
      "start_date": "2026-01-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-01-26T17:40:00Z",
      "end": "2026-01-26T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260126T1740@contestcal",
      "start_date": "2026-01-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-sks",
      "name": "SKCC Straight Key Sprint (SKS)",
      "start": "2026-01-28T00:00:00Z",
      "end": "2026-01-28T02:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Suggested frequencies, one per band",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekday_sprint/",
      "verified": true,
      "note": "",
      "exchange": "RST + QTH + name + SKCC number",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-sks-20260128T0000@contestcal",
      "start_date": "2026-01-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-28T13:00:00Z",
      "end": "2026-01-28T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260128T1300@contestcal",
      "start_date": "2026-01-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-28T19:00:00Z",
      "end": "2026-01-28T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260128T1900@contestcal",
      "start_date": "2026-01-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-29T03:00:00Z",
      "end": "2026-01-29T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260129T0300@contestcal",
      "start_date": "2026-01-29",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-01-29T07:00:00Z",
      "end": "2026-01-29T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260129T0700@contestcal",
      "start_date": "2026-01-29",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-01-30T01:00:00Z",
      "end": "2026-01-30T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260130T0100@contestcal",
      "start_date": "2026-01-30",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-01-30T01:45:00Z",
      "end": "2026-01-30T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260130T0145@contestcal",
      "start_date": "2026-01-30",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-01-30T02:30:00Z",
      "end": "2026-01-30T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260130T0230@contestcal",
      "start_date": "2026-01-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-01-30T20:00:00Z",
      "end": "2026-01-30T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260130T2000@contestcal",
      "start_date": "2026-01-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-02-02T00:00:00Z",
      "end": "2026-02-02T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260202T0000@contestcal",
      "start_date": "2026-02-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-02-02T17:40:00Z",
      "end": "2026-02-02T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260202T1740@contestcal",
      "start_date": "2026-02-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "ars-spartan-sprint",
      "name": "ARS Spartan Sprint",
      "start": "2026-02-03T01:00:00Z",
      "end": "2026-02-03T03:00:00Z",
      "start_wall": "2026-02-02T20:00:00",
      "end_wall": "2026-02-02T22:00:00",
      "local_rolling": false,
      "timezone": "America/New_York",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "Adventure Radio Society",
      "rules_url": "https://ars-qrp.com/Spartan_Sprint/Spartan_Sprint.html",
      "verified": true,
      "note": "CORRECTION (anchor): previously encoded as the first TUESDAY of the month. The sponsor's rule is the first MONDAY US local, which lands on Tuesday UTC -- and those are different dates whenever the 1st falls on a Tuesday (Sep and Dec 2026). SPONSOR-ANCHORED LOCAL TIME: ARS publishes no UTC time and states the event 'is always at these Local Times', so the UTC instant is what moves -- 0100Z Tuesday under EST, 0000Z Tuesday under EDT. Resolved through America/New_York rather than hardcoded, so DST is handled. ARS lists Eastern, Central, Mountain and Pacific times that are the same instant in every zone that observes DST; Arizona, which does not, is the one place the sponsor's own table is inconsistent.",
      "exchange": "RST + state/province + power output",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "ars-spartan-sprint-20260203T0100@contestcal",
      "start_date": "2026-02-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-04T13:00:00Z",
      "end": "2026-02-04T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260204T1300@contestcal",
      "start_date": "2026-02-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-04T19:00:00Z",
      "end": "2026-02-04T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260204T1900@contestcal",
      "start_date": "2026-02-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-05T03:00:00Z",
      "end": "2026-02-05T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260205T0300@contestcal",
      "start_date": "2026-02-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-05T07:00:00Z",
      "end": "2026-02-05T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260205T0700@contestcal",
      "start_date": "2026-02-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-02-06T01:00:00Z",
      "end": "2026-02-06T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260206T0100@contestcal",
      "start_date": "2026-02-06",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-02-06T01:45:00Z",
      "end": "2026-02-06T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260206T0145@contestcal",
      "start_date": "2026-02-06",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-02-06T02:30:00Z",
      "end": "2026-02-06T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260206T0230@contestcal",
      "start_date": "2026-02-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-02-06T20:00:00Z",
      "end": "2026-02-06T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260206T2000@contestcal",
      "start_date": "2026-02-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "tenten-winter-phone",
      "name": "10-10 International Winter QSO Party (Phone)",
      "start": "2026-02-07T00:01:00Z",
      "end": "2026-02-08T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 47.97,
      "modes": [
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "10m"
      ],
      "bands_note": "",
      "sponsor": "10-10 International Net",
      "rules_url": "https://www.ten-ten.org/index.php/activity/qso-party-rules",
      "verified": true,
      "note": "The rules give the close as 2359 UTC Sunday; the schedule page says 'close at 2400 UTC on the second listed date'. One minute apart. Encoded as 2359 from the rules document, which is the authoritative text.",
      "exchange": "Call sign + name + 10-10 number + QTH (state, province or country). Record 0 if the other station has no 10-10 number.",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "Anyone may take part, but only members' logs are scored: 'logs will be accepted only from active members as of the date of the event ... Other logs received will be handled as check logs.'",
      "log_due": null,
      "uid": "tenten-winter-phone-20260207T0001@contestcal",
      "start_date": "2026-02-07",
      "mode_families": [
        "SSB"
      ],
      "band_families": [
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "agcw-htp-80m",
      "name": "AGCW Handtastenparty 80m (HTP)",
      "start": "2026-02-07T16:00:00Z",
      "end": "2026-02-07T19:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/htp/",
      "verified": true,
      "note": "",
      "exchange": "RST + running 3-digit QSO number from 001 + class + name + age",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-htp-80m-20260207T1600@contestcal",
      "start_date": "2026-02-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "ncj-sprint-cw",
      "name": "North American Sprint, CW",
      "start": "2026-02-08T00:00:00Z",
      "end": "2026-02-08T03:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m"
      ],
      "bands_note": "",
      "sponsor": "National Contest Journal (NCJ)",
      "rules_url": "https://www.ncjweb.com/Sprint-Rules.pdf",
      "verified": true,
      "note": "Encoded as 'manual' deliberately. NCJ publishes explicit dates per year and flagged 2026 September with 'NOTE CW DATE SHIFT', so there is no stable derivable recurrence to encode. 2026 happens to land on the 2nd Sunday of February and the 2nd Sunday of September, but that pattern is NOT a rule NCJ states -- re-read the rules PDF each year.",
      "exchange": "Other station's call + your call + serial number + name + state/province/country ('DX' outside North America)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-02-15T03:59:00Z",
      "uid": "ncj-sprint-cw-20260208T0000@contestcal",
      "start_date": "2026-02-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-02-09T00:00:00Z",
      "end": "2026-02-09T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260209T0000@contestcal",
      "start_date": "2026-02-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "4sqrp-sss",
      "name": "4 States QRP Group Second Sunday Sprint (SSS)",
      "start": "2026-02-09T01:00:00Z",
      "end": "2026-02-09T03:00:00Z",
      "start_wall": "2026-02-08T19:00:00",
      "end_wall": "2026-02-08T21:00:00",
      "local_rolling": false,
      "timezone": "America/Chicago",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB",
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "4 States QRP Group",
      "rules_url": "https://www.4sqrp.com/SSS/sss_rules_revised_02_2026.pdf",
      "verified": true,
      "note": "SPONSOR-ANCHORED LOCAL TIME. The anchor is the second SUNDAY and the sprint runs into Monday UTC. 4SQRP states the consequence itself: '7 PM until 9 PM central time (CST or CDT, whichever is in effect at the time). If you use UTC, that time changes when we switch from CST to CDT (or vice versa).' Resolved through America/Chicago, so it is 0100Z Monday in winter and 0000Z Monday in summer.",
      "exchange": "RST + state/province/country + 4SQRP member number (power if non-member)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "4sqrp-sss-20260209T0100@contestcal",
      "start_date": "2026-02-09",
      "mode_families": [
        "CW",
        "SSB",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-02-09T17:40:00Z",
      "end": "2026-02-09T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260209T1740@contestcal",
      "start_date": "2026-02-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-11T13:00:00Z",
      "end": "2026-02-11T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260211T1300@contestcal",
      "start_date": "2026-02-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-11T19:00:00Z",
      "end": "2026-02-11T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260211T1900@contestcal",
      "start_date": "2026-02-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-12T03:00:00Z",
      "end": "2026-02-12T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260212T0300@contestcal",
      "start_date": "2026-02-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-12T07:00:00Z",
      "end": "2026-02-12T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260212T0700@contestcal",
      "start_date": "2026-02-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-02-13T01:00:00Z",
      "end": "2026-02-13T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260213T0100@contestcal",
      "start_date": "2026-02-13",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-02-13T01:45:00Z",
      "end": "2026-02-13T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260213T0145@contestcal",
      "start_date": "2026-02-13",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-02-13T02:30:00Z",
      "end": "2026-02-13T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260213T0230@contestcal",
      "start_date": "2026-02-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-02-13T20:00:00Z",
      "end": "2026-02-13T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260213T2000@contestcal",
      "start_date": "2026-02-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cq-wpx-rtty",
      "name": "CQ WW RTTY WPX Contest",
      "start": "2026-02-14T00:00:00Z",
      "end": "2026-02-15T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 47.98,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "Only the 3.5, 7, 14, 21 and 28 MHz bands may be used",
      "sponsor": "CQ Magazine",
      "rules_url": "https://www.cqwpxrtty.com/rules.htm",
      "verified": false,
      "note": "CONFIRM against sponsor rules before publishing.",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cq-wpx-rtty-20260214T0000@contestcal",
      "start_date": "2026-02-14",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "podxs-valentine-sprint",
      "name": "PODXS 070 Club Valentine Sprint",
      "start": "2026-02-14T00:00:00Z",
      "end": "2026-02-14T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 23.98,
      "modes": [
        "Digital"
      ],
      "submodes": [
        "PSK31"
      ],
      "bands": [
        "160m",
        "80m",
        "40m"
      ],
      "bands_note": "",
      "sponsor": "PODXS 070 Club",
      "rules_url": "https://www.podxs070.com/o7o-club-sponsored-contests/valentine-sprint",
      "verified": true,
      "note": "The 0000-2359 window is the sprint's outer bound, not its length: 'For scoring, your six hour block will begin with the hour that you select on the scorer page and continue for the next 6 hours.' Maximum operating time is six hours.",
      "exchange": "'OM' or 'YL' + state/province/country (SPC). Signal reports and 070 numbers not required.",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-02-21T23:59:00Z",
      "uid": "podxs-valentine-sprint-20260214T0000@contestcal",
      "start_date": "2026-02-14",
      "mode_families": [
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m"
      ],
      "duration_bucket": "12-24"
    },
    {
      "contest_id": "skcc-wes",
      "name": "SKCC Weekend Sprintathon (WES)",
      "start": "2026-02-14T12:00:00Z",
      "end": "2026-02-15T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 35.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekend_sprintathon/",
      "verified": true,
      "note": "Older sources describe the anchor as 'the Saturday following the 6th', which differs from '2nd Saturday' in some months. SKCC's current page says 2nd Saturday; re-check if dates drift.",
      "exchange": "RST + state/province/country + name + SKCC number (C/T/S suffix for award holders)",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-wes-20260214T1200@contestcal",
      "start_date": "2026-02-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-02-16T00:00:00Z",
      "end": "2026-02-16T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260216T0000@contestcal",
      "start_date": "2026-02-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-02-16T17:40:00Z",
      "end": "2026-02-16T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260216T1740@contestcal",
      "start_date": "2026-02-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-18T13:00:00Z",
      "end": "2026-02-18T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260218T1300@contestcal",
      "start_date": "2026-02-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-sta",
      "name": "AGCW Schlackertastenabend (STA)",
      "start": "2026-02-18T19:00:00Z",
      "end": "2026-02-18T20:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/sta/",
      "verified": true,
      "note": "AGCW's own 'nächster Termin: 21. Okt. 2026' is the independent check on the October leg -- the third Wednesday of October 2026 is indeed the 21st.",
      "exchange": "RST + running QSO number from 001 per year + type of bug used",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-sta-20260218T1900@contestcal",
      "start_date": "2026-02-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-18T19:00:00Z",
      "end": "2026-02-18T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260218T1900@contestcal",
      "start_date": "2026-02-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-19T03:00:00Z",
      "end": "2026-02-19T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260219T0300@contestcal",
      "start_date": "2026-02-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-19T07:00:00Z",
      "end": "2026-02-19T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260219T0700@contestcal",
      "start_date": "2026-02-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-02-20T01:00:00Z",
      "end": "2026-02-20T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260220T0100@contestcal",
      "start_date": "2026-02-20",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-02-20T01:45:00Z",
      "end": "2026-02-20T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260220T0145@contestcal",
      "start_date": "2026-02-20",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-02-20T02:30:00Z",
      "end": "2026-02-20T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260220T0230@contestcal",
      "start_date": "2026-02-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-02-20T20:00:00Z",
      "end": "2026-02-20T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260220T2000@contestcal",
      "start_date": "2026-02-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cq-160-ssb",
      "name": "CQ 160-Meter Contest, SSB",
      "start": "2026-02-20T22:00:00Z",
      "end": "2026-02-22T22:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 48,
      "modes": [
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "160m"
      ],
      "bands_note": "",
      "sponsor": "CQ Magazine",
      "rules_url": "https://www.cq160.com/rules.htm",
      "verified": false,
      "note": "KNOWN EDGE CASE. In 2026 the strict 'last full weekend' reading yields Feb 20-22, but the contest is commonly listed as Feb 27-Mar 1. February's length makes this rule ambiguous. MUST be resolved against CQ's actual rules text before publishing.",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cq-160-ssb-20260220T2200@contestcal",
      "start_date": "2026-02-20",
      "mode_families": [
        "SSB"
      ],
      "band_families": [
        "160m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "arrl-dx-cw",
      "name": "ARRL International DX Contest, CW",
      "start": "2026-02-21T00:00:00Z",
      "end": "2026-02-22T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 47.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/arrl-dx",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "two_sided",
      "eligibility_reason": "K is in the 'W/VE' group.",
      "works": "works DX only",
      "practical": "",
      "log_due": null,
      "uid": "arrl-dx-cw-20260221T0000@contestcal",
      "start_date": "2026-02-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-02-23T00:00:00Z",
      "end": "2026-02-23T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260223T0000@contestcal",
      "start_date": "2026-02-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-02-23T17:40:00Z",
      "end": "2026-02-23T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260223T1740@contestcal",
      "start_date": "2026-02-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-sks",
      "name": "SKCC Straight Key Sprint (SKS)",
      "start": "2026-02-25T00:00:00Z",
      "end": "2026-02-25T02:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Suggested frequencies, one per band",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekday_sprint/",
      "verified": true,
      "note": "",
      "exchange": "RST + QTH + name + SKCC number",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-sks-20260225T0000@contestcal",
      "start_date": "2026-02-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-25T13:00:00Z",
      "end": "2026-02-25T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260225T1300@contestcal",
      "start_date": "2026-02-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-25T19:00:00Z",
      "end": "2026-02-25T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260225T1900@contestcal",
      "start_date": "2026-02-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-26T03:00:00Z",
      "end": "2026-02-26T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260226T0300@contestcal",
      "start_date": "2026-02-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-02-26T07:00:00Z",
      "end": "2026-02-26T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260226T0700@contestcal",
      "start_date": "2026-02-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-02-27T01:00:00Z",
      "end": "2026-02-27T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260227T0100@contestcal",
      "start_date": "2026-02-27",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-02-27T01:45:00Z",
      "end": "2026-02-27T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260227T0145@contestcal",
      "start_date": "2026-02-27",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-02-27T02:30:00Z",
      "end": "2026-02-27T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260227T0230@contestcal",
      "start_date": "2026-02-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-02-27T20:00:00Z",
      "end": "2026-02-27T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260227T2000@contestcal",
      "start_date": "2026-02-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "naqp-rtty",
      "name": "North American QSO Party, RTTY",
      "start": "2026-02-28T18:00:00Z",
      "end": "2026-03-01T05:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 11.98,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "National Contest Journal (NCJ)",
      "rules_url": "https://www.ncjweb.com/NAQP-Rules.pdf",
      "verified": true,
      "note": "Demonstrates that 'last Saturday' and 'last full weekend' are distinct rules. Same distinction likely resolves the CQ 160 SSB ambiguity.",
      "exchange": "Name + state/province/country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "naqp-rtty-20260228T1800@contestcal",
      "start_date": "2026-02-28",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-03-02T00:00:00Z",
      "end": "2026-03-02T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260302T0000@contestcal",
      "start_date": "2026-03-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-03-02T17:40:00Z",
      "end": "2026-03-02T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260302T1740@contestcal",
      "start_date": "2026-03-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "ars-spartan-sprint",
      "name": "ARS Spartan Sprint",
      "start": "2026-03-03T01:00:00Z",
      "end": "2026-03-03T03:00:00Z",
      "start_wall": "2026-03-02T20:00:00",
      "end_wall": "2026-03-02T22:00:00",
      "local_rolling": false,
      "timezone": "America/New_York",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "Adventure Radio Society",
      "rules_url": "https://ars-qrp.com/Spartan_Sprint/Spartan_Sprint.html",
      "verified": true,
      "note": "CORRECTION (anchor): previously encoded as the first TUESDAY of the month. The sponsor's rule is the first MONDAY US local, which lands on Tuesday UTC -- and those are different dates whenever the 1st falls on a Tuesday (Sep and Dec 2026). SPONSOR-ANCHORED LOCAL TIME: ARS publishes no UTC time and states the event 'is always at these Local Times', so the UTC instant is what moves -- 0100Z Tuesday under EST, 0000Z Tuesday under EDT. Resolved through America/New_York rather than hardcoded, so DST is handled. ARS lists Eastern, Central, Mountain and Pacific times that are the same instant in every zone that observes DST; Arizona, which does not, is the one place the sponsor's own table is inconsistent.",
      "exchange": "RST + state/province + power output",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "ars-spartan-sprint-20260303T0100@contestcal",
      "start_date": "2026-03-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "agcw-yl-cw-party",
      "name": "AGCW YL-CW-Party",
      "start": "2026-03-03T19:00:00Z",
      "end": "2026-03-03T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/yl-cw-party/",
      "verified": true,
      "note": "AGCW's own 'Nächster Termin: 3. März 2026' is the independent check -- the first Tuesday of March 2026 is the 3rd. OM-to-OM QSOs score zero, so the contest is built around working YLs.",
      "exchange": "RST + running QSO number from 001 + 'YL' or 'OM' + first name",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-yl-cw-party-20260303T1900@contestcal",
      "start_date": "2026-03-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-04T13:00:00Z",
      "end": "2026-03-04T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260304T1300@contestcal",
      "start_date": "2026-03-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-04T19:00:00Z",
      "end": "2026-03-04T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260304T1900@contestcal",
      "start_date": "2026-03-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-05T03:00:00Z",
      "end": "2026-03-05T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260305T0300@contestcal",
      "start_date": "2026-03-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-05T07:00:00Z",
      "end": "2026-03-05T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260305T0700@contestcal",
      "start_date": "2026-03-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-03-06T01:00:00Z",
      "end": "2026-03-06T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260306T0100@contestcal",
      "start_date": "2026-03-06",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-03-06T01:45:00Z",
      "end": "2026-03-06T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260306T0145@contestcal",
      "start_date": "2026-03-06",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-03-06T02:30:00Z",
      "end": "2026-03-06T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260306T0230@contestcal",
      "start_date": "2026-03-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-03-06T20:00:00Z",
      "end": "2026-03-06T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260306T2000@contestcal",
      "start_date": "2026-03-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-dx-ssb",
      "name": "ARRL International DX Contest, Phone",
      "start": "2026-03-07T00:00:00Z",
      "end": "2026-03-08T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 47.98,
      "modes": [
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/arrl-dx",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "two_sided",
      "eligibility_reason": "K is in the 'W/VE' group.",
      "works": "works DX only",
      "practical": "",
      "log_due": null,
      "uid": "arrl-dx-ssb-20260307T0000@contestcal",
      "start_date": "2026-03-07",
      "mode_families": [
        "SSB"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "4sqrp-sss",
      "name": "4 States QRP Group Second Sunday Sprint (SSS)",
      "start": "2026-03-09T00:00:00Z",
      "end": "2026-03-09T02:00:00Z",
      "start_wall": "2026-03-08T19:00:00",
      "end_wall": "2026-03-08T21:00:00",
      "local_rolling": false,
      "timezone": "America/Chicago",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB",
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "4 States QRP Group",
      "rules_url": "https://www.4sqrp.com/SSS/sss_rules_revised_02_2026.pdf",
      "verified": true,
      "note": "SPONSOR-ANCHORED LOCAL TIME. The anchor is the second SUNDAY and the sprint runs into Monday UTC. 4SQRP states the consequence itself: '7 PM until 9 PM central time (CST or CDT, whichever is in effect at the time). If you use UTC, that time changes when we switch from CST to CDT (or vice versa).' Resolved through America/Chicago, so it is 0100Z Monday in winter and 0000Z Monday in summer.",
      "exchange": "RST + state/province/country + 4SQRP member number (power if non-member)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "4sqrp-sss-20260309T0000@contestcal",
      "start_date": "2026-03-09",
      "mode_families": [
        "CW",
        "SSB",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-03-09T00:00:00Z",
      "end": "2026-03-09T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260309T0000@contestcal",
      "start_date": "2026-03-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-03-09T17:40:00Z",
      "end": "2026-03-09T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260309T1740@contestcal",
      "start_date": "2026-03-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-11T13:00:00Z",
      "end": "2026-03-11T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260311T1300@contestcal",
      "start_date": "2026-03-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-11T19:00:00Z",
      "end": "2026-03-11T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260311T1900@contestcal",
      "start_date": "2026-03-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-12T03:00:00Z",
      "end": "2026-03-12T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260312T0300@contestcal",
      "start_date": "2026-03-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-12T07:00:00Z",
      "end": "2026-03-12T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260312T0700@contestcal",
      "start_date": "2026-03-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-03-13T01:00:00Z",
      "end": "2026-03-13T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260313T0100@contestcal",
      "start_date": "2026-03-13",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-03-13T01:45:00Z",
      "end": "2026-03-13T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260313T0145@contestcal",
      "start_date": "2026-03-13",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-03-13T02:30:00Z",
      "end": "2026-03-13T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260313T0230@contestcal",
      "start_date": "2026-03-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-03-13T20:00:00Z",
      "end": "2026-03-13T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260313T2000@contestcal",
      "start_date": "2026-03-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-wes",
      "name": "SKCC Weekend Sprintathon (WES)",
      "start": "2026-03-14T12:00:00Z",
      "end": "2026-03-15T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 35.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekend_sprintathon/",
      "verified": true,
      "note": "Older sources describe the anchor as 'the Saturday following the 6th', which differs from '2nd Saturday' in some months. SKCC's current page says 2nd Saturday; re-check if dates drift.",
      "exchange": "RST + state/province/country + name + SKCC number (C/T/S suffix for award holders)",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-wes-20260314T1200@contestcal",
      "start_date": "2026-03-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "agcw-qrp-contest",
      "name": "AGCW QRP Contest",
      "start": "2026-03-14T14:00:00Z",
      "end": "2026-03-14T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 6,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/qrp/",
      "verified": true,
      "note": "",
      "exchange": "RST + running number + class",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-qrp-contest-20260314T1400@contestcal",
      "start_date": "2026-03-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "ncj-sprint-rtty",
      "name": "North American Sprint, RTTY",
      "start": "2026-03-15T00:00:00Z",
      "end": "2026-03-15T03:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3.98,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m"
      ],
      "bands_note": "",
      "sponsor": "National Contest Journal (NCJ)",
      "rules_url": "https://www.ncjweb.com/Sprint-Rules.pdf",
      "verified": true,
      "note": "Same 'manual' reasoning as the CW Sprint -- NCJ states dates, not a recurrence rule.",
      "exchange": "Other station's call + your call + serial number + name + state/province/country ('DX' outside North America)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-03-22T03:59:00Z",
      "uid": "ncj-sprint-rtty-20260315T0000@contestcal",
      "start_date": "2026-03-15",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-03-16T00:00:00Z",
      "end": "2026-03-16T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260316T0000@contestcal",
      "start_date": "2026-03-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-03-16T17:40:00Z",
      "end": "2026-03-16T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260316T1740@contestcal",
      "start_date": "2026-03-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-18T13:00:00Z",
      "end": "2026-03-18T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260318T1300@contestcal",
      "start_date": "2026-03-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-18T19:00:00Z",
      "end": "2026-03-18T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260318T1900@contestcal",
      "start_date": "2026-03-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-19T03:00:00Z",
      "end": "2026-03-19T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260319T0300@contestcal",
      "start_date": "2026-03-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-19T07:00:00Z",
      "end": "2026-03-19T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260319T0700@contestcal",
      "start_date": "2026-03-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-03-20T01:00:00Z",
      "end": "2026-03-20T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260320T0100@contestcal",
      "start_date": "2026-03-20",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-03-20T01:45:00Z",
      "end": "2026-03-20T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260320T0145@contestcal",
      "start_date": "2026-03-20",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-03-20T02:30:00Z",
      "end": "2026-03-20T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260320T0230@contestcal",
      "start_date": "2026-03-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-03-20T20:00:00Z",
      "end": "2026-03-20T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260320T2000@contestcal",
      "start_date": "2026-03-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "podxs-st-patricks",
      "name": "PODXS 070 Club St. Patrick's Day Contest",
      "start": "2026-03-21T00:00:00Z",
      "end": "2026-03-21T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 23.98,
      "modes": [
        "Digital"
      ],
      "submodes": [
        "PSK31"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "PODXS 070 Club",
      "rules_url": "https://www.podxs070.com/o7o-club-sponsored-contests/saint-patrick-s-day-contest",
      "verified": true,
      "note": "",
      "exchange": "State/province/country (SPC)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-03-28T23:59:00Z",
      "uid": "podxs-st-patricks-20260321T0000@contestcal",
      "start_date": "2026-03-21",
      "mode_families": [
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "12-24"
    },
    {
      "contest_id": "bartg-hf-rtty",
      "name": "BARTG HF RTTY Contest",
      "start": "2026-03-21T02:00:00Z",
      "end": "2026-03-23T01:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 47.98,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "BARTG",
      "rules_url": "https://bartg.org.uk/bartg-hf-rtty-contest/",
      "verified": true,
      "note": "",
      "exchange": "RST + message number (3 or 4 figures from 001) + time in UTC",
      "country": "GB",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-03-30T01:59:00Z",
      "uid": "bartg-hf-rtty-20260321T0200@contestcal",
      "start_date": "2026-03-21",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "agcw-vhf-uhf",
      "name": "AGCW VHF/UHF Contest",
      "start": "2026-03-21T14:00:00Z",
      "end": "2026-03-21T17:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "2m",
        "70cm"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/vhf-uhf/",
      "verified": true,
      "note": "Four dates a year, each with two back-to-back sessions on different bands: the first session is 2 m only, the second 70 cm only. Encoded as two sessions off one anchor, so eight occurrences a year. The per-session band split is not expressible in the current schema -- both bands are listed at contest level.",
      "exchange": "RST + running number + locator",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-vhf-uhf-20260321T1400@contestcal",
      "start_date": "2026-03-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "VHF+"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "agcw-vhf-uhf",
      "name": "AGCW VHF/UHF Contest",
      "start": "2026-03-21T17:00:00Z",
      "end": "2026-03-21T18:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "2m",
        "70cm"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/vhf-uhf/",
      "verified": true,
      "note": "Four dates a year, each with two back-to-back sessions on different bands: the first session is 2 m only, the second 70 cm only. Encoded as two sessions off one anchor, so eight occurrences a year. The per-session band split is not expressible in the current schema -- both bands are listed at contest level.",
      "exchange": "RST + running number + locator",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-vhf-uhf-20260321T1700@contestcal",
      "start_date": "2026-03-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "VHF+"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-03-23T00:00:00Z",
      "end": "2026-03-23T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260323T0000@contestcal",
      "start_date": "2026-03-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-03-23T17:40:00Z",
      "end": "2026-03-23T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260323T1740@contestcal",
      "start_date": "2026-03-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-sks",
      "name": "SKCC Straight Key Sprint (SKS)",
      "start": "2026-03-25T00:00:00Z",
      "end": "2026-03-25T02:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Suggested frequencies, one per band",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekday_sprint/",
      "verified": true,
      "note": "",
      "exchange": "RST + QTH + name + SKCC number",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-sks-20260325T0000@contestcal",
      "start_date": "2026-03-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-25T13:00:00Z",
      "end": "2026-03-25T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260325T1300@contestcal",
      "start_date": "2026-03-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-25T19:00:00Z",
      "end": "2026-03-25T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260325T1900@contestcal",
      "start_date": "2026-03-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-26T03:00:00Z",
      "end": "2026-03-26T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260326T0300@contestcal",
      "start_date": "2026-03-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-03-26T07:00:00Z",
      "end": "2026-03-26T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260326T0700@contestcal",
      "start_date": "2026-03-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-03-27T01:00:00Z",
      "end": "2026-03-27T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260327T0100@contestcal",
      "start_date": "2026-03-27",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-03-27T01:45:00Z",
      "end": "2026-03-27T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260327T0145@contestcal",
      "start_date": "2026-03-27",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-03-27T02:30:00Z",
      "end": "2026-03-27T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260327T0230@contestcal",
      "start_date": "2026-03-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-03-27T20:00:00Z",
      "end": "2026-03-27T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260327T2000@contestcal",
      "start_date": "2026-03-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cq-wpx-ssb",
      "name": "CQ WW WPX Contest, SSB",
      "start": "2026-03-28T00:00:00Z",
      "end": "2026-03-29T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 47.98,
      "modes": [
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "Only the 1.8, 3.5, 7, 14, 21 and 28 MHz bands may be used",
      "sponsor": "CQ Magazine",
      "rules_url": "https://www.cqwpx.com/rules.htm",
      "verified": false,
      "note": "CONFIRM against sponsor rules before publishing.",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cq-wpx-ssb-20260328T0000@contestcal",
      "start_date": "2026-03-28",
      "mode_families": [
        "SSB"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-03-30T00:00:00Z",
      "end": "2026-03-30T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260330T0000@contestcal",
      "start_date": "2026-03-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-03-30T17:40:00Z",
      "end": "2026-03-30T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260330T1740@contestcal",
      "start_date": "2026-03-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-01T13:00:00Z",
      "end": "2026-04-01T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260401T1300@contestcal",
      "start_date": "2026-04-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-01T19:00:00Z",
      "end": "2026-04-01T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260401T1900@contestcal",
      "start_date": "2026-04-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-02T03:00:00Z",
      "end": "2026-04-02T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260402T0300@contestcal",
      "start_date": "2026-04-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-02T07:00:00Z",
      "end": "2026-04-02T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260402T0700@contestcal",
      "start_date": "2026-04-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-04-03T01:00:00Z",
      "end": "2026-04-03T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260403T0100@contestcal",
      "start_date": "2026-04-03",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-04-03T01:45:00Z",
      "end": "2026-04-03T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260403T0145@contestcal",
      "start_date": "2026-04-03",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-04-03T02:30:00Z",
      "end": "2026-04-03T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260403T0230@contestcal",
      "start_date": "2026-04-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-04-03T20:00:00Z",
      "end": "2026-04-03T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260403T2000@contestcal",
      "start_date": "2026-04-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "podxs-new-member-jamboree",
      "name": "PODXS 070 Club New Member Jamboree",
      "start": "2026-04-04T00:00:00Z",
      "end": "2026-04-04T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 23.98,
      "modes": [
        "Digital"
      ],
      "submodes": [
        "PSK31"
      ],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "PODXS 070 Club",
      "rules_url": "https://www.podxs070.com/o7o-club-sponsored-contests/nmj",
      "verified": true,
      "note": "",
      "exchange": "Members: 070 Club number + year joined. Non-members: no required exchange.",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-04-11T23:59:00Z",
      "uid": "podxs-new-member-jamboree-20260404T0000@contestcal",
      "start_date": "2026-04-04",
      "mode_families": [
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "12-24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-04-06T00:00:00Z",
      "end": "2026-04-06T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260406T0000@contestcal",
      "start_date": "2026-04-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-04-06T17:40:00Z",
      "end": "2026-04-06T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260406T1740@contestcal",
      "start_date": "2026-04-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "ars-spartan-sprint",
      "name": "ARS Spartan Sprint",
      "start": "2026-04-07T00:00:00Z",
      "end": "2026-04-07T02:00:00Z",
      "start_wall": "2026-04-06T20:00:00",
      "end_wall": "2026-04-06T22:00:00",
      "local_rolling": false,
      "timezone": "America/New_York",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "Adventure Radio Society",
      "rules_url": "https://ars-qrp.com/Spartan_Sprint/Spartan_Sprint.html",
      "verified": true,
      "note": "CORRECTION (anchor): previously encoded as the first TUESDAY of the month. The sponsor's rule is the first MONDAY US local, which lands on Tuesday UTC -- and those are different dates whenever the 1st falls on a Tuesday (Sep and Dec 2026). SPONSOR-ANCHORED LOCAL TIME: ARS publishes no UTC time and states the event 'is always at these Local Times', so the UTC instant is what moves -- 0100Z Tuesday under EST, 0000Z Tuesday under EDT. Resolved through America/New_York rather than hardcoded, so DST is handled. ARS lists Eastern, Central, Mountain and Pacific times that are the same instant in every zone that observes DST; Arizona, which does not, is the one place the sponsor's own table is inconsistent.",
      "exchange": "RST + state/province + power output",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "ars-spartan-sprint-20260407T0000@contestcal",
      "start_date": "2026-04-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-08T13:00:00Z",
      "end": "2026-04-08T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260408T1300@contestcal",
      "start_date": "2026-04-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-08T19:00:00Z",
      "end": "2026-04-08T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260408T1900@contestcal",
      "start_date": "2026-04-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-09T03:00:00Z",
      "end": "2026-04-09T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260409T0300@contestcal",
      "start_date": "2026-04-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-09T07:00:00Z",
      "end": "2026-04-09T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260409T0700@contestcal",
      "start_date": "2026-04-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-04-10T01:00:00Z",
      "end": "2026-04-10T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260410T0100@contestcal",
      "start_date": "2026-04-10",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-04-10T01:45:00Z",
      "end": "2026-04-10T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260410T0145@contestcal",
      "start_date": "2026-04-10",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-04-10T02:30:00Z",
      "end": "2026-04-10T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260410T0230@contestcal",
      "start_date": "2026-04-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-04-10T20:00:00Z",
      "end": "2026-04-10T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260410T2000@contestcal",
      "start_date": "2026-04-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-wes",
      "name": "SKCC Weekend Sprintathon (WES)",
      "start": "2026-04-11T12:00:00Z",
      "end": "2026-04-12T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 35.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekend_sprintathon/",
      "verified": true,
      "note": "Older sources describe the anchor as 'the Saturday following the 6th', which differs from '2nd Saturday' in some months. SKCC's current page says 2nd Saturday; re-check if dates drift.",
      "exchange": "RST + state/province/country + name + SKCC number (C/T/S suffix for award holders)",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-wes-20260411T1200@contestcal",
      "start_date": "2026-04-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "4sqrp-sss",
      "name": "4 States QRP Group Second Sunday Sprint (SSS)",
      "start": "2026-04-13T00:00:00Z",
      "end": "2026-04-13T02:00:00Z",
      "start_wall": "2026-04-12T19:00:00",
      "end_wall": "2026-04-12T21:00:00",
      "local_rolling": false,
      "timezone": "America/Chicago",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB",
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "4 States QRP Group",
      "rules_url": "https://www.4sqrp.com/SSS/sss_rules_revised_02_2026.pdf",
      "verified": true,
      "note": "SPONSOR-ANCHORED LOCAL TIME. The anchor is the second SUNDAY and the sprint runs into Monday UTC. 4SQRP states the consequence itself: '7 PM until 9 PM central time (CST or CDT, whichever is in effect at the time). If you use UTC, that time changes when we switch from CST to CDT (or vice versa).' Resolved through America/Chicago, so it is 0100Z Monday in winter and 0000Z Monday in summer.",
      "exchange": "RST + state/province/country + 4SQRP member number (power if non-member)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "4sqrp-sss-20260413T0000@contestcal",
      "start_date": "2026-04-13",
      "mode_families": [
        "CW",
        "SSB",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-04-13T00:00:00Z",
      "end": "2026-04-13T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260413T0000@contestcal",
      "start_date": "2026-04-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-04-13T17:40:00Z",
      "end": "2026-04-13T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260413T1740@contestcal",
      "start_date": "2026-04-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-15T13:00:00Z",
      "end": "2026-04-15T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260415T1300@contestcal",
      "start_date": "2026-04-15",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-15T19:00:00Z",
      "end": "2026-04-15T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260415T1900@contestcal",
      "start_date": "2026-04-15",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-16T03:00:00Z",
      "end": "2026-04-16T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260416T0300@contestcal",
      "start_date": "2026-04-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-16T07:00:00Z",
      "end": "2026-04-16T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260416T0700@contestcal",
      "start_date": "2026-04-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-04-17T01:00:00Z",
      "end": "2026-04-17T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260417T0100@contestcal",
      "start_date": "2026-04-17",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-04-17T01:45:00Z",
      "end": "2026-04-17T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260417T0145@contestcal",
      "start_date": "2026-04-17",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-04-17T02:30:00Z",
      "end": "2026-04-17T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260417T0230@contestcal",
      "start_date": "2026-04-17",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-04-17T20:00:00Z",
      "end": "2026-04-17T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260417T2000@contestcal",
      "start_date": "2026-04-17",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-rookie-roundup-ssb",
      "name": "ARRL Rookie Roundup, SSB",
      "start": "2026-04-19T18:00:00Z",
      "end": "2026-04-19T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 5.98,
      "modes": [
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/rookie-roundup",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "entity_list",
      "eligibility_reason": "Entry limited to K, VE, XE -- includes K.",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-rookie-roundup-ssb-20260419T1800@contestcal",
      "start_date": "2026-04-19",
      "mode_families": [
        "SSB"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-04-20T00:00:00Z",
      "end": "2026-04-20T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260420T0000@contestcal",
      "start_date": "2026-04-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-04-20T17:40:00Z",
      "end": "2026-04-20T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260420T1740@contestcal",
      "start_date": "2026-04-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-sks",
      "name": "SKCC Straight Key Sprint (SKS)",
      "start": "2026-04-22T00:00:00Z",
      "end": "2026-04-22T02:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Suggested frequencies, one per band",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekday_sprint/",
      "verified": true,
      "note": "",
      "exchange": "RST + QTH + name + SKCC number",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-sks-20260422T0000@contestcal",
      "start_date": "2026-04-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-22T13:00:00Z",
      "end": "2026-04-22T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260422T1300@contestcal",
      "start_date": "2026-04-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-22T19:00:00Z",
      "end": "2026-04-22T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260422T1900@contestcal",
      "start_date": "2026-04-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-23T03:00:00Z",
      "end": "2026-04-23T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260423T0300@contestcal",
      "start_date": "2026-04-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-23T07:00:00Z",
      "end": "2026-04-23T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260423T0700@contestcal",
      "start_date": "2026-04-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-04-24T01:00:00Z",
      "end": "2026-04-24T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260424T0100@contestcal",
      "start_date": "2026-04-24",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-04-24T01:45:00Z",
      "end": "2026-04-24T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260424T0145@contestcal",
      "start_date": "2026-04-24",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-04-24T02:30:00Z",
      "end": "2026-04-24T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260424T0230@contestcal",
      "start_date": "2026-04-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-04-24T20:00:00Z",
      "end": "2026-04-24T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260424T2000@contestcal",
      "start_date": "2026-04-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "bartg-sprint75",
      "name": "BARTG Sprint75 Contest",
      "start": "2026-04-26T17:00:00Z",
      "end": "2026-04-26T20:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3.98,
      "modes": [
        "RTTY"
      ],
      "submodes": [
        "RTTY 75 baud"
      ],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "BARTG",
      "rules_url": "https://bartg.org.uk/bartg-sprint75-contests/",
      "verified": true,
      "note": "'Fourth Sunday', not 'last Sunday': 2028 and 2029 both have five April Sundays and BARTG lists the fourth in each. Also note this is 75 baud RTTY, not the usual 45.45 baud.",
      "exchange": "Message number only (3 or 4 figures from 001)",
      "country": "GB",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-05-03T20:59:00Z",
      "uid": "bartg-sprint75-20260426T1700@contestcal",
      "start_date": "2026-04-26",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-04-27T00:00:00Z",
      "end": "2026-04-27T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260427T0000@contestcal",
      "start_date": "2026-04-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-04-27T17:40:00Z",
      "end": "2026-04-27T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260427T1740@contestcal",
      "start_date": "2026-04-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-29T13:00:00Z",
      "end": "2026-04-29T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260429T1300@contestcal",
      "start_date": "2026-04-29",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-29T19:00:00Z",
      "end": "2026-04-29T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260429T1900@contestcal",
      "start_date": "2026-04-29",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-30T03:00:00Z",
      "end": "2026-04-30T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260430T0300@contestcal",
      "start_date": "2026-04-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-04-30T07:00:00Z",
      "end": "2026-04-30T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260430T0700@contestcal",
      "start_date": "2026-04-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-05-01T01:00:00Z",
      "end": "2026-05-01T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260501T0100@contestcal",
      "start_date": "2026-05-01",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-05-01T01:45:00Z",
      "end": "2026-05-01T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260501T0145@contestcal",
      "start_date": "2026-05-01",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-05-01T02:30:00Z",
      "end": "2026-05-01T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260501T0230@contestcal",
      "start_date": "2026-05-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-qrp-qrp-party",
      "name": "AGCW QRP/QRP Party",
      "start": "2026-05-01T13:00:00Z",
      "end": "2026-05-01T19:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 6,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/qrp-qrp/",
      "verified": true,
      "note": "",
      "exchange": "RST + running number + class",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-qrp-qrp-party-20260501T1300@contestcal",
      "start_date": "2026-05-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-05-01T20:00:00Z",
      "end": "2026-05-01T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260501T2000@contestcal",
      "start_date": "2026-05-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-05-04T00:00:00Z",
      "end": "2026-05-04T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260504T0000@contestcal",
      "start_date": "2026-05-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-05-04T17:40:00Z",
      "end": "2026-05-04T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260504T1740@contestcal",
      "start_date": "2026-05-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "ars-spartan-sprint",
      "name": "ARS Spartan Sprint",
      "start": "2026-05-05T00:00:00Z",
      "end": "2026-05-05T02:00:00Z",
      "start_wall": "2026-05-04T20:00:00",
      "end_wall": "2026-05-04T22:00:00",
      "local_rolling": false,
      "timezone": "America/New_York",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "Adventure Radio Society",
      "rules_url": "https://ars-qrp.com/Spartan_Sprint/Spartan_Sprint.html",
      "verified": true,
      "note": "CORRECTION (anchor): previously encoded as the first TUESDAY of the month. The sponsor's rule is the first MONDAY US local, which lands on Tuesday UTC -- and those are different dates whenever the 1st falls on a Tuesday (Sep and Dec 2026). SPONSOR-ANCHORED LOCAL TIME: ARS publishes no UTC time and states the event 'is always at these Local Times', so the UTC instant is what moves -- 0100Z Tuesday under EST, 0000Z Tuesday under EDT. Resolved through America/New_York rather than hardcoded, so DST is handled. ARS lists Eastern, Central, Mountain and Pacific times that are the same instant in every zone that observes DST; Arizona, which does not, is the one place the sponsor's own table is inconsistent.",
      "exchange": "RST + state/province + power output",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "ars-spartan-sprint-20260505T0000@contestcal",
      "start_date": "2026-05-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-06T13:00:00Z",
      "end": "2026-05-06T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260506T1300@contestcal",
      "start_date": "2026-05-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-06T19:00:00Z",
      "end": "2026-05-06T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260506T1900@contestcal",
      "start_date": "2026-05-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-07T03:00:00Z",
      "end": "2026-05-07T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260507T0300@contestcal",
      "start_date": "2026-05-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-07T07:00:00Z",
      "end": "2026-05-07T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260507T0700@contestcal",
      "start_date": "2026-05-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-05-08T01:00:00Z",
      "end": "2026-05-08T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260508T0100@contestcal",
      "start_date": "2026-05-08",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-05-08T01:45:00Z",
      "end": "2026-05-08T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260508T0145@contestcal",
      "start_date": "2026-05-08",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-05-08T02:30:00Z",
      "end": "2026-05-08T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260508T0230@contestcal",
      "start_date": "2026-05-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-05-08T20:00:00Z",
      "end": "2026-05-08T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260508T2000@contestcal",
      "start_date": "2026-05-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-wes",
      "name": "SKCC Weekend Sprintathon (WES)",
      "start": "2026-05-09T12:00:00Z",
      "end": "2026-05-10T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 35.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekend_sprintathon/",
      "verified": true,
      "note": "Older sources describe the anchor as 'the Saturday following the 6th', which differs from '2nd Saturday' in some months. SKCC's current page says 2nd Saturday; re-check if dates drift.",
      "exchange": "RST + state/province/country + name + SKCC number (C/T/S suffix for award holders)",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-wes-20260509T1200@contestcal",
      "start_date": "2026-05-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "4sqrp-sss",
      "name": "4 States QRP Group Second Sunday Sprint (SSS)",
      "start": "2026-05-11T00:00:00Z",
      "end": "2026-05-11T02:00:00Z",
      "start_wall": "2026-05-10T19:00:00",
      "end_wall": "2026-05-10T21:00:00",
      "local_rolling": false,
      "timezone": "America/Chicago",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB",
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "4 States QRP Group",
      "rules_url": "https://www.4sqrp.com/SSS/sss_rules_revised_02_2026.pdf",
      "verified": true,
      "note": "SPONSOR-ANCHORED LOCAL TIME. The anchor is the second SUNDAY and the sprint runs into Monday UTC. 4SQRP states the consequence itself: '7 PM until 9 PM central time (CST or CDT, whichever is in effect at the time). If you use UTC, that time changes when we switch from CST to CDT (or vice versa).' Resolved through America/Chicago, so it is 0100Z Monday in winter and 0000Z Monday in summer.",
      "exchange": "RST + state/province/country + 4SQRP member number (power if non-member)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "4sqrp-sss-20260511T0000@contestcal",
      "start_date": "2026-05-11",
      "mode_families": [
        "CW",
        "SSB",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-05-11T00:00:00Z",
      "end": "2026-05-11T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260511T0000@contestcal",
      "start_date": "2026-05-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-05-11T17:40:00Z",
      "end": "2026-05-11T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260511T1740@contestcal",
      "start_date": "2026-05-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-13T13:00:00Z",
      "end": "2026-05-13T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260513T1300@contestcal",
      "start_date": "2026-05-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-13T19:00:00Z",
      "end": "2026-05-13T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260513T1900@contestcal",
      "start_date": "2026-05-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-14T03:00:00Z",
      "end": "2026-05-14T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260514T0300@contestcal",
      "start_date": "2026-05-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-14T07:00:00Z",
      "end": "2026-05-14T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260514T0700@contestcal",
      "start_date": "2026-05-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-05-15T01:00:00Z",
      "end": "2026-05-15T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260515T0100@contestcal",
      "start_date": "2026-05-15",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-05-15T01:45:00Z",
      "end": "2026-05-15T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260515T0145@contestcal",
      "start_date": "2026-05-15",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-05-15T02:30:00Z",
      "end": "2026-05-15T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260515T0230@contestcal",
      "start_date": "2026-05-15",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-05-15T20:00:00Z",
      "end": "2026-05-15T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260515T2000@contestcal",
      "start_date": "2026-05-15",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-05-18T00:00:00Z",
      "end": "2026-05-18T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260518T0000@contestcal",
      "start_date": "2026-05-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-05-18T17:40:00Z",
      "end": "2026-05-18T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260518T1740@contestcal",
      "start_date": "2026-05-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-20T13:00:00Z",
      "end": "2026-05-20T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260520T1300@contestcal",
      "start_date": "2026-05-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-20T19:00:00Z",
      "end": "2026-05-20T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260520T1900@contestcal",
      "start_date": "2026-05-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-21T03:00:00Z",
      "end": "2026-05-21T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260521T0300@contestcal",
      "start_date": "2026-05-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-21T07:00:00Z",
      "end": "2026-05-21T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260521T0700@contestcal",
      "start_date": "2026-05-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-05-22T01:00:00Z",
      "end": "2026-05-22T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260522T0100@contestcal",
      "start_date": "2026-05-22",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-05-22T01:45:00Z",
      "end": "2026-05-22T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260522T0145@contestcal",
      "start_date": "2026-05-22",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-05-22T02:30:00Z",
      "end": "2026-05-22T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260522T0230@contestcal",
      "start_date": "2026-05-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-05-22T20:00:00Z",
      "end": "2026-05-22T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260522T2000@contestcal",
      "start_date": "2026-05-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-05-25T00:00:00Z",
      "end": "2026-05-25T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260525T0000@contestcal",
      "start_date": "2026-05-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-05-25T17:40:00Z",
      "end": "2026-05-25T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260525T1740@contestcal",
      "start_date": "2026-05-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-sks",
      "name": "SKCC Straight Key Sprint (SKS)",
      "start": "2026-05-27T00:00:00Z",
      "end": "2026-05-27T02:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Suggested frequencies, one per band",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekday_sprint/",
      "verified": true,
      "note": "",
      "exchange": "RST + QTH + name + SKCC number",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-sks-20260527T0000@contestcal",
      "start_date": "2026-05-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-27T13:00:00Z",
      "end": "2026-05-27T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260527T1300@contestcal",
      "start_date": "2026-05-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-27T19:00:00Z",
      "end": "2026-05-27T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260527T1900@contestcal",
      "start_date": "2026-05-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-28T03:00:00Z",
      "end": "2026-05-28T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260528T0300@contestcal",
      "start_date": "2026-05-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-05-28T07:00:00Z",
      "end": "2026-05-28T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260528T0700@contestcal",
      "start_date": "2026-05-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-05-29T01:00:00Z",
      "end": "2026-05-29T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260529T0100@contestcal",
      "start_date": "2026-05-29",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-05-29T01:45:00Z",
      "end": "2026-05-29T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260529T0145@contestcal",
      "start_date": "2026-05-29",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-05-29T02:30:00Z",
      "end": "2026-05-29T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260529T0230@contestcal",
      "start_date": "2026-05-29",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-05-29T20:00:00Z",
      "end": "2026-05-29T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260529T2000@contestcal",
      "start_date": "2026-05-29",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cq-wpx-cw",
      "name": "CQ WW WPX Contest, CW",
      "start": "2026-05-30T00:00:00Z",
      "end": "2026-05-31T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 47.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "Only the 1.8, 3.5, 7, 14, 21 and 28 MHz bands may be used",
      "sponsor": "CQ Magazine",
      "rules_url": "https://www.cqwpx.com/rules.htm",
      "verified": false,
      "note": "CONFIRM against sponsor rules before publishing.",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cq-wpx-cw-20260530T0000@contestcal",
      "start_date": "2026-05-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-06-01T00:00:00Z",
      "end": "2026-06-01T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260601T0000@contestcal",
      "start_date": "2026-06-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-06-01T17:40:00Z",
      "end": "2026-06-01T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260601T1740@contestcal",
      "start_date": "2026-06-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "ars-spartan-sprint",
      "name": "ARS Spartan Sprint",
      "start": "2026-06-02T00:00:00Z",
      "end": "2026-06-02T02:00:00Z",
      "start_wall": "2026-06-01T20:00:00",
      "end_wall": "2026-06-01T22:00:00",
      "local_rolling": false,
      "timezone": "America/New_York",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "Adventure Radio Society",
      "rules_url": "https://ars-qrp.com/Spartan_Sprint/Spartan_Sprint.html",
      "verified": true,
      "note": "CORRECTION (anchor): previously encoded as the first TUESDAY of the month. The sponsor's rule is the first MONDAY US local, which lands on Tuesday UTC -- and those are different dates whenever the 1st falls on a Tuesday (Sep and Dec 2026). SPONSOR-ANCHORED LOCAL TIME: ARS publishes no UTC time and states the event 'is always at these Local Times', so the UTC instant is what moves -- 0100Z Tuesday under EST, 0000Z Tuesday under EDT. Resolved through America/New_York rather than hardcoded, so DST is handled. ARS lists Eastern, Central, Mountain and Pacific times that are the same instant in every zone that observes DST; Arizona, which does not, is the one place the sponsor's own table is inconsistent.",
      "exchange": "RST + state/province + power output",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "ars-spartan-sprint-20260602T0000@contestcal",
      "start_date": "2026-06-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-03T13:00:00Z",
      "end": "2026-06-03T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260603T1300@contestcal",
      "start_date": "2026-06-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-03T19:00:00Z",
      "end": "2026-06-03T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260603T1900@contestcal",
      "start_date": "2026-06-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-04T03:00:00Z",
      "end": "2026-06-04T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260604T0300@contestcal",
      "start_date": "2026-06-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-04T07:00:00Z",
      "end": "2026-06-04T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260604T0700@contestcal",
      "start_date": "2026-06-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "podxs-tdw",
      "name": "PODXS 070 Club Three Day Weekend (TDW)",
      "start": "2026-06-05T00:00:00Z",
      "end": "2026-06-07T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 71.98,
      "modes": [
        "Digital"
      ],
      "submodes": [
        "PSK31"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "PODXS 070 Club",
      "rules_url": "https://www.podxs070.com/o7o-club-sponsored-contests/three-day-weekend",
      "verified": true,
      "note": "'First weekend ENDING in June' is why this anchors on the first SUNDAY of June and counts backwards to the Friday, rather than anchoring on a Friday in June. The club's own table proves the distinction matters: it lists 31-May-30 and 30-May-31, where the contest starts in May.",
      "exchange": "Members: 070 Club number. Non-members: 0000 in place of a club number.",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-06-14T23:59:00Z",
      "uid": "podxs-tdw-20260605T0000@contestcal",
      "start_date": "2026-06-05",
      "mode_families": [
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-06-05T01:00:00Z",
      "end": "2026-06-05T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260605T0100@contestcal",
      "start_date": "2026-06-05",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-06-05T01:45:00Z",
      "end": "2026-06-05T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260605T0145@contestcal",
      "start_date": "2026-06-05",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-06-05T02:30:00Z",
      "end": "2026-06-05T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260605T0230@contestcal",
      "start_date": "2026-06-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-06-05T20:00:00Z",
      "end": "2026-06-05T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260605T2000@contestcal",
      "start_date": "2026-06-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-digital",
      "name": "ARRL International Digital Contest",
      "start": "2026-06-06T18:00:00Z",
      "end": "2026-06-07T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 29.98,
      "modes": [
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Technicians are limited by FCC rules to 10 m and 6 m",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/arrl-digital-contest",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-digital-20260606T1800@contestcal",
      "start_date": "2026-06-06",
      "mode_families": [
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-06-08T00:00:00Z",
      "end": "2026-06-08T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260608T0000@contestcal",
      "start_date": "2026-06-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-06-08T17:40:00Z",
      "end": "2026-06-08T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260608T1740@contestcal",
      "start_date": "2026-06-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-10T13:00:00Z",
      "end": "2026-06-10T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260610T1300@contestcal",
      "start_date": "2026-06-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-10T19:00:00Z",
      "end": "2026-06-10T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260610T1900@contestcal",
      "start_date": "2026-06-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-11T03:00:00Z",
      "end": "2026-06-11T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260611T0300@contestcal",
      "start_date": "2026-06-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-11T07:00:00Z",
      "end": "2026-06-11T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260611T0700@contestcal",
      "start_date": "2026-06-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-06-12T01:00:00Z",
      "end": "2026-06-12T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260612T0100@contestcal",
      "start_date": "2026-06-12",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-06-12T01:45:00Z",
      "end": "2026-06-12T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260612T0145@contestcal",
      "start_date": "2026-06-12",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-06-12T02:30:00Z",
      "end": "2026-06-12T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260612T0230@contestcal",
      "start_date": "2026-06-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-06-12T20:00:00Z",
      "end": "2026-06-12T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260612T2000@contestcal",
      "start_date": "2026-06-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-wes",
      "name": "SKCC Weekend Sprintathon (WES)",
      "start": "2026-06-13T12:00:00Z",
      "end": "2026-06-14T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 35.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekend_sprintathon/",
      "verified": true,
      "note": "Older sources describe the anchor as 'the Saturday following the 6th', which differs from '2nd Saturday' in some months. SKCC's current page says 2nd Saturday; re-check if dates drift.",
      "exchange": "RST + state/province/country + name + SKCC number (C/T/S suffix for award holders)",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-wes-20260613T1200@contestcal",
      "start_date": "2026-06-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "agcw-vhf-uhf",
      "name": "AGCW VHF/UHF Contest",
      "start": "2026-06-13T14:00:00Z",
      "end": "2026-06-13T17:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "2m",
        "70cm"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/vhf-uhf/",
      "verified": true,
      "note": "Four dates a year, each with two back-to-back sessions on different bands: the first session is 2 m only, the second 70 cm only. Encoded as two sessions off one anchor, so eight occurrences a year. The per-session band split is not expressible in the current schema -- both bands are listed at contest level.",
      "exchange": "RST + running number + locator",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-vhf-uhf-20260613T1400@contestcal",
      "start_date": "2026-06-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "VHF+"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "agcw-vhf-uhf",
      "name": "AGCW VHF/UHF Contest",
      "start": "2026-06-13T17:00:00Z",
      "end": "2026-06-13T18:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "2m",
        "70cm"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/vhf-uhf/",
      "verified": true,
      "note": "Four dates a year, each with two back-to-back sessions on different bands: the first session is 2 m only, the second 70 cm only. Encoded as two sessions off one anchor, so eight occurrences a year. The per-session band split is not expressible in the current schema -- both bands are listed at contest level.",
      "exchange": "RST + running number + locator",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-vhf-uhf-20260613T1700@contestcal",
      "start_date": "2026-06-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "VHF+"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-june-vhf",
      "name": "ARRL June VHF Contest",
      "start": "2026-06-13T18:00:00Z",
      "end": "2026-06-15T02:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 32.98,
      "modes": [
        "Mixed"
      ],
      "submodes": [],
      "bands": [
        "6m",
        "2m",
        "1.25m",
        "70cm",
        "33cm",
        "23cm",
        "13cm",
        "3cm"
      ],
      "bands_note": "All authorized frequencies above 50 MHz",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/june-vhf",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "June VHF benefits from sporadic-E, historically the best VHF month from Florida.",
      "log_due": null,
      "uid": "arrl-june-vhf-20260613T1800@contestcal",
      "start_date": "2026-06-13",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital",
        "FT8/FT4",
        "Mixed"
      ],
      "band_families": [
        "6m",
        "VHF+"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "4sqrp-sss",
      "name": "4 States QRP Group Second Sunday Sprint (SSS)",
      "start": "2026-06-15T00:00:00Z",
      "end": "2026-06-15T02:00:00Z",
      "start_wall": "2026-06-14T19:00:00",
      "end_wall": "2026-06-14T21:00:00",
      "local_rolling": false,
      "timezone": "America/Chicago",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB",
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "4 States QRP Group",
      "rules_url": "https://www.4sqrp.com/SSS/sss_rules_revised_02_2026.pdf",
      "verified": true,
      "note": "SPONSOR-ANCHORED LOCAL TIME. The anchor is the second SUNDAY and the sprint runs into Monday UTC. 4SQRP states the consequence itself: '7 PM until 9 PM central time (CST or CDT, whichever is in effect at the time). If you use UTC, that time changes when we switch from CST to CDT (or vice versa).' Resolved through America/Chicago, so it is 0100Z Monday in winter and 0000Z Monday in summer.",
      "exchange": "RST + state/province/country + 4SQRP member number (power if non-member)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "4sqrp-sss-20260615T0000@contestcal",
      "start_date": "2026-06-15",
      "mode_families": [
        "CW",
        "SSB",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-06-15T00:00:00Z",
      "end": "2026-06-15T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260615T0000@contestcal",
      "start_date": "2026-06-15",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-06-15T17:40:00Z",
      "end": "2026-06-15T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260615T1740@contestcal",
      "start_date": "2026-06-15",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-17T13:00:00Z",
      "end": "2026-06-17T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260617T1300@contestcal",
      "start_date": "2026-06-17",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-17T19:00:00Z",
      "end": "2026-06-17T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260617T1900@contestcal",
      "start_date": "2026-06-17",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-18T03:00:00Z",
      "end": "2026-06-18T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260618T0300@contestcal",
      "start_date": "2026-06-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-18T07:00:00Z",
      "end": "2026-06-18T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260618T0700@contestcal",
      "start_date": "2026-06-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-06-19T01:00:00Z",
      "end": "2026-06-19T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260619T0100@contestcal",
      "start_date": "2026-06-19",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-06-19T01:45:00Z",
      "end": "2026-06-19T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260619T0145@contestcal",
      "start_date": "2026-06-19",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-06-19T02:30:00Z",
      "end": "2026-06-19T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260619T0230@contestcal",
      "start_date": "2026-06-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-06-19T20:00:00Z",
      "end": "2026-06-19T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260619T2000@contestcal",
      "start_date": "2026-06-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-kids-day-jun",
      "name": "ARRL Kids Day (June)",
      "start": "2026-06-20T18:00:00Z",
      "end": "2026-06-20T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 5.98,
      "modes": [
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m"
      ],
      "bands_note": "Suggested frequencies; repeaters may also be used with the sponsor's permission",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/kids-day",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-kids-day-jun-20260620T1800@contestcal",
      "start_date": "2026-06-20",
      "mode_families": [
        "SSB"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "irts-80m-counties",
      "name": "IRTS 80m Counties Contest",
      "start": "2026-06-21T13:00:00Z",
      "end": "2026-06-21T15:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "IRTS",
      "rules_url": "https://www.irts.ie/",
      "verified": false,
      "note": "",
      "exchange": "",
      "country": "EI",
      "rules_url_archived": "",
      "rules_url_checked": "",
      "can_enter": false,
      "eligibility_scope": "entity_list",
      "eligibility_reason": "Entry limited to EI, GI. K stations may be worked but cannot submit an entry.",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "irts-80m-counties-20260621T1300@contestcal",
      "start_date": "2026-06-21",
      "mode_families": [
        "CW",
        "SSB"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-06-22T00:00:00Z",
      "end": "2026-06-22T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260622T0000@contestcal",
      "start_date": "2026-06-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-06-22T17:40:00Z",
      "end": "2026-06-22T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260622T1740@contestcal",
      "start_date": "2026-06-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-sks",
      "name": "SKCC Straight Key Sprint (SKS)",
      "start": "2026-06-24T00:00:00Z",
      "end": "2026-06-24T02:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Suggested frequencies, one per band",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekday_sprint/",
      "verified": true,
      "note": "",
      "exchange": "RST + QTH + name + SKCC number",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-sks-20260624T0000@contestcal",
      "start_date": "2026-06-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-24T13:00:00Z",
      "end": "2026-06-24T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260624T1300@contestcal",
      "start_date": "2026-06-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-24T19:00:00Z",
      "end": "2026-06-24T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260624T1900@contestcal",
      "start_date": "2026-06-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-25T03:00:00Z",
      "end": "2026-06-25T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260625T0300@contestcal",
      "start_date": "2026-06-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-06-25T07:00:00Z",
      "end": "2026-06-25T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260625T0700@contestcal",
      "start_date": "2026-06-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-06-26T01:00:00Z",
      "end": "2026-06-26T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260626T0100@contestcal",
      "start_date": "2026-06-26",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-06-26T01:45:00Z",
      "end": "2026-06-26T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260626T0145@contestcal",
      "start_date": "2026-06-26",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-06-26T02:30:00Z",
      "end": "2026-06-26T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260626T0230@contestcal",
      "start_date": "2026-06-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-06-26T20:00:00Z",
      "end": "2026-06-26T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260626T2000@contestcal",
      "start_date": "2026-06-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-field-day",
      "name": "ARRL Field Day",
      "start": "2026-06-27T18:00:00Z",
      "end": "2026-06-28T20:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 26.98,
      "modes": [
        "Mixed"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m",
        "2m",
        "1.25m",
        "70cm",
        "33cm",
        "23cm",
        "13cm",
        "3cm"
      ],
      "bands_note": "160-10 m excluding the 60, 30, 17 and 12 m bands, plus all bands 50 MHz and above",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/field-day",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "entity_list",
      "eligibility_reason": "Entry limited to K, VE -- includes K.",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-field-day-20260627T1800@contestcal",
      "start_date": "2026-06-27",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital",
        "FT8/FT4",
        "Mixed"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m",
        "VHF+"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-06-29T00:00:00Z",
      "end": "2026-06-29T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260629T0000@contestcal",
      "start_date": "2026-06-29",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-06-29T17:40:00Z",
      "end": "2026-06-29T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260629T1740@contestcal",
      "start_date": "2026-06-29",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-01T13:00:00Z",
      "end": "2026-07-01T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260701T1300@contestcal",
      "start_date": "2026-07-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-01T19:00:00Z",
      "end": "2026-07-01T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260701T1900@contestcal",
      "start_date": "2026-07-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-02T03:00:00Z",
      "end": "2026-07-02T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260702T0300@contestcal",
      "start_date": "2026-07-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-02T07:00:00Z",
      "end": "2026-07-02T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260702T0700@contestcal",
      "start_date": "2026-07-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-07-03T01:00:00Z",
      "end": "2026-07-03T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260703T0100@contestcal",
      "start_date": "2026-07-03",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-07-03T01:45:00Z",
      "end": "2026-07-03T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260703T0145@contestcal",
      "start_date": "2026-07-03",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-07-03T02:30:00Z",
      "end": "2026-07-03T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260703T0230@contestcal",
      "start_date": "2026-07-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-07-03T20:00:00Z",
      "end": "2026-07-03T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260703T2000@contestcal",
      "start_date": "2026-07-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "podxs-40m-firecracker",
      "name": "PODXS 070 Club 40M Firecracker Sprint",
      "start": "2026-07-04T20:00:00Z",
      "end": "2026-07-05T19:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 23.98,
      "modes": [
        "Digital"
      ],
      "submodes": [
        "PSK31"
      ],
      "bands": [
        "40m"
      ],
      "bands_note": "",
      "sponsor": "PODXS 070 Club",
      "rules_url": "https://www.podxs070.com/o7o-club-sponsored-contests/40m-firecracker-sprint",
      "verified": true,
      "note": "The 24-hour window is the outer bound; maximum operating time is a six-hour block chosen by the entrant.",
      "exchange": "State/province/country (SPC)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-07-12T19:59:00Z",
      "uid": "podxs-40m-firecracker-20260704T2000@contestcal",
      "start_date": "2026-07-04",
      "mode_families": [
        "Digital"
      ],
      "band_families": [
        "40m"
      ],
      "duration_bucket": "12-24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-07-06T00:00:00Z",
      "end": "2026-07-06T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260706T0000@contestcal",
      "start_date": "2026-07-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-07-06T17:40:00Z",
      "end": "2026-07-06T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260706T1740@contestcal",
      "start_date": "2026-07-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "ars-spartan-sprint",
      "name": "ARS Spartan Sprint",
      "start": "2026-07-07T00:00:00Z",
      "end": "2026-07-07T02:00:00Z",
      "start_wall": "2026-07-06T20:00:00",
      "end_wall": "2026-07-06T22:00:00",
      "local_rolling": false,
      "timezone": "America/New_York",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "Adventure Radio Society",
      "rules_url": "https://ars-qrp.com/Spartan_Sprint/Spartan_Sprint.html",
      "verified": true,
      "note": "CORRECTION (anchor): previously encoded as the first TUESDAY of the month. The sponsor's rule is the first MONDAY US local, which lands on Tuesday UTC -- and those are different dates whenever the 1st falls on a Tuesday (Sep and Dec 2026). SPONSOR-ANCHORED LOCAL TIME: ARS publishes no UTC time and states the event 'is always at these Local Times', so the UTC instant is what moves -- 0100Z Tuesday under EST, 0000Z Tuesday under EDT. Resolved through America/New_York rather than hardcoded, so DST is handled. ARS lists Eastern, Central, Mountain and Pacific times that are the same instant in every zone that observes DST; Arizona, which does not, is the one place the sponsor's own table is inconsistent.",
      "exchange": "RST + state/province + power output",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "ars-spartan-sprint-20260707T0000@contestcal",
      "start_date": "2026-07-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-08T13:00:00Z",
      "end": "2026-07-08T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260708T1300@contestcal",
      "start_date": "2026-07-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-08T19:00:00Z",
      "end": "2026-07-08T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260708T1900@contestcal",
      "start_date": "2026-07-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-09T03:00:00Z",
      "end": "2026-07-09T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260709T0300@contestcal",
      "start_date": "2026-07-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-09T07:00:00Z",
      "end": "2026-07-09T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260709T0700@contestcal",
      "start_date": "2026-07-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-07-10T01:00:00Z",
      "end": "2026-07-10T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260710T0100@contestcal",
      "start_date": "2026-07-10",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-07-10T01:45:00Z",
      "end": "2026-07-10T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260710T0145@contestcal",
      "start_date": "2026-07-10",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-07-10T02:30:00Z",
      "end": "2026-07-10T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260710T0230@contestcal",
      "start_date": "2026-07-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-07-10T20:00:00Z",
      "end": "2026-07-10T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260710T2000@contestcal",
      "start_date": "2026-07-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-iaru-hf",
      "name": "IARU HF World Championship",
      "start": "2026-07-11T12:00:00Z",
      "end": "2026-07-12T11:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 23.98,
      "modes": [
        "CW",
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "ARRL / IARU",
      "rules_url": "http://www.arrl.org/iaru-hf-world-championship",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-iaru-hf-20260711T1200@contestcal",
      "start_date": "2026-07-11",
      "mode_families": [
        "CW",
        "SSB"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "12-24"
    },
    {
      "contest_id": "skcc-wes",
      "name": "SKCC Weekend Sprintathon (WES)",
      "start": "2026-07-11T12:00:00Z",
      "end": "2026-07-12T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 35.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekend_sprintathon/",
      "verified": true,
      "note": "Older sources describe the anchor as 'the Saturday following the 6th', which differs from '2nd Saturday' in some months. SKCC's current page says 2nd Saturday; re-check if dates drift.",
      "exchange": "RST + state/province/country + name + SKCC number (C/T/S suffix for award holders)",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-wes-20260711T1200@contestcal",
      "start_date": "2026-07-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "4sqrp-sss",
      "name": "4 States QRP Group Second Sunday Sprint (SSS)",
      "start": "2026-07-13T00:00:00Z",
      "end": "2026-07-13T02:00:00Z",
      "start_wall": "2026-07-12T19:00:00",
      "end_wall": "2026-07-12T21:00:00",
      "local_rolling": false,
      "timezone": "America/Chicago",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB",
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "4 States QRP Group",
      "rules_url": "https://www.4sqrp.com/SSS/sss_rules_revised_02_2026.pdf",
      "verified": true,
      "note": "SPONSOR-ANCHORED LOCAL TIME. The anchor is the second SUNDAY and the sprint runs into Monday UTC. 4SQRP states the consequence itself: '7 PM until 9 PM central time (CST or CDT, whichever is in effect at the time). If you use UTC, that time changes when we switch from CST to CDT (or vice versa).' Resolved through America/Chicago, so it is 0100Z Monday in winter and 0000Z Monday in summer.",
      "exchange": "RST + state/province/country + 4SQRP member number (power if non-member)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "4sqrp-sss-20260713T0000@contestcal",
      "start_date": "2026-07-13",
      "mode_families": [
        "CW",
        "SSB",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-07-13T00:00:00Z",
      "end": "2026-07-13T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260713T0000@contestcal",
      "start_date": "2026-07-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-07-13T17:40:00Z",
      "end": "2026-07-13T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260713T1740@contestcal",
      "start_date": "2026-07-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-15T13:00:00Z",
      "end": "2026-07-15T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260715T1300@contestcal",
      "start_date": "2026-07-15",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-15T19:00:00Z",
      "end": "2026-07-15T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260715T1900@contestcal",
      "start_date": "2026-07-15",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-16T03:00:00Z",
      "end": "2026-07-16T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260716T0300@contestcal",
      "start_date": "2026-07-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-16T07:00:00Z",
      "end": "2026-07-16T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260716T0700@contestcal",
      "start_date": "2026-07-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-07-17T01:00:00Z",
      "end": "2026-07-17T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260717T0100@contestcal",
      "start_date": "2026-07-17",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-07-17T01:45:00Z",
      "end": "2026-07-17T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260717T0145@contestcal",
      "start_date": "2026-07-17",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-07-17T02:30:00Z",
      "end": "2026-07-17T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260717T0230@contestcal",
      "start_date": "2026-07-17",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-07-17T20:00:00Z",
      "end": "2026-07-17T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260717T2000@contestcal",
      "start_date": "2026-07-17",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "naqp-rtty",
      "name": "North American QSO Party, RTTY",
      "start": "2026-07-18T18:00:00Z",
      "end": "2026-07-19T05:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 11.98,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "National Contest Journal (NCJ)",
      "rules_url": "https://www.ncjweb.com/NAQP-Rules.pdf",
      "verified": true,
      "note": "Demonstrates that 'last Saturday' and 'last full weekend' are distinct rules. Same distinction likely resolves the CQ 160 SSB ambiguity.",
      "exchange": "Name + state/province/country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "naqp-rtty-20260718T1800@contestcal",
      "start_date": "2026-07-18",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-07-20T00:00:00Z",
      "end": "2026-07-20T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260720T0000@contestcal",
      "start_date": "2026-07-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-07-20T17:40:00Z",
      "end": "2026-07-20T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260720T1740@contestcal",
      "start_date": "2026-07-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-sks",
      "name": "SKCC Straight Key Sprint (SKS)",
      "start": "2026-07-22T00:00:00Z",
      "end": "2026-07-22T02:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Suggested frequencies, one per band",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekday_sprint/",
      "verified": true,
      "note": "",
      "exchange": "RST + QTH + name + SKCC number",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-sks-20260722T0000@contestcal",
      "start_date": "2026-07-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-22T13:00:00Z",
      "end": "2026-07-22T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260722T1300@contestcal",
      "start_date": "2026-07-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-22T19:00:00Z",
      "end": "2026-07-22T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260722T1900@contestcal",
      "start_date": "2026-07-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-23T03:00:00Z",
      "end": "2026-07-23T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260723T0300@contestcal",
      "start_date": "2026-07-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-23T07:00:00Z",
      "end": "2026-07-23T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260723T0700@contestcal",
      "start_date": "2026-07-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-07-24T01:00:00Z",
      "end": "2026-07-24T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260724T0100@contestcal",
      "start_date": "2026-07-24",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-07-24T01:45:00Z",
      "end": "2026-07-24T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260724T0145@contestcal",
      "start_date": "2026-07-24",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-07-24T02:30:00Z",
      "end": "2026-07-24T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260724T0230@contestcal",
      "start_date": "2026-07-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-07-24T20:00:00Z",
      "end": "2026-07-24T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260724T2000@contestcal",
      "start_date": "2026-07-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "rsgb-iota",
      "name": "RSGB IOTA Contest",
      "start": "2026-07-25T12:00:00Z",
      "end": "2026-07-26T12:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 24,
      "modes": [
        "CW",
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "RSGB Contest Committee",
      "rules_url": "https://www.rsgbcc.org/hf/rules/2026/riota.shtml",
      "verified": true,
      "note": "",
      "exchange": "RST + serial; island stations add IOTA reference",
      "country": "GB",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-07-31T12:00:00Z",
      "uid": "rsgb-iota-20260725T1200@contestcal",
      "start_date": "2026-07-25",
      "mode_families": [
        "CW",
        "SSB"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-07-27T00:00:00Z",
      "end": "2026-07-27T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260727T0000@contestcal",
      "start_date": "2026-07-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-07-27T17:40:00Z",
      "end": "2026-07-27T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260727T1740@contestcal",
      "start_date": "2026-07-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-29T13:00:00Z",
      "end": "2026-07-29T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260729T1300@contestcal",
      "start_date": "2026-07-29",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-29T19:00:00Z",
      "end": "2026-07-29T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260729T1900@contestcal",
      "start_date": "2026-07-29",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-30T03:00:00Z",
      "end": "2026-07-30T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260730T0300@contestcal",
      "start_date": "2026-07-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-07-30T07:00:00Z",
      "end": "2026-07-30T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260730T0700@contestcal",
      "start_date": "2026-07-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-07-31T01:00:00Z",
      "end": "2026-07-31T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260731T0100@contestcal",
      "start_date": "2026-07-31",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-07-31T01:45:00Z",
      "end": "2026-07-31T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260731T0145@contestcal",
      "start_date": "2026-07-31",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-07-31T02:30:00Z",
      "end": "2026-07-31T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260731T0230@contestcal",
      "start_date": "2026-07-31",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-07-31T20:00:00Z",
      "end": "2026-07-31T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260731T2000@contestcal",
      "start_date": "2026-07-31",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "tenten-summer-phone",
      "name": "10-10 International Summer QSO Party (Phone)",
      "start": "2026-08-01T00:01:00Z",
      "end": "2026-08-02T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 47.97,
      "modes": [
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "10m"
      ],
      "bands_note": "",
      "sponsor": "10-10 International Net",
      "rules_url": "https://www.ten-ten.org/index.php/activity/qso-party-rules",
      "verified": true,
      "note": "",
      "exchange": "Call sign + name + 10-10 number + QTH (state, province or country). Record 0 if the other station has no 10-10 number.",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "Anyone may take part, but only members' logs are scored: 'logs will be accepted only from active members as of the date of the event ... Other logs received will be handled as check logs.'",
      "log_due": null,
      "uid": "tenten-summer-phone-20260801T0001@contestcal",
      "start_date": "2026-08-01",
      "mode_families": [
        "SSB"
      ],
      "band_families": [
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "arrl-222-and-up",
      "name": "ARRL 222 MHz and Up Distance Contest",
      "start": "2026-08-01T18:00:00Z",
      "end": "2026-08-02T18:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 24,
      "modes": [
        "Mixed"
      ],
      "submodes": [],
      "bands": [
        "1.25m",
        "70cm",
        "33cm",
        "23cm",
        "13cm",
        "3cm"
      ],
      "bands_note": "222 MHz through 241 GHz",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/222-mhz-and-up-distance-contest",
      "verified": false,
      "note": "Not listed in ARRL generic calendar. Rule inferred from published 2026 dates -- confirm.",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "222 MHz and up. Needs microwave gear and nearby activity.",
      "log_due": null,
      "uid": "arrl-222-and-up-20260801T1800@contestcal",
      "start_date": "2026-08-01",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital",
        "FT8/FT4",
        "Mixed"
      ],
      "band_families": [
        "VHF+"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "naqp-cw",
      "name": "North American QSO Party, CW",
      "start": "2026-08-01T18:00:00Z",
      "end": "2026-08-02T05:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 11.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "National Contest Journal (NCJ)",
      "rules_url": "https://www.ncjweb.com/NAQP-Rules.pdf",
      "verified": true,
      "note": "",
      "exchange": "Name + state/province/country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "naqp-cw-20260801T1800@contestcal",
      "start_date": "2026-08-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "sarl-hf-phone",
      "name": "SARL HF Phone Contest",
      "start": "2026-08-02T14:00:00Z",
      "end": "2026-08-02T17:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3,
      "modes": [
        "SSB"
      ],
      "submodes": [],
      "bands": [],
      "bands_note": "",
      "sponsor": "SARL",
      "rules_url": "https://www.sarl.org.za/",
      "verified": false,
      "note": "UNVERIFIED. sarl.org.za returned 503 during research; on 2026-08-16 its rules page served an expired TLS certificate. Bands are unrecorded for that reason, not because the contest has none. Confirm recurrence and whether DX entries are accepted.",
      "exchange": "",
      "country": "ZS",
      "rules_url_archived": "",
      "rules_url_checked": "",
      "can_enter": false,
      "eligibility_scope": "entity_list",
      "eligibility_reason": "Entry limited to ZS. K stations may be worked but cannot submit an entry.",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "sarl-hf-phone-20260802T1400@contestcal",
      "start_date": "2026-08-02",
      "mode_families": [
        "SSB"
      ],
      "band_families": [],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-08-03T00:00:00Z",
      "end": "2026-08-03T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260803T0000@contestcal",
      "start_date": "2026-08-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-08-03T17:40:00Z",
      "end": "2026-08-03T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260803T1740@contestcal",
      "start_date": "2026-08-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "ars-spartan-sprint",
      "name": "ARS Spartan Sprint",
      "start": "2026-08-04T00:00:00Z",
      "end": "2026-08-04T02:00:00Z",
      "start_wall": "2026-08-03T20:00:00",
      "end_wall": "2026-08-03T22:00:00",
      "local_rolling": false,
      "timezone": "America/New_York",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "Adventure Radio Society",
      "rules_url": "https://ars-qrp.com/Spartan_Sprint/Spartan_Sprint.html",
      "verified": true,
      "note": "CORRECTION (anchor): previously encoded as the first TUESDAY of the month. The sponsor's rule is the first MONDAY US local, which lands on Tuesday UTC -- and those are different dates whenever the 1st falls on a Tuesday (Sep and Dec 2026). SPONSOR-ANCHORED LOCAL TIME: ARS publishes no UTC time and states the event 'is always at these Local Times', so the UTC instant is what moves -- 0100Z Tuesday under EST, 0000Z Tuesday under EDT. Resolved through America/New_York rather than hardcoded, so DST is handled. ARS lists Eastern, Central, Mountain and Pacific times that are the same instant in every zone that observes DST; Arizona, which does not, is the one place the sponsor's own table is inconsistent.",
      "exchange": "RST + state/province + power output",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "ars-spartan-sprint-20260804T0000@contestcal",
      "start_date": "2026-08-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-05T13:00:00Z",
      "end": "2026-08-05T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260805T1300@contestcal",
      "start_date": "2026-08-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-05T19:00:00Z",
      "end": "2026-08-05T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260805T1900@contestcal",
      "start_date": "2026-08-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-06T03:00:00Z",
      "end": "2026-08-06T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260806T0300@contestcal",
      "start_date": "2026-08-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-06T07:00:00Z",
      "end": "2026-08-06T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260806T0700@contestcal",
      "start_date": "2026-08-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-08-07T01:00:00Z",
      "end": "2026-08-07T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260807T0100@contestcal",
      "start_date": "2026-08-07",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-08-07T01:45:00Z",
      "end": "2026-08-07T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260807T0145@contestcal",
      "start_date": "2026-08-07",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-08-07T02:30:00Z",
      "end": "2026-08-07T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260807T0230@contestcal",
      "start_date": "2026-08-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-08-07T20:00:00Z",
      "end": "2026-08-07T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260807T2000@contestcal",
      "start_date": "2026-08-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-wes",
      "name": "SKCC Weekend Sprintathon (WES)",
      "start": "2026-08-08T12:00:00Z",
      "end": "2026-08-09T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 35.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekend_sprintathon/",
      "verified": true,
      "note": "Older sources describe the anchor as 'the Saturday following the 6th', which differs from '2nd Saturday' in some months. SKCC's current page says 2nd Saturday; re-check if dates drift.",
      "exchange": "RST + state/province/country + name + SKCC number (C/T/S suffix for award holders)",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-wes-20260808T1200@contestcal",
      "start_date": "2026-08-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "4sqrp-sss",
      "name": "4 States QRP Group Second Sunday Sprint (SSS)",
      "start": "2026-08-10T00:00:00Z",
      "end": "2026-08-10T02:00:00Z",
      "start_wall": "2026-08-09T19:00:00",
      "end_wall": "2026-08-09T21:00:00",
      "local_rolling": false,
      "timezone": "America/Chicago",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB",
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "4 States QRP Group",
      "rules_url": "https://www.4sqrp.com/SSS/sss_rules_revised_02_2026.pdf",
      "verified": true,
      "note": "SPONSOR-ANCHORED LOCAL TIME. The anchor is the second SUNDAY and the sprint runs into Monday UTC. 4SQRP states the consequence itself: '7 PM until 9 PM central time (CST or CDT, whichever is in effect at the time). If you use UTC, that time changes when we switch from CST to CDT (or vice versa).' Resolved through America/Chicago, so it is 0100Z Monday in winter and 0000Z Monday in summer.",
      "exchange": "RST + state/province/country + 4SQRP member number (power if non-member)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "4sqrp-sss-20260810T0000@contestcal",
      "start_date": "2026-08-10",
      "mode_families": [
        "CW",
        "SSB",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-08-10T00:00:00Z",
      "end": "2026-08-10T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260810T0000@contestcal",
      "start_date": "2026-08-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-08-10T17:40:00Z",
      "end": "2026-08-10T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260810T1740@contestcal",
      "start_date": "2026-08-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-12T13:00:00Z",
      "end": "2026-08-12T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260812T1300@contestcal",
      "start_date": "2026-08-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-12T19:00:00Z",
      "end": "2026-08-12T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260812T1900@contestcal",
      "start_date": "2026-08-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-13T03:00:00Z",
      "end": "2026-08-13T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260813T0300@contestcal",
      "start_date": "2026-08-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-13T07:00:00Z",
      "end": "2026-08-13T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260813T0700@contestcal",
      "start_date": "2026-08-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-08-14T01:00:00Z",
      "end": "2026-08-14T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260814T0100@contestcal",
      "start_date": "2026-08-14",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-08-14T01:45:00Z",
      "end": "2026-08-14T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260814T0145@contestcal",
      "start_date": "2026-08-14",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-08-14T02:30:00Z",
      "end": "2026-08-14T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260814T0230@contestcal",
      "start_date": "2026-08-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-08-14T20:00:00Z",
      "end": "2026-08-14T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260814T2000@contestcal",
      "start_date": "2026-08-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "sartg-ww-rtty",
      "name": "SARTG WW RTTY Contest",
      "start": "2026-08-15T00:00:00Z",
      "end": "2026-08-15T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 8,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "SARTG (Scandinavian Amateur Radio Teleprinter Group)",
      "rules_url": "https://www.sartg.com/contest/wwrules.htm",
      "verified": true,
      "note": "Three separate eight-hour periods with gaps between them, not one continuous 48-hour run -- encoded as three sessions off the Saturday anchor. SARTG's own '15 - 16 August 2026' is the independent check on the third-full-weekend rule.",
      "exchange": "RST + QSO number starting with 001",
      "country": "SE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "sartg-ww-rtty-20260815T0000@contestcal",
      "start_date": "2026-08-15",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "arrl-10ghz-leg1",
      "name": "ARRL 10 GHz and Up Contest, Round 1",
      "start": "2026-08-15T09:00:00Z",
      "end": "2026-08-17T07:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 46.98,
      "modes": [
        "Mixed"
      ],
      "submodes": [],
      "bands": [
        "3cm"
      ],
      "bands_note": "10 GHz through light",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/10-ghz-up",
      "verified": true,
      "note": "CORRECTION: this was stored as a local-time contest running 0600 local Saturday to 2359 local Sunday. ARRL has since moved it to fixed UTC and says so explicitly in the rules. It is now a plain UTC record -- 0900Z Saturday to 0759Z Monday -- and carries no timezone or local_rolling flag. Operating time is capped at 42 hours inside that 47-hour window. Log deadline is stated once for the whole contest -- 'no later than THIRTY (30) days after the second weekend' -- so it is recorded on Round 2 only; counting 30 days from Round 1's own end would be wrong.",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "10 GHz+ microwave, rover-oriented. Very small participant pool.",
      "log_due": null,
      "uid": "arrl-10ghz-leg1-20260815T0900@contestcal",
      "start_date": "2026-08-15",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital",
        "FT8/FT4",
        "Mixed"
      ],
      "band_families": [
        "VHF+"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "sartg-ww-rtty",
      "name": "SARTG WW RTTY Contest",
      "start": "2026-08-15T16:00:00Z",
      "end": "2026-08-16T00:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 8,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "SARTG (Scandinavian Amateur Radio Teleprinter Group)",
      "rules_url": "https://www.sartg.com/contest/wwrules.htm",
      "verified": true,
      "note": "Three separate eight-hour periods with gaps between them, not one continuous 48-hour run -- encoded as three sessions off the Saturday anchor. SARTG's own '15 - 16 August 2026' is the independent check on the third-full-weekend rule.",
      "exchange": "RST + QSO number starting with 001",
      "country": "SE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "sartg-ww-rtty-20260815T1600@contestcal",
      "start_date": "2026-08-15",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "naqp-ssb",
      "name": "North American QSO Party, SSB",
      "start": "2026-08-15T18:00:00Z",
      "end": "2026-08-16T05:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 11.98,
      "modes": [
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "National Contest Journal (NCJ)",
      "rules_url": "https://www.ncjweb.com/NAQP-Rules.pdf",
      "verified": true,
      "note": "",
      "exchange": "Name + state/province/country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "naqp-ssb-20260815T1800@contestcal",
      "start_date": "2026-08-15",
      "mode_families": [
        "SSB"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "sartg-ww-rtty",
      "name": "SARTG WW RTTY Contest",
      "start": "2026-08-16T08:00:00Z",
      "end": "2026-08-16T16:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 8,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "SARTG (Scandinavian Amateur Radio Teleprinter Group)",
      "rules_url": "https://www.sartg.com/contest/wwrules.htm",
      "verified": true,
      "note": "Three separate eight-hour periods with gaps between them, not one continuous 48-hour run -- encoded as three sessions off the Saturday anchor. SARTG's own '15 - 16 August 2026' is the independent check on the third-full-weekend rule.",
      "exchange": "RST + QSO number starting with 001",
      "country": "SE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "sartg-ww-rtty-20260816T0800@contestcal",
      "start_date": "2026-08-16",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "arrl-rookie-roundup-rtty",
      "name": "ARRL Rookie Roundup, RTTY",
      "start": "2026-08-16T18:00:00Z",
      "end": "2026-08-16T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 5.98,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/rookie-roundup",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "entity_list",
      "eligibility_reason": "Entry limited to K, VE, XE -- includes K.",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-rookie-roundup-rtty-20260816T1800@contestcal",
      "start_date": "2026-08-16",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-08-17T00:00:00Z",
      "end": "2026-08-17T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260817T0000@contestcal",
      "start_date": "2026-08-17",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-08-17T17:40:00Z",
      "end": "2026-08-17T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260817T1740@contestcal",
      "start_date": "2026-08-17",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-19T13:00:00Z",
      "end": "2026-08-19T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260819T1300@contestcal",
      "start_date": "2026-08-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-19T19:00:00Z",
      "end": "2026-08-19T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260819T1900@contestcal",
      "start_date": "2026-08-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-20T03:00:00Z",
      "end": "2026-08-20T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260820T0300@contestcal",
      "start_date": "2026-08-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-20T07:00:00Z",
      "end": "2026-08-20T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260820T0700@contestcal",
      "start_date": "2026-08-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-08-21T01:00:00Z",
      "end": "2026-08-21T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260821T0100@contestcal",
      "start_date": "2026-08-21",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-08-21T01:45:00Z",
      "end": "2026-08-21T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260821T0145@contestcal",
      "start_date": "2026-08-21",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-08-21T02:30:00Z",
      "end": "2026-08-21T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260821T0230@contestcal",
      "start_date": "2026-08-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-08-21T20:00:00Z",
      "end": "2026-08-21T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260821T2000@contestcal",
      "start_date": "2026-08-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-08-24T00:00:00Z",
      "end": "2026-08-24T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260824T0000@contestcal",
      "start_date": "2026-08-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-08-24T17:40:00Z",
      "end": "2026-08-24T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260824T1740@contestcal",
      "start_date": "2026-08-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-sks",
      "name": "SKCC Straight Key Sprint (SKS)",
      "start": "2026-08-26T00:00:00Z",
      "end": "2026-08-26T02:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Suggested frequencies, one per band",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekday_sprint/",
      "verified": true,
      "note": "",
      "exchange": "RST + QTH + name + SKCC number",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-sks-20260826T0000@contestcal",
      "start_date": "2026-08-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-26T13:00:00Z",
      "end": "2026-08-26T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260826T1300@contestcal",
      "start_date": "2026-08-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-26T19:00:00Z",
      "end": "2026-08-26T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260826T1900@contestcal",
      "start_date": "2026-08-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-27T03:00:00Z",
      "end": "2026-08-27T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260827T0300@contestcal",
      "start_date": "2026-08-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-08-27T07:00:00Z",
      "end": "2026-08-27T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260827T0700@contestcal",
      "start_date": "2026-08-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-08-28T01:00:00Z",
      "end": "2026-08-28T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260828T0100@contestcal",
      "start_date": "2026-08-28",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-08-28T01:45:00Z",
      "end": "2026-08-28T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260828T0145@contestcal",
      "start_date": "2026-08-28",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-08-28T02:30:00Z",
      "end": "2026-08-28T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260828T0230@contestcal",
      "start_date": "2026-08-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-08-28T20:00:00Z",
      "end": "2026-08-28T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260828T2000@contestcal",
      "start_date": "2026-08-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-08-31T00:00:00Z",
      "end": "2026-08-31T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260831T0000@contestcal",
      "start_date": "2026-08-31",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-08-31T17:40:00Z",
      "end": "2026-08-31T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260831T1740@contestcal",
      "start_date": "2026-08-31",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-02T13:00:00Z",
      "end": "2026-09-02T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260902T1300@contestcal",
      "start_date": "2026-09-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-02T19:00:00Z",
      "end": "2026-09-02T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260902T1900@contestcal",
      "start_date": "2026-09-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-03T03:00:00Z",
      "end": "2026-09-03T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260903T0300@contestcal",
      "start_date": "2026-09-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-03T07:00:00Z",
      "end": "2026-09-03T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260903T0700@contestcal",
      "start_date": "2026-09-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-09-04T01:00:00Z",
      "end": "2026-09-04T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260904T0100@contestcal",
      "start_date": "2026-09-04",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-09-04T01:45:00Z",
      "end": "2026-09-04T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260904T0145@contestcal",
      "start_date": "2026-09-04",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-09-04T02:30:00Z",
      "end": "2026-09-04T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260904T0230@contestcal",
      "start_date": "2026-09-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-09-04T20:00:00Z",
      "end": "2026-09-04T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260904T2000@contestcal",
      "start_date": "2026-09-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-htp-40m",
      "name": "AGCW Handtastenparty 40m (HTP)",
      "start": "2026-09-05T13:00:00Z",
      "end": "2026-09-05T16:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "40m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/htp/",
      "verified": true,
      "note": "",
      "exchange": "RST + running 3-digit QSO number from 001 + class + name + age",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-htp-40m-20260905T1300@contestcal",
      "start_date": "2026-09-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "40m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "podxs-jay-hudak-80m",
      "name": "PODXS 070 Club Jay Hudak Memorial 80M Sprint",
      "start": "2026-09-05T20:00:00Z",
      "end": "2026-09-06T19:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 23.98,
      "modes": [
        "Digital"
      ],
      "submodes": [
        "PSK31"
      ],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "PODXS 070 Club",
      "rules_url": "https://www.podxs070.com/o7o-club-sponsored-contests/jay-hudak-memorial-80m-sprint",
      "verified": true,
      "note": "Six-hour operating limit inside a 24-hour window. Dedicated to Jay Hudak KA3X, 070 #001.",
      "exchange": "State/province/country (SPC)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-09-13T19:59:00Z",
      "uid": "podxs-jay-hudak-80m-20260905T2000@contestcal",
      "start_date": "2026-09-05",
      "mode_families": [
        "Digital"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "12-24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-09-07T00:00:00Z",
      "end": "2026-09-07T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260907T0000@contestcal",
      "start_date": "2026-09-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-09-07T17:40:00Z",
      "end": "2026-09-07T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260907T1740@contestcal",
      "start_date": "2026-09-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "ars-spartan-sprint",
      "name": "ARS Spartan Sprint",
      "start": "2026-09-08T00:00:00Z",
      "end": "2026-09-08T02:00:00Z",
      "start_wall": "2026-09-07T20:00:00",
      "end_wall": "2026-09-07T22:00:00",
      "local_rolling": false,
      "timezone": "America/New_York",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "Adventure Radio Society",
      "rules_url": "https://ars-qrp.com/Spartan_Sprint/Spartan_Sprint.html",
      "verified": true,
      "note": "CORRECTION (anchor): previously encoded as the first TUESDAY of the month. The sponsor's rule is the first MONDAY US local, which lands on Tuesday UTC -- and those are different dates whenever the 1st falls on a Tuesday (Sep and Dec 2026). SPONSOR-ANCHORED LOCAL TIME: ARS publishes no UTC time and states the event 'is always at these Local Times', so the UTC instant is what moves -- 0100Z Tuesday under EST, 0000Z Tuesday under EDT. Resolved through America/New_York rather than hardcoded, so DST is handled. ARS lists Eastern, Central, Mountain and Pacific times that are the same instant in every zone that observes DST; Arizona, which does not, is the one place the sponsor's own table is inconsistent.",
      "exchange": "RST + state/province + power output",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "ars-spartan-sprint-20260908T0000@contestcal",
      "start_date": "2026-09-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-09T13:00:00Z",
      "end": "2026-09-09T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260909T1300@contestcal",
      "start_date": "2026-09-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-09T19:00:00Z",
      "end": "2026-09-09T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260909T1900@contestcal",
      "start_date": "2026-09-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-10T03:00:00Z",
      "end": "2026-09-10T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260910T0300@contestcal",
      "start_date": "2026-09-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-10T07:00:00Z",
      "end": "2026-09-10T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260910T0700@contestcal",
      "start_date": "2026-09-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-09-11T01:00:00Z",
      "end": "2026-09-11T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260911T0100@contestcal",
      "start_date": "2026-09-11",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-09-11T01:45:00Z",
      "end": "2026-09-11T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260911T0145@contestcal",
      "start_date": "2026-09-11",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-09-11T02:30:00Z",
      "end": "2026-09-11T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260911T0230@contestcal",
      "start_date": "2026-09-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-09-11T20:00:00Z",
      "end": "2026-09-11T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260911T2000@contestcal",
      "start_date": "2026-09-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-wes",
      "name": "SKCC Weekend Sprintathon (WES)",
      "start": "2026-09-12T12:00:00Z",
      "end": "2026-09-13T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 35.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekend_sprintathon/",
      "verified": true,
      "note": "Older sources describe the anchor as 'the Saturday following the 6th', which differs from '2nd Saturday' in some months. SKCC's current page says 2nd Saturday; re-check if dates drift.",
      "exchange": "RST + state/province/country + name + SKCC number (C/T/S suffix for award holders)",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-wes-20260912T1200@contestcal",
      "start_date": "2026-09-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "arrl-september-vhf",
      "name": "ARRL September VHF Contest",
      "start": "2026-09-12T18:00:00Z",
      "end": "2026-09-14T02:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 32.98,
      "modes": [
        "Mixed"
      ],
      "submodes": [],
      "bands": [
        "6m",
        "2m",
        "1.25m",
        "70cm",
        "33cm",
        "23cm",
        "13cm",
        "3cm"
      ],
      "bands_note": "All authorized frequencies above 50 MHz",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/september-vhf",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "VHF+ contest.",
      "log_due": null,
      "uid": "arrl-september-vhf-20260912T1800@contestcal",
      "start_date": "2026-09-12",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital",
        "FT8/FT4",
        "Mixed"
      ],
      "band_families": [
        "6m",
        "VHF+"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "ncj-sprint-cw",
      "name": "North American Sprint, CW",
      "start": "2026-09-13T00:00:00Z",
      "end": "2026-09-13T03:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m"
      ],
      "bands_note": "",
      "sponsor": "National Contest Journal (NCJ)",
      "rules_url": "https://www.ncjweb.com/Sprint-Rules.pdf",
      "verified": true,
      "note": "Encoded as 'manual' deliberately. NCJ publishes explicit dates per year and flagged 2026 September with 'NOTE CW DATE SHIFT', so there is no stable derivable recurrence to encode. 2026 happens to land on the 2nd Sunday of February and the 2nd Sunday of September, but that pattern is NOT a rule NCJ states -- re-read the rules PDF each year.",
      "exchange": "Other station's call + your call + serial number + name + state/province/country ('DX' outside North America)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-09-20T03:59:00Z",
      "uid": "ncj-sprint-cw-20260913T0000@contestcal",
      "start_date": "2026-09-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "4sqrp-sss",
      "name": "4 States QRP Group Second Sunday Sprint (SSS)",
      "start": "2026-09-14T00:00:00Z",
      "end": "2026-09-14T02:00:00Z",
      "start_wall": "2026-09-13T19:00:00",
      "end_wall": "2026-09-13T21:00:00",
      "local_rolling": false,
      "timezone": "America/Chicago",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB",
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "4 States QRP Group",
      "rules_url": "https://www.4sqrp.com/SSS/sss_rules_revised_02_2026.pdf",
      "verified": true,
      "note": "SPONSOR-ANCHORED LOCAL TIME. The anchor is the second SUNDAY and the sprint runs into Monday UTC. 4SQRP states the consequence itself: '7 PM until 9 PM central time (CST or CDT, whichever is in effect at the time). If you use UTC, that time changes when we switch from CST to CDT (or vice versa).' Resolved through America/Chicago, so it is 0100Z Monday in winter and 0000Z Monday in summer.",
      "exchange": "RST + state/province/country + 4SQRP member number (power if non-member)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "4sqrp-sss-20260914T0000@contestcal",
      "start_date": "2026-09-14",
      "mode_families": [
        "CW",
        "SSB",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-09-14T00:00:00Z",
      "end": "2026-09-14T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260914T0000@contestcal",
      "start_date": "2026-09-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-09-14T17:40:00Z",
      "end": "2026-09-14T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260914T1740@contestcal",
      "start_date": "2026-09-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-16T13:00:00Z",
      "end": "2026-09-16T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260916T1300@contestcal",
      "start_date": "2026-09-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-16T19:00:00Z",
      "end": "2026-09-16T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260916T1900@contestcal",
      "start_date": "2026-09-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-17T03:00:00Z",
      "end": "2026-09-17T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260917T0300@contestcal",
      "start_date": "2026-09-17",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-17T07:00:00Z",
      "end": "2026-09-17T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260917T0700@contestcal",
      "start_date": "2026-09-17",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-09-18T01:00:00Z",
      "end": "2026-09-18T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260918T0100@contestcal",
      "start_date": "2026-09-18",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-09-18T01:45:00Z",
      "end": "2026-09-18T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260918T0145@contestcal",
      "start_date": "2026-09-18",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-09-18T02:30:00Z",
      "end": "2026-09-18T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260918T0230@contestcal",
      "start_date": "2026-09-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-09-18T20:00:00Z",
      "end": "2026-09-18T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260918T2000@contestcal",
      "start_date": "2026-09-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-10ghz-leg2",
      "name": "ARRL 10 GHz and Up Contest, Round 2",
      "start": "2026-09-19T09:00:00Z",
      "end": "2026-09-21T07:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 46.98,
      "modes": [
        "Mixed"
      ],
      "submodes": [],
      "bands": [
        "3cm"
      ],
      "bands_note": "10 GHz through light",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/10-ghz-up",
      "verified": true,
      "note": "CORRECTION: this was stored as a local-time contest running 0600 local Saturday to 2359 local Sunday. ARRL has since moved it to fixed UTC and says so explicitly in the rules. It is now a plain UTC record -- 0900Z Saturday to 0759Z Monday -- and carries no timezone or local_rolling flag. Operating time is capped at 42 hours inside that 47-hour window. Also resolves the suspected typo flagged earlier: ARRL's rule reads 'Third full weekend of August AND SEPTEMBER', so a single rule covers both rounds and the September anchor was right all along.",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "10 GHz+ microwave, rover-oriented. Very small participant pool.",
      "log_due": "2026-10-21T07:59:00Z",
      "uid": "arrl-10ghz-leg2-20260919T0900@contestcal",
      "start_date": "2026-09-19",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital",
        "FT8/FT4",
        "Mixed"
      ],
      "band_families": [
        "VHF+"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "ncj-sprint-rtty",
      "name": "North American Sprint, RTTY",
      "start": "2026-09-20T00:00:00Z",
      "end": "2026-09-20T03:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3.98,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m"
      ],
      "bands_note": "",
      "sponsor": "National Contest Journal (NCJ)",
      "rules_url": "https://www.ncjweb.com/Sprint-Rules.pdf",
      "verified": true,
      "note": "Same 'manual' reasoning as the CW Sprint -- NCJ states dates, not a recurrence rule.",
      "exchange": "Other station's call + your call + serial number + name + state/province/country ('DX' outside North America)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-09-27T03:59:00Z",
      "uid": "ncj-sprint-rtty-20260920T0000@contestcal",
      "start_date": "2026-09-20",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "bartg-sprint-psk63",
      "name": "BARTG Sprint PSK63 Contest",
      "start": "2026-09-20T17:00:00Z",
      "end": "2026-09-20T20:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3.98,
      "modes": [
        "Digital"
      ],
      "submodes": [
        "PSK63"
      ],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "BARTG",
      "rules_url": "https://bartg.org.uk/bartg-sprint-psk63-contest/",
      "verified": true,
      "note": "",
      "exchange": "Message number only (3 or 4 figures from 001)",
      "country": "GB",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-09-27T20:59:00Z",
      "uid": "bartg-sprint-psk63-20260920T1700@contestcal",
      "start_date": "2026-09-20",
      "mode_families": [
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-09-21T00:00:00Z",
      "end": "2026-09-21T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260921T0000@contestcal",
      "start_date": "2026-09-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-09-21T17:40:00Z",
      "end": "2026-09-21T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260921T1740@contestcal",
      "start_date": "2026-09-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-sks",
      "name": "SKCC Straight Key Sprint (SKS)",
      "start": "2026-09-23T00:00:00Z",
      "end": "2026-09-23T02:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Suggested frequencies, one per band",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekday_sprint/",
      "verified": true,
      "note": "",
      "exchange": "RST + QTH + name + SKCC number",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-sks-20260923T0000@contestcal",
      "start_date": "2026-09-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-23T13:00:00Z",
      "end": "2026-09-23T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260923T1300@contestcal",
      "start_date": "2026-09-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-23T19:00:00Z",
      "end": "2026-09-23T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260923T1900@contestcal",
      "start_date": "2026-09-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-24T03:00:00Z",
      "end": "2026-09-24T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260924T0300@contestcal",
      "start_date": "2026-09-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-24T07:00:00Z",
      "end": "2026-09-24T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260924T0700@contestcal",
      "start_date": "2026-09-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-09-25T01:00:00Z",
      "end": "2026-09-25T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20260925T0100@contestcal",
      "start_date": "2026-09-25",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-09-25T01:45:00Z",
      "end": "2026-09-25T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20260925T0145@contestcal",
      "start_date": "2026-09-25",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-09-25T02:30:00Z",
      "end": "2026-09-25T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20260925T0230@contestcal",
      "start_date": "2026-09-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-09-25T20:00:00Z",
      "end": "2026-09-25T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260925T2000@contestcal",
      "start_date": "2026-09-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cq-ww-rtty",
      "name": "CQ Worldwide DX Contest, RTTY",
      "start": "2026-09-26T00:00:00Z",
      "end": "2026-09-27T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 47.98,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "Five bands only: 3.5, 7, 14, 21 and 28 MHz",
      "sponsor": "CQ Magazine",
      "rules_url": "https://www.cqwwrtty.com/rules.htm",
      "verified": false,
      "note": "CONFIRM against sponsor rules before publishing.",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cq-ww-rtty-20260926T0000@contestcal",
      "start_date": "2026-09-26",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "agcw-vhf-uhf",
      "name": "AGCW VHF/UHF Contest",
      "start": "2026-09-26T14:00:00Z",
      "end": "2026-09-26T17:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "2m",
        "70cm"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/vhf-uhf/",
      "verified": true,
      "note": "Four dates a year, each with two back-to-back sessions on different bands: the first session is 2 m only, the second 70 cm only. Encoded as two sessions off one anchor, so eight occurrences a year. The per-session band split is not expressible in the current schema -- both bands are listed at contest level.",
      "exchange": "RST + running number + locator",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-vhf-uhf-20260926T1400@contestcal",
      "start_date": "2026-09-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "VHF+"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "agcw-vhf-uhf",
      "name": "AGCW VHF/UHF Contest",
      "start": "2026-09-26T17:00:00Z",
      "end": "2026-09-26T18:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "2m",
        "70cm"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/vhf-uhf/",
      "verified": true,
      "note": "Four dates a year, each with two back-to-back sessions on different bands: the first session is 2 m only, the second 70 cm only. Encoded as two sessions off one anchor, so eight occurrences a year. The per-session band split is not expressible in the current schema -- both bands are listed at contest level.",
      "exchange": "RST + running number + locator",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-vhf-uhf-20260926T1700@contestcal",
      "start_date": "2026-09-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "VHF+"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-09-28T00:00:00Z",
      "end": "2026-09-28T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20260928T0000@contestcal",
      "start_date": "2026-09-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-09-28T17:40:00Z",
      "end": "2026-09-28T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20260928T1740@contestcal",
      "start_date": "2026-09-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-30T13:00:00Z",
      "end": "2026-09-30T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260930T1300@contestcal",
      "start_date": "2026-09-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-09-30T19:00:00Z",
      "end": "2026-09-30T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20260930T1900@contestcal",
      "start_date": "2026-09-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-01T03:00:00Z",
      "end": "2026-10-01T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261001T0300@contestcal",
      "start_date": "2026-10-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-01T07:00:00Z",
      "end": "2026-10-01T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261001T0700@contestcal",
      "start_date": "2026-10-01",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-10-02T01:00:00Z",
      "end": "2026-10-02T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261002T0100@contestcal",
      "start_date": "2026-10-02",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-10-02T01:45:00Z",
      "end": "2026-10-02T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261002T0145@contestcal",
      "start_date": "2026-10-02",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-10-02T02:30:00Z",
      "end": "2026-10-02T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261002T0230@contestcal",
      "start_date": "2026-10-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-10-02T20:00:00Z",
      "end": "2026-10-02T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261002T2000@contestcal",
      "start_date": "2026-10-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-dtc",
      "name": "Deutscher Telegrafie Contest (DTC)",
      "start": "2026-10-03T07:00:00Z",
      "end": "2026-10-03T10:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 3,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL / High Speed Club (HSC)",
      "rules_url": "https://www.agcw.de/contest/dtc/",
      "verified": true,
      "note": "Anchored on German Unity Day, a fixed calendar date, so it moves through the week rather than sitting on a weekend. 'Seit einigen Jahren' -- for some years now -- is AGCW hedging its own history, not the current rule.",
      "exchange": "German stations: RST + LDK (district vehicle registration code). All others: RST only.",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "Every QSO must involve a German station: 'Mindestens eine der an einem QSO beteiligten Stationen muss sich in Deutschland befinden.' Non-DL entrants can therefore work only DL stations.",
      "log_due": null,
      "uid": "agcw-dtc-20261003T0700@contestcal",
      "start_date": "2026-10-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-10-05T00:00:00Z",
      "end": "2026-10-05T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261005T0000@contestcal",
      "start_date": "2026-10-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-10-05T17:40:00Z",
      "end": "2026-10-05T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261005T1740@contestcal",
      "start_date": "2026-10-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "ars-spartan-sprint",
      "name": "ARS Spartan Sprint",
      "start": "2026-10-06T00:00:00Z",
      "end": "2026-10-06T02:00:00Z",
      "start_wall": "2026-10-05T20:00:00",
      "end_wall": "2026-10-05T22:00:00",
      "local_rolling": false,
      "timezone": "America/New_York",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "Adventure Radio Society",
      "rules_url": "https://ars-qrp.com/Spartan_Sprint/Spartan_Sprint.html",
      "verified": true,
      "note": "CORRECTION (anchor): previously encoded as the first TUESDAY of the month. The sponsor's rule is the first MONDAY US local, which lands on Tuesday UTC -- and those are different dates whenever the 1st falls on a Tuesday (Sep and Dec 2026). SPONSOR-ANCHORED LOCAL TIME: ARS publishes no UTC time and states the event 'is always at these Local Times', so the UTC instant is what moves -- 0100Z Tuesday under EST, 0000Z Tuesday under EDT. Resolved through America/New_York rather than hardcoded, so DST is handled. ARS lists Eastern, Central, Mountain and Pacific times that are the same instant in every zone that observes DST; Arizona, which does not, is the one place the sponsor's own table is inconsistent.",
      "exchange": "RST + state/province + power output",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "ars-spartan-sprint-20261006T0000@contestcal",
      "start_date": "2026-10-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-07T13:00:00Z",
      "end": "2026-10-07T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261007T1300@contestcal",
      "start_date": "2026-10-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-07T19:00:00Z",
      "end": "2026-10-07T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261007T1900@contestcal",
      "start_date": "2026-10-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-08T03:00:00Z",
      "end": "2026-10-08T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261008T0300@contestcal",
      "start_date": "2026-10-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-08T07:00:00Z",
      "end": "2026-10-08T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261008T0700@contestcal",
      "start_date": "2026-10-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-10-09T01:00:00Z",
      "end": "2026-10-09T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261009T0100@contestcal",
      "start_date": "2026-10-09",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-10-09T01:45:00Z",
      "end": "2026-10-09T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261009T0145@contestcal",
      "start_date": "2026-10-09",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-10-09T02:30:00Z",
      "end": "2026-10-09T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261009T0230@contestcal",
      "start_date": "2026-10-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-10-09T20:00:00Z",
      "end": "2026-10-09T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261009T2000@contestcal",
      "start_date": "2026-10-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "tenten-day-sprint",
      "name": "10-10 International 10-10 Day Sprint",
      "start": "2026-10-10T00:01:00Z",
      "end": "2026-10-10T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 23.97,
      "modes": [
        "SSB",
        "CW",
        "Digital",
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "10m"
      ],
      "bands_note": "",
      "sponsor": "10-10 International Net",
      "rules_url": "https://www.ten-ten.org/index.php/activity/qso-party-rules",
      "verified": true,
      "note": "All modes, unlike the two phone-only QSO Parties. Chapter scores may not be assigned for the Sprint.",
      "exchange": "Call sign + name + 10-10 number + QTH (state, province or country). Record 0 if the other station has no 10-10 number.",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "Anyone may take part, but only members' logs are scored: 'logs will be accepted only from active members as of the date of the event ... Other logs received will be handled as check logs.'",
      "log_due": null,
      "uid": "tenten-day-sprint-20261010T0001@contestcal",
      "start_date": "2026-10-10",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "10m"
      ],
      "duration_bucket": "12-24"
    },
    {
      "contest_id": "skcc-wes",
      "name": "SKCC Weekend Sprintathon (WES)",
      "start": "2026-10-10T12:00:00Z",
      "end": "2026-10-11T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 35.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekend_sprintathon/",
      "verified": true,
      "note": "Older sources describe the anchor as 'the Saturday following the 6th', which differs from '2nd Saturday' in some months. SKCC's current page says 2nd Saturday; re-check if dates drift.",
      "exchange": "RST + state/province/country + name + SKCC number (C/T/S suffix for award holders)",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-wes-20261010T1200@contestcal",
      "start_date": "2026-10-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "podxs-160m-great-pumpkin",
      "name": "PODXS 070 Club 160M Great Pumpkin Sprint",
      "start": "2026-10-10T20:00:00Z",
      "end": "2026-10-11T19:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 23.98,
      "modes": [
        "Digital"
      ],
      "submodes": [
        "PSK31"
      ],
      "bands": [
        "160m"
      ],
      "bands_note": "",
      "sponsor": "PODXS 070 Club",
      "rules_url": "https://www.podxs070.com/o7o-club-sponsored-contests/160m-great-pumpkin-sprint",
      "verified": true,
      "note": "The rules page writes the close as '2000 UTC' while the club's contest calendar gives 'Ends 1959 UTC 11-Oct-2026'. Encoded as 1959, matching the calendar and the identical wording used for the 40 m and 80 m sprints. One minute; flagged rather than silently reconciled.",
      "exchange": "State/province/country (SPC)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-10-18T19:59:00Z",
      "uid": "podxs-160m-great-pumpkin-20261010T2000@contestcal",
      "start_date": "2026-10-10",
      "mode_families": [
        "Digital"
      ],
      "band_families": [
        "160m"
      ],
      "duration_bucket": "12-24"
    },
    {
      "contest_id": "4sqrp-sss",
      "name": "4 States QRP Group Second Sunday Sprint (SSS)",
      "start": "2026-10-12T00:00:00Z",
      "end": "2026-10-12T02:00:00Z",
      "start_wall": "2026-10-11T19:00:00",
      "end_wall": "2026-10-11T21:00:00",
      "local_rolling": false,
      "timezone": "America/Chicago",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB",
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "4 States QRP Group",
      "rules_url": "https://www.4sqrp.com/SSS/sss_rules_revised_02_2026.pdf",
      "verified": true,
      "note": "SPONSOR-ANCHORED LOCAL TIME. The anchor is the second SUNDAY and the sprint runs into Monday UTC. 4SQRP states the consequence itself: '7 PM until 9 PM central time (CST or CDT, whichever is in effect at the time). If you use UTC, that time changes when we switch from CST to CDT (or vice versa).' Resolved through America/Chicago, so it is 0100Z Monday in winter and 0000Z Monday in summer.",
      "exchange": "RST + state/province/country + 4SQRP member number (power if non-member)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "4sqrp-sss-20261012T0000@contestcal",
      "start_date": "2026-10-12",
      "mode_families": [
        "CW",
        "SSB",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-10-12T00:00:00Z",
      "end": "2026-10-12T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261012T0000@contestcal",
      "start_date": "2026-10-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-10-12T17:40:00Z",
      "end": "2026-10-12T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261012T1740@contestcal",
      "start_date": "2026-10-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-14T13:00:00Z",
      "end": "2026-10-14T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261014T1300@contestcal",
      "start_date": "2026-10-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-14T19:00:00Z",
      "end": "2026-10-14T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261014T1900@contestcal",
      "start_date": "2026-10-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-15T03:00:00Z",
      "end": "2026-10-15T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261015T0300@contestcal",
      "start_date": "2026-10-15",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-15T07:00:00Z",
      "end": "2026-10-15T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261015T0700@contestcal",
      "start_date": "2026-10-15",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-10-16T01:00:00Z",
      "end": "2026-10-16T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261016T0100@contestcal",
      "start_date": "2026-10-16",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-10-16T01:45:00Z",
      "end": "2026-10-16T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261016T0145@contestcal",
      "start_date": "2026-10-16",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-10-16T02:30:00Z",
      "end": "2026-10-16T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261016T0230@contestcal",
      "start_date": "2026-10-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-10-16T20:00:00Z",
      "end": "2026-10-16T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261016T2000@contestcal",
      "start_date": "2026-10-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-10-19T00:00:00Z",
      "end": "2026-10-19T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261019T0000@contestcal",
      "start_date": "2026-10-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-10-19T17:40:00Z",
      "end": "2026-10-19T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261019T1740@contestcal",
      "start_date": "2026-10-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-21T13:00:00Z",
      "end": "2026-10-21T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261021T1300@contestcal",
      "start_date": "2026-10-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-sta",
      "name": "AGCW Schlackertastenabend (STA)",
      "start": "2026-10-21T19:00:00Z",
      "end": "2026-10-21T20:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/sta/",
      "verified": true,
      "note": "AGCW's own 'nächster Termin: 21. Okt. 2026' is the independent check on the October leg -- the third Wednesday of October 2026 is indeed the 21st.",
      "exchange": "RST + running QSO number from 001 per year + type of bug used",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-sta-20261021T1900@contestcal",
      "start_date": "2026-10-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-21T19:00:00Z",
      "end": "2026-10-21T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261021T1900@contestcal",
      "start_date": "2026-10-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-22T03:00:00Z",
      "end": "2026-10-22T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261022T0300@contestcal",
      "start_date": "2026-10-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-22T07:00:00Z",
      "end": "2026-10-22T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261022T0700@contestcal",
      "start_date": "2026-10-22",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-10-23T01:00:00Z",
      "end": "2026-10-23T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261023T0100@contestcal",
      "start_date": "2026-10-23",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-10-23T01:45:00Z",
      "end": "2026-10-23T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261023T0145@contestcal",
      "start_date": "2026-10-23",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-10-23T02:30:00Z",
      "end": "2026-10-23T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261023T0230@contestcal",
      "start_date": "2026-10-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-10-23T20:00:00Z",
      "end": "2026-10-23T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261023T2000@contestcal",
      "start_date": "2026-10-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cq-ww-ssb",
      "name": "CQ Worldwide DX Contest, SSB",
      "start": "2026-10-24T00:00:00Z",
      "end": "2026-10-25T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 47.98,
      "modes": [
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "Six bands only: 1.8, 3.5, 7, 14, 21 and 28 MHz",
      "sponsor": "CQ Magazine",
      "rules_url": "https://www.cqww.com/rules.htm",
      "verified": false,
      "note": "CONFIRM against sponsor rules before publishing.",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cq-ww-ssb-20261024T0000@contestcal",
      "start_date": "2026-10-24",
      "mode_families": [
        "SSB"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-10-26T00:00:00Z",
      "end": "2026-10-26T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261026T0000@contestcal",
      "start_date": "2026-10-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-10-26T17:40:00Z",
      "end": "2026-10-26T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261026T1740@contestcal",
      "start_date": "2026-10-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-sks",
      "name": "SKCC Straight Key Sprint (SKS)",
      "start": "2026-10-28T00:00:00Z",
      "end": "2026-10-28T02:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Suggested frequencies, one per band",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekday_sprint/",
      "verified": true,
      "note": "",
      "exchange": "RST + QTH + name + SKCC number",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-sks-20261028T0000@contestcal",
      "start_date": "2026-10-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-28T13:00:00Z",
      "end": "2026-10-28T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261028T1300@contestcal",
      "start_date": "2026-10-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-28T19:00:00Z",
      "end": "2026-10-28T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261028T1900@contestcal",
      "start_date": "2026-10-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-29T03:00:00Z",
      "end": "2026-10-29T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261029T0300@contestcal",
      "start_date": "2026-10-29",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-10-29T07:00:00Z",
      "end": "2026-10-29T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261029T0700@contestcal",
      "start_date": "2026-10-29",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-10-30T01:00:00Z",
      "end": "2026-10-30T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261030T0100@contestcal",
      "start_date": "2026-10-30",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-10-30T01:45:00Z",
      "end": "2026-10-30T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261030T0145@contestcal",
      "start_date": "2026-10-30",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-10-30T02:30:00Z",
      "end": "2026-10-30T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261030T0230@contestcal",
      "start_date": "2026-10-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-10-30T20:00:00Z",
      "end": "2026-10-30T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261030T2000@contestcal",
      "start_date": "2026-10-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-11-02T00:00:00Z",
      "end": "2026-11-02T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261102T0000@contestcal",
      "start_date": "2026-11-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-11-02T17:40:00Z",
      "end": "2026-11-02T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261102T1740@contestcal",
      "start_date": "2026-11-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "ars-spartan-sprint",
      "name": "ARS Spartan Sprint",
      "start": "2026-11-03T01:00:00Z",
      "end": "2026-11-03T03:00:00Z",
      "start_wall": "2026-11-02T20:00:00",
      "end_wall": "2026-11-02T22:00:00",
      "local_rolling": false,
      "timezone": "America/New_York",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "Adventure Radio Society",
      "rules_url": "https://ars-qrp.com/Spartan_Sprint/Spartan_Sprint.html",
      "verified": true,
      "note": "CORRECTION (anchor): previously encoded as the first TUESDAY of the month. The sponsor's rule is the first MONDAY US local, which lands on Tuesday UTC -- and those are different dates whenever the 1st falls on a Tuesday (Sep and Dec 2026). SPONSOR-ANCHORED LOCAL TIME: ARS publishes no UTC time and states the event 'is always at these Local Times', so the UTC instant is what moves -- 0100Z Tuesday under EST, 0000Z Tuesday under EDT. Resolved through America/New_York rather than hardcoded, so DST is handled. ARS lists Eastern, Central, Mountain and Pacific times that are the same instant in every zone that observes DST; Arizona, which does not, is the one place the sponsor's own table is inconsistent.",
      "exchange": "RST + state/province + power output",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "ars-spartan-sprint-20261103T0100@contestcal",
      "start_date": "2026-11-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-04T13:00:00Z",
      "end": "2026-11-04T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261104T1300@contestcal",
      "start_date": "2026-11-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-04T19:00:00Z",
      "end": "2026-11-04T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261104T1900@contestcal",
      "start_date": "2026-11-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-05T03:00:00Z",
      "end": "2026-11-05T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261105T0300@contestcal",
      "start_date": "2026-11-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-05T07:00:00Z",
      "end": "2026-11-05T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261105T0700@contestcal",
      "start_date": "2026-11-05",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-11-06T01:00:00Z",
      "end": "2026-11-06T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261106T0100@contestcal",
      "start_date": "2026-11-06",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-11-06T01:45:00Z",
      "end": "2026-11-06T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261106T0145@contestcal",
      "start_date": "2026-11-06",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-11-06T02:30:00Z",
      "end": "2026-11-06T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261106T0230@contestcal",
      "start_date": "2026-11-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-11-06T20:00:00Z",
      "end": "2026-11-06T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261106T2000@contestcal",
      "start_date": "2026-11-06",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-sweepstakes-cw",
      "name": "ARRL November Sweepstakes, CW",
      "start": "2026-11-07T21:00:00Z",
      "end": "2026-11-09T02:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 29.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/sweepstakes",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "entity_list",
      "eligibility_reason": "Entry limited to K, VE -- includes K.",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-sweepstakes-cw-20261107T2100@contestcal",
      "start_date": "2026-11-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-11-09T00:00:00Z",
      "end": "2026-11-09T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261109T0000@contestcal",
      "start_date": "2026-11-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "4sqrp-sss",
      "name": "4 States QRP Group Second Sunday Sprint (SSS)",
      "start": "2026-11-09T01:00:00Z",
      "end": "2026-11-09T03:00:00Z",
      "start_wall": "2026-11-08T19:00:00",
      "end_wall": "2026-11-08T21:00:00",
      "local_rolling": false,
      "timezone": "America/Chicago",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB",
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "4 States QRP Group",
      "rules_url": "https://www.4sqrp.com/SSS/sss_rules_revised_02_2026.pdf",
      "verified": true,
      "note": "SPONSOR-ANCHORED LOCAL TIME. The anchor is the second SUNDAY and the sprint runs into Monday UTC. 4SQRP states the consequence itself: '7 PM until 9 PM central time (CST or CDT, whichever is in effect at the time). If you use UTC, that time changes when we switch from CST to CDT (or vice versa).' Resolved through America/Chicago, so it is 0100Z Monday in winter and 0000Z Monday in summer.",
      "exchange": "RST + state/province/country + 4SQRP member number (power if non-member)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "4sqrp-sss-20261109T0100@contestcal",
      "start_date": "2026-11-09",
      "mode_families": [
        "CW",
        "SSB",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-11-09T17:40:00Z",
      "end": "2026-11-09T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261109T1740@contestcal",
      "start_date": "2026-11-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-11T13:00:00Z",
      "end": "2026-11-11T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261111T1300@contestcal",
      "start_date": "2026-11-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-11T19:00:00Z",
      "end": "2026-11-11T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261111T1900@contestcal",
      "start_date": "2026-11-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-12T03:00:00Z",
      "end": "2026-11-12T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261112T0300@contestcal",
      "start_date": "2026-11-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-12T07:00:00Z",
      "end": "2026-11-12T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261112T0700@contestcal",
      "start_date": "2026-11-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-11-13T01:00:00Z",
      "end": "2026-11-13T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261113T0100@contestcal",
      "start_date": "2026-11-13",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-11-13T01:45:00Z",
      "end": "2026-11-13T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261113T0145@contestcal",
      "start_date": "2026-11-13",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-11-13T02:30:00Z",
      "end": "2026-11-13T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261113T0230@contestcal",
      "start_date": "2026-11-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-11-13T20:00:00Z",
      "end": "2026-11-13T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261113T2000@contestcal",
      "start_date": "2026-11-13",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "podxs-triple-play",
      "name": "PODXS 070 Club Triple Play Low Band Sprint",
      "start": "2026-11-14T00:00:00Z",
      "end": "2026-11-16T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 71.98,
      "modes": [
        "Digital"
      ],
      "submodes": [
        "PSK31"
      ],
      "bands": [
        "160m",
        "80m",
        "40m"
      ],
      "bands_note": "",
      "sponsor": "PODXS 070 Club",
      "rules_url": "https://www.podxs070.com/o7o-club-sponsored-contests/triple-play-low-band-sprint",
      "verified": true,
      "note": "Three UTC days, one six-hour block per day -- so 18 hours of operating inside a 72-hour window.",
      "exchange": "State/province/country (SPC)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-11-23T23:59:00Z",
      "uid": "podxs-triple-play-20261114T0000@contestcal",
      "start_date": "2026-11-14",
      "mode_families": [
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "skcc-wes",
      "name": "SKCC Weekend Sprintathon (WES)",
      "start": "2026-11-14T12:00:00Z",
      "end": "2026-11-15T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 35.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekend_sprintathon/",
      "verified": true,
      "note": "Older sources describe the anchor as 'the Saturday following the 6th', which differs from '2nd Saturday' in some months. SKCC's current page says 2nd Saturday; re-check if dates drift.",
      "exchange": "RST + state/province/country + name + SKCC number (C/T/S suffix for award holders)",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-wes-20261114T1200@contestcal",
      "start_date": "2026-11-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-11-16T00:00:00Z",
      "end": "2026-11-16T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261116T0000@contestcal",
      "start_date": "2026-11-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-11-16T17:40:00Z",
      "end": "2026-11-16T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261116T1740@contestcal",
      "start_date": "2026-11-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-18T13:00:00Z",
      "end": "2026-11-18T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261118T1300@contestcal",
      "start_date": "2026-11-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-18T19:00:00Z",
      "end": "2026-11-18T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261118T1900@contestcal",
      "start_date": "2026-11-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-19T03:00:00Z",
      "end": "2026-11-19T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261119T0300@contestcal",
      "start_date": "2026-11-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-19T07:00:00Z",
      "end": "2026-11-19T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261119T0700@contestcal",
      "start_date": "2026-11-19",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-11-20T01:00:00Z",
      "end": "2026-11-20T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261120T0100@contestcal",
      "start_date": "2026-11-20",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-11-20T01:45:00Z",
      "end": "2026-11-20T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261120T0145@contestcal",
      "start_date": "2026-11-20",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-11-20T02:30:00Z",
      "end": "2026-11-20T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261120T0230@contestcal",
      "start_date": "2026-11-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-11-20T20:00:00Z",
      "end": "2026-11-20T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261120T2000@contestcal",
      "start_date": "2026-11-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-sweepstakes-ssb",
      "name": "ARRL November Sweepstakes, Phone",
      "start": "2026-11-21T21:00:00Z",
      "end": "2026-11-23T02:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 29.98,
      "modes": [
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/sweepstakes",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "entity_list",
      "eligibility_reason": "Entry limited to K, VE -- includes K.",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-sweepstakes-ssb-20261121T2100@contestcal",
      "start_date": "2026-11-21",
      "mode_families": [
        "SSB"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-11-23T00:00:00Z",
      "end": "2026-11-23T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261123T0000@contestcal",
      "start_date": "2026-11-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-11-23T17:40:00Z",
      "end": "2026-11-23T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261123T1740@contestcal",
      "start_date": "2026-11-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-sks",
      "name": "SKCC Straight Key Sprint (SKS)",
      "start": "2026-11-25T00:00:00Z",
      "end": "2026-11-25T02:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Suggested frequencies, one per band",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekday_sprint/",
      "verified": true,
      "note": "",
      "exchange": "RST + QTH + name + SKCC number",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-sks-20261125T0000@contestcal",
      "start_date": "2026-11-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-25T13:00:00Z",
      "end": "2026-11-25T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261125T1300@contestcal",
      "start_date": "2026-11-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-25T19:00:00Z",
      "end": "2026-11-25T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261125T1900@contestcal",
      "start_date": "2026-11-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-26T03:00:00Z",
      "end": "2026-11-26T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261126T0300@contestcal",
      "start_date": "2026-11-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-11-26T07:00:00Z",
      "end": "2026-11-26T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261126T0700@contestcal",
      "start_date": "2026-11-26",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-11-27T01:00:00Z",
      "end": "2026-11-27T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261127T0100@contestcal",
      "start_date": "2026-11-27",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-11-27T01:45:00Z",
      "end": "2026-11-27T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261127T0145@contestcal",
      "start_date": "2026-11-27",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-11-27T02:30:00Z",
      "end": "2026-11-27T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261127T0230@contestcal",
      "start_date": "2026-11-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-11-27T20:00:00Z",
      "end": "2026-11-27T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261127T2000@contestcal",
      "start_date": "2026-11-27",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cq-ww-cw",
      "name": "CQ Worldwide DX Contest, CW",
      "start": "2026-11-28T00:00:00Z",
      "end": "2026-11-29T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 47.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "Six bands only: 1.8, 3.5, 7, 14, 21 and 28 MHz",
      "sponsor": "CQ Magazine",
      "rules_url": "https://www.cqww.com/rules.htm",
      "verified": false,
      "note": "CONFIRM against sponsor rules before publishing.",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cq-ww-cw-20261128T0000@contestcal",
      "start_date": "2026-11-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-11-30T00:00:00Z",
      "end": "2026-11-30T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261130T0000@contestcal",
      "start_date": "2026-11-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-11-30T17:40:00Z",
      "end": "2026-11-30T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261130T1740@contestcal",
      "start_date": "2026-11-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-02T13:00:00Z",
      "end": "2026-12-02T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261202T1300@contestcal",
      "start_date": "2026-12-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-02T19:00:00Z",
      "end": "2026-12-02T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261202T1900@contestcal",
      "start_date": "2026-12-02",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-03T03:00:00Z",
      "end": "2026-12-03T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261203T0300@contestcal",
      "start_date": "2026-12-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-03T07:00:00Z",
      "end": "2026-12-03T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261203T0700@contestcal",
      "start_date": "2026-12-03",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-12-04T01:00:00Z",
      "end": "2026-12-04T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261204T0100@contestcal",
      "start_date": "2026-12-04",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-12-04T01:45:00Z",
      "end": "2026-12-04T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261204T0145@contestcal",
      "start_date": "2026-12-04",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-12-04T02:30:00Z",
      "end": "2026-12-04T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261204T0230@contestcal",
      "start_date": "2026-12-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-12-04T20:00:00Z",
      "end": "2026-12-04T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261204T2000@contestcal",
      "start_date": "2026-12-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-160m",
      "name": "ARRL 160-Meter Contest",
      "start": "2026-12-04T22:00:00Z",
      "end": "2026-12-06T15:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 41.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m"
      ],
      "bands_note": "",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/160-meter",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-160m-20261204T2200@contestcal",
      "start_date": "2026-12-04",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-12-07T00:00:00Z",
      "end": "2026-12-07T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261207T0000@contestcal",
      "start_date": "2026-12-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-12-07T17:40:00Z",
      "end": "2026-12-07T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261207T1740@contestcal",
      "start_date": "2026-12-07",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "ars-spartan-sprint",
      "name": "ARS Spartan Sprint",
      "start": "2026-12-08T01:00:00Z",
      "end": "2026-12-08T03:00:00Z",
      "start_wall": "2026-12-07T20:00:00",
      "end_wall": "2026-12-07T22:00:00",
      "local_rolling": false,
      "timezone": "America/New_York",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "Adventure Radio Society",
      "rules_url": "https://ars-qrp.com/Spartan_Sprint/Spartan_Sprint.html",
      "verified": true,
      "note": "CORRECTION (anchor): previously encoded as the first TUESDAY of the month. The sponsor's rule is the first MONDAY US local, which lands on Tuesday UTC -- and those are different dates whenever the 1st falls on a Tuesday (Sep and Dec 2026). SPONSOR-ANCHORED LOCAL TIME: ARS publishes no UTC time and states the event 'is always at these Local Times', so the UTC instant is what moves -- 0100Z Tuesday under EST, 0000Z Tuesday under EDT. Resolved through America/New_York rather than hardcoded, so DST is handled. ARS lists Eastern, Central, Mountain and Pacific times that are the same instant in every zone that observes DST; Arizona, which does not, is the one place the sponsor's own table is inconsistent.",
      "exchange": "RST + state/province + power output",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "ars-spartan-sprint-20261208T0100@contestcal",
      "start_date": "2026-12-08",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-09T13:00:00Z",
      "end": "2026-12-09T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261209T1300@contestcal",
      "start_date": "2026-12-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-09T19:00:00Z",
      "end": "2026-12-09T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261209T1900@contestcal",
      "start_date": "2026-12-09",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-10T03:00:00Z",
      "end": "2026-12-10T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261210T0300@contestcal",
      "start_date": "2026-12-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-10T07:00:00Z",
      "end": "2026-12-10T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261210T0700@contestcal",
      "start_date": "2026-12-10",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-12-11T01:00:00Z",
      "end": "2026-12-11T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261211T0100@contestcal",
      "start_date": "2026-12-11",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-12-11T01:45:00Z",
      "end": "2026-12-11T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261211T0145@contestcal",
      "start_date": "2026-12-11",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-12-11T02:30:00Z",
      "end": "2026-12-11T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261211T0230@contestcal",
      "start_date": "2026-12-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-12-11T20:00:00Z",
      "end": "2026-12-11T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261211T2000@contestcal",
      "start_date": "2026-12-11",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-10m",
      "name": "ARRL 10-Meter Contest",
      "start": "2026-12-12T00:00:00Z",
      "end": "2026-12-13T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 47.98,
      "modes": [
        "CW",
        "SSB"
      ],
      "submodes": [],
      "bands": [
        "10m"
      ],
      "bands_note": "",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/10-meter",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-10m-20261212T0000@contestcal",
      "start_date": "2026-12-12",
      "mode_families": [
        "CW",
        "SSB"
      ],
      "band_families": [
        "10m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "podxs-triple-play-doubleheader",
      "name": "PODXS 070 Club Triple Play Low Band Sprint DOUBLEHEADER",
      "start": "2026-12-12T00:00:00Z",
      "end": "2026-12-14T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 71.98,
      "modes": [
        "Digital"
      ],
      "submodes": [
        "PSK31"
      ],
      "bands": [
        "160m",
        "80m",
        "40m"
      ],
      "bands_note": "",
      "sponsor": "PODXS 070 Club",
      "rules_url": "https://www.podxs070.com/o7o-club-sponsored-contests/triple-play-low-band-sprint",
      "verified": true,
      "note": "Second running of the Triple Play format, shares a rules page with the November event.",
      "exchange": "State/province/country (SPC)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": "2026-12-21T23:59:00Z",
      "uid": "podxs-triple-play-doubleheader-20261212T0000@contestcal",
      "start_date": "2026-12-12",
      "mode_families": [
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "skcc-wes",
      "name": "SKCC Weekend Sprintathon (WES)",
      "start": "2026-12-12T12:00:00Z",
      "end": "2026-12-13T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 35.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekend_sprintathon/",
      "verified": true,
      "note": "Older sources describe the anchor as 'the Saturday following the 6th', which differs from '2nd Saturday' in some months. SKCC's current page says 2nd Saturday; re-check if dates drift.",
      "exchange": "RST + state/province/country + name + SKCC number (C/T/S suffix for award holders)",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-wes-20261212T1200@contestcal",
      "start_date": "2026-12-12",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-12-14T00:00:00Z",
      "end": "2026-12-14T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261214T0000@contestcal",
      "start_date": "2026-12-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "4sqrp-sss",
      "name": "4 States QRP Group Second Sunday Sprint (SSS)",
      "start": "2026-12-14T01:00:00Z",
      "end": "2026-12-14T03:00:00Z",
      "start_wall": "2026-12-13T19:00:00",
      "end_wall": "2026-12-13T21:00:00",
      "local_rolling": false,
      "timezone": "America/Chicago",
      "duration_hours": 2,
      "modes": [
        "CW",
        "SSB",
        "Digital"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "4 States QRP Group",
      "rules_url": "https://www.4sqrp.com/SSS/sss_rules_revised_02_2026.pdf",
      "verified": true,
      "note": "SPONSOR-ANCHORED LOCAL TIME. The anchor is the second SUNDAY and the sprint runs into Monday UTC. 4SQRP states the consequence itself: '7 PM until 9 PM central time (CST or CDT, whichever is in effect at the time). If you use UTC, that time changes when we switch from CST to CDT (or vice versa).' Resolved through America/Chicago, so it is 0100Z Monday in winter and 0000Z Monday in summer.",
      "exchange": "RST + state/province/country + 4SQRP member number (power if non-member)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "4sqrp-sss-20261214T0100@contestcal",
      "start_date": "2026-12-14",
      "mode_families": [
        "CW",
        "SSB",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-12-14T17:40:00Z",
      "end": "2026-12-14T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261214T1740@contestcal",
      "start_date": "2026-12-14",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-16T13:00:00Z",
      "end": "2026-12-16T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261216T1300@contestcal",
      "start_date": "2026-12-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-16T19:00:00Z",
      "end": "2026-12-16T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261216T1900@contestcal",
      "start_date": "2026-12-16",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-17T03:00:00Z",
      "end": "2026-12-17T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261217T0300@contestcal",
      "start_date": "2026-12-17",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-17T07:00:00Z",
      "end": "2026-12-17T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261217T0700@contestcal",
      "start_date": "2026-12-17",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-12-18T01:00:00Z",
      "end": "2026-12-18T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261218T0100@contestcal",
      "start_date": "2026-12-18",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-12-18T01:45:00Z",
      "end": "2026-12-18T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261218T0145@contestcal",
      "start_date": "2026-12-18",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-12-18T02:30:00Z",
      "end": "2026-12-18T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261218T0230@contestcal",
      "start_date": "2026-12-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-12-18T20:00:00Z",
      "end": "2026-12-18T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261218T2000@contestcal",
      "start_date": "2026-12-18",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "arrl-rookie-roundup-cw",
      "name": "ARRL Rookie Roundup, CW",
      "start": "2026-12-20T18:00:00Z",
      "end": "2026-12-20T23:59:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 5.98,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "ARRL",
      "rules_url": "http://www.arrl.org/rookie-roundup",
      "verified": true,
      "note": "",
      "exchange": "",
      "country": "",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "entity_list",
      "eligibility_reason": "Entry limited to K, VE, XE -- includes K.",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "arrl-rookie-roundup-cw-20261220T1800@contestcal",
      "start_date": "2026-12-20",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-12-21T00:00:00Z",
      "end": "2026-12-21T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261221T0000@contestcal",
      "start_date": "2026-12-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-12-21T17:40:00Z",
      "end": "2026-12-21T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261221T1740@contestcal",
      "start_date": "2026-12-21",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "skcc-sks",
      "name": "SKCC Straight Key Sprint (SKS)",
      "start": "2026-12-23T00:00:00Z",
      "end": "2026-12-23T02:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 2,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "Suggested frequencies, one per band",
      "sponsor": "Straight Key Century Club",
      "rules_url": "https://www.skccgroup.com/operating_activities/weekday_sprint/",
      "verified": true,
      "note": "",
      "exchange": "RST + QTH + name + SKCC number",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "skcc-sks-20261223T0000@contestcal",
      "start_date": "2026-12-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "2-12"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-23T13:00:00Z",
      "end": "2026-12-23T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261223T1300@contestcal",
      "start_date": "2026-12-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-23T19:00:00Z",
      "end": "2026-12-23T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261223T1900@contestcal",
      "start_date": "2026-12-23",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-24T03:00:00Z",
      "end": "2026-12-24T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261224T0300@contestcal",
      "start_date": "2026-12-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-24T07:00:00Z",
      "end": "2026-12-24T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261224T0700@contestcal",
      "start_date": "2026-12-24",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-ft4",
      "name": "NCCC FT4 Sprint (FT4 NS)",
      "start": "2026-12-25T01:00:00Z",
      "end": "2026-12-25T01:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "FT8/FT4"
      ],
      "submodes": [
        "FT4"
      ],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://www.ncccsprint.com/ft4ns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Grid square (following NA VHF, WW Digi and ARRL IDC practice)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-ft4-20261225T0100@contestcal",
      "start_date": "2026-12-25",
      "mode_families": [
        "Digital",
        "FT8/FT4"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-rtty",
      "name": "NCCC RTTY Sprint (RTTY NS)",
      "start": "2026-12-25T01:45:00Z",
      "end": "2026-12-25T02:15:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rttyns.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-rtty-20261225T0145@contestcal",
      "start_date": "2026-12-25",
      "mode_families": [
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "nccc-ns-cw",
      "name": "NCCC Sprint (NS)",
      "start": "2026-12-25T02:30:00Z",
      "end": "2026-12-25T03:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.5,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "bands_note": "",
      "sponsor": "Northern California Contest Club (NCCC)",
      "rules_url": "https://ncccsprint.com/rules.html",
      "verified": true,
      "note": "NCCC describes these as 'nominal rules' that may be modified on a weekly basis, and runs formal Ladder seasons interspersed with practice weeks. The 30-minute session slot itself is fixed.",
      "exchange": "Serial number + name + QTH (both callsigns required in the exchange)",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "nccc-ns-cw-20261225T0230@contestcal",
      "start_date": "2026-12-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-12-25T20:00:00Z",
      "end": "2026-12-25T21:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261225T2000@contestcal",
      "start_date": "2026-12-25",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "k1usn-sst",
      "name": "K1USN Slow Speed Test (SST)",
      "start": "2026-12-28T00:00:00Z",
      "end": "2026-12-28T01:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "bands_note": "",
      "sponsor": "K1USN Radio Club",
      "rules_url": "https://www.k1usn.com/sst_rules.html",
      "verified": true,
      "note": "No formal log submission -- participants post scores to 3830scores.com.",
      "exchange": "Name + state/province/DX country",
      "country": "US",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "k1usn-sst-20261228T0000@contestcal",
      "start_date": "2026-12-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "20m",
        "15m",
        "10m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "agcw-zap-merit",
      "name": "AGCW ZAP Merit Contest (ZMC)",
      "start": "2026-12-28T17:40:00Z",
      "end": "2026-12-28T18:30:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 0.83,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "80m"
      ],
      "bands_note": "",
      "sponsor": "AGCW-DL",
      "rules_url": "https://www.agcw.de/contest/tzap/",
      "verified": false,
      "note": "PARTLY UNVERIFIED. The recurrence (every Monday), the 1740 UTC pre-logging opening and the 1800 UTC telegram transmission are all quoted from AGCW. AGCW publishes NO closing time. The 1830 end stored here is a PLACEHOLDER so the record expands -- it is not a sponsor fact and must not be presented as one. Confirm the session length with the ZMC manager before shipping. Points accumulate over a calendar year; logs are due 31 January of the following year.",
      "exchange": "Callsign + date + time + RST (SWLs log RST of both stations in a QSO)",
      "country": "DE",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-12",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "agcw-zap-merit-20261228T1740@contestcal",
      "start_date": "2026-12-28",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "80m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-30T13:00:00Z",
      "end": "2026-12-30T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261230T1300@contestcal",
      "start_date": "2026-12-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-30T19:00:00Z",
      "end": "2026-12-30T20:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261230T1900@contestcal",
      "start_date": "2026-12-30",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-31T03:00:00Z",
      "end": "2026-12-31T04:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261231T0300@contestcal",
      "start_date": "2026-12-31",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "cwops-cwt",
      "name": "CWops Test (CWT)",
      "start": "2026-12-31T07:00:00Z",
      "end": "2026-12-31T08:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "CW"
      ],
      "submodes": [],
      "bands": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "bands_note": "",
      "sponsor": "CWops",
      "rules_url": "https://cwops.org/cwops-tests/",
      "verified": true,
      "note": "",
      "exchange": "Members: name + CWops number. Non-members: name + state/province/DX prefix.",
      "country": "INTL",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-11",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "cwops-cwt-20261231T0700@contestcal",
      "start_date": "2026-12-31",
      "mode_families": [
        "CW"
      ],
      "band_families": [
        "160m",
        "80m",
        "40m",
        "30m",
        "20m",
        "17m",
        "15m",
        "12m",
        "10m",
        "6m"
      ],
      "duration_bucket": "lt2"
    }
  ]
}