{
  "contest": {
    "id": "sarl-club-20m",
    "name": "SARL Saturday 20 m Club Contest",
    "sponsor": "SARL",
    "sponsor_home": "https://mysarl.org.za/",
    "country": "ZA",
    "summary": "An hour on 20 m for South African club teams, run in March and June; individual scores add up to a club total.",
    "modes": [
      "SSB",
      "CW",
      "RTTY"
    ],
    "bands": [
      "20m"
    ],
    "exchange": "Your name, your Abbreviated Club Callsign and your 4-character grid square (for example KG30).",
    "power_categories": [],
    "log_format": "",
    "log_deadline_days": null,
    "log_submit_url": "",
    "timezone": "",
    "local_rolling": false,
    "eligibility": {
      "scope": "entity_list",
      "entities": [
        "ZS"
      ],
      "verified": false,
      "note": "THIS CATALOG'S READING, NOT SARL'S WORDING. The manual states no entry restriction, but the exchange requires an Abbreviated Club Callsign 'derived from the club's ICASA issued callsign', and ICASA is the South African regulator -- so a station outside South Africa has no valid exchange to send. Recorded as ZS with eligibility.verified false rather than as worldwide, and it should be confirmed with SARL."
    },
    "active_from": null,
    "active_until": null,
    "note": "A club championship rather than an individual contest: operators' scores are added into a club total. The month list is SARL's own -- these run in four months of the year, not every month -- which is what monthly_nth_weekday's `months` field exists for. log_format and log_deadline_days are absent: this pass read each contest's Aim, Dates, Frequencies and Exchange sections and did not read its Log Sheets section, so neither is recorded rather than assumed from SARL's other contests.\n\nPROVENANCE RESTORED 2026-08-23. This record carried verified: true with an EMPTY source_note -- one of three the 2026-08-21 rule audit found, and a stricter defect than the thin ARRL notes beside them: an empty string is not weak evidence, it is none, and there was nothing in the record to check a rule against. The rule, the times, the bands and the exchange were all correct; only the evidence for them was missing. Re-read from the manual and quoted above, and SARL's own printed 2026 dates reproduce it.",
    "verified": true,
    "rules_url": "https://mysarl.org.za/wp-content/uploads/2025/12/2026-SARL-Contest-Manual-Version-1.1-2025-12-15.pdf",
    "rules_url_pattern": "",
    "rules_url_archived": "",
    "rules_url_checked": "2026-08-23",
    "source_note": "2026 SARL Contest Manual Version 1.1 (2025-12-15), mysarl.org.za, page 35 onward. The manual is the venue in which SARL publishes these rules; see data/sources.md, 'Africa stops being one record -- SARL'. 'The SARL Saturday 20 m Club Contest'. Date and times: '11:00 to 12:00 UTC (13:00 to 14:00 CAT) on the 3rd Saturday of a month - Saturday 21st March and Saturday 20th June 2026.' Frequencies: 'CW: 14 000 - 14 060 kHz. SSB: 14 125 - 14 300 kHz. RTTY: 14 080 - 14 099 kHz.' Exchange: 'Your name, your Abbreviated Club Callsign and your 4-character grid square (eg KG30).' Re-read 2026-08-23."
  },
  "rule": {
    "plain": "Third Saturday of March and June",
    "raw": {
      "type": "monthly_nth_weekday",
      "n": 3,
      "weekday": 5,
      "months": [
        3,
        6
      ]
    },
    "start": {
      "day_offset": 0,
      "time": "1100"
    },
    "end": {
      "day_offset": 0,
      "time": "1200"
    },
    "sessions": null
  },
  "next": [
    {
      "contest_id": "sarl-club-20m",
      "name": "SARL Saturday 20 m Club Contest",
      "start": "2027-03-20T11:00:00Z",
      "end": "2027-03-20T12:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "SSB",
        "CW",
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "20m"
      ],
      "bands_note": "CW 14 000-14 060 kHz; SSB 14 125-14 300 kHz; RTTY 14 080-14 099 kHz.",
      "sponsor": "SARL",
      "rules_url": "https://mysarl.org.za/wp-content/uploads/2025/12/2026-SARL-Contest-Manual-Version-1.1-2025-12-15.pdf",
      "verified": true,
      "note": "A club championship rather than an individual contest: operators' scores are added into a club total. The month list is SARL's own -- these run in four months of the year, not every month -- which is what monthly_nth_weekday's `months` field exists for. log_format and log_deadline_days are absent: this pass read each contest's Aim, Dates, Frequencies and Exchange sections and did not read its Log Sheets section, so neither is recorded rather than assumed from SARL's other contests.\n\nPROVENANCE RESTORED 2026-08-23. This record carried verified: true with an EMPTY source_note -- one of three the 2026-08-21 rule audit found, and a stricter defect than the thin ARRL notes beside them: an empty string is not weak evidence, it is none, and there was nothing in the record to check a rule against. The rule, the times, the bands and the exchange were all correct; only the evidence for them was missing. Re-read from the manual and quoted above, and SARL's own printed 2026 dates reproduce it.",
      "exchange": "Your name, your Abbreviated Club Callsign and your 4-character grid square (for example KG30).",
      "country": "ZA",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-23",
      "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-club-20m-20270320T1100@contestcal",
      "start_date": "2027-03-20",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "20m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "sarl-club-20m",
      "name": "SARL Saturday 20 m Club Contest",
      "start": "2027-06-19T11:00:00Z",
      "end": "2027-06-19T12:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "SSB",
        "CW",
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "20m"
      ],
      "bands_note": "CW 14 000-14 060 kHz; SSB 14 125-14 300 kHz; RTTY 14 080-14 099 kHz.",
      "sponsor": "SARL",
      "rules_url": "https://mysarl.org.za/wp-content/uploads/2025/12/2026-SARL-Contest-Manual-Version-1.1-2025-12-15.pdf",
      "verified": true,
      "note": "A club championship rather than an individual contest: operators' scores are added into a club total. The month list is SARL's own -- these run in four months of the year, not every month -- which is what monthly_nth_weekday's `months` field exists for. log_format and log_deadline_days are absent: this pass read each contest's Aim, Dates, Frequencies and Exchange sections and did not read its Log Sheets section, so neither is recorded rather than assumed from SARL's other contests.\n\nPROVENANCE RESTORED 2026-08-23. This record carried verified: true with an EMPTY source_note -- one of three the 2026-08-21 rule audit found, and a stricter defect than the thin ARRL notes beside them: an empty string is not weak evidence, it is none, and there was nothing in the record to check a rule against. The rule, the times, the bands and the exchange were all correct; only the evidence for them was missing. Re-read from the manual and quoted above, and SARL's own printed 2026 dates reproduce it.",
      "exchange": "Your name, your Abbreviated Club Callsign and your 4-character grid square (for example KG30).",
      "country": "ZA",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-23",
      "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-club-20m-20270619T1100@contestcal",
      "start_date": "2027-06-19",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "20m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "sarl-club-20m",
      "name": "SARL Saturday 20 m Club Contest",
      "start": "2028-03-18T11:00:00Z",
      "end": "2028-03-18T12:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "SSB",
        "CW",
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "20m"
      ],
      "bands_note": "CW 14 000-14 060 kHz; SSB 14 125-14 300 kHz; RTTY 14 080-14 099 kHz.",
      "sponsor": "SARL",
      "rules_url": "https://mysarl.org.za/wp-content/uploads/2025/12/2026-SARL-Contest-Manual-Version-1.1-2025-12-15.pdf",
      "verified": true,
      "note": "A club championship rather than an individual contest: operators' scores are added into a club total. The month list is SARL's own -- these run in four months of the year, not every month -- which is what monthly_nth_weekday's `months` field exists for. log_format and log_deadline_days are absent: this pass read each contest's Aim, Dates, Frequencies and Exchange sections and did not read its Log Sheets section, so neither is recorded rather than assumed from SARL's other contests.\n\nPROVENANCE RESTORED 2026-08-23. This record carried verified: true with an EMPTY source_note -- one of three the 2026-08-21 rule audit found, and a stricter defect than the thin ARRL notes beside them: an empty string is not weak evidence, it is none, and there was nothing in the record to check a rule against. The rule, the times, the bands and the exchange were all correct; only the evidence for them was missing. Re-read from the manual and quoted above, and SARL's own printed 2026 dates reproduce it.",
      "exchange": "Your name, your Abbreviated Club Callsign and your 4-character grid square (for example KG30).",
      "country": "ZA",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-23",
      "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-club-20m-20280318T1100@contestcal",
      "start_date": "2028-03-18",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "20m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "sarl-club-20m",
      "name": "SARL Saturday 20 m Club Contest",
      "start": "2028-06-17T11:00:00Z",
      "end": "2028-06-17T12:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "SSB",
        "CW",
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "20m"
      ],
      "bands_note": "CW 14 000-14 060 kHz; SSB 14 125-14 300 kHz; RTTY 14 080-14 099 kHz.",
      "sponsor": "SARL",
      "rules_url": "https://mysarl.org.za/wp-content/uploads/2025/12/2026-SARL-Contest-Manual-Version-1.1-2025-12-15.pdf",
      "verified": true,
      "note": "A club championship rather than an individual contest: operators' scores are added into a club total. The month list is SARL's own -- these run in four months of the year, not every month -- which is what monthly_nth_weekday's `months` field exists for. log_format and log_deadline_days are absent: this pass read each contest's Aim, Dates, Frequencies and Exchange sections and did not read its Log Sheets section, so neither is recorded rather than assumed from SARL's other contests.\n\nPROVENANCE RESTORED 2026-08-23. This record carried verified: true with an EMPTY source_note -- one of three the 2026-08-21 rule audit found, and a stricter defect than the thin ARRL notes beside them: an empty string is not weak evidence, it is none, and there was nothing in the record to check a rule against. The rule, the times, the bands and the exchange were all correct; only the evidence for them was missing. Re-read from the manual and quoted above, and SARL's own printed 2026 dates reproduce it.",
      "exchange": "Your name, your Abbreviated Club Callsign and your 4-character grid square (for example KG30).",
      "country": "ZA",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-23",
      "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-club-20m-20280617T1100@contestcal",
      "start_date": "2028-06-17",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "20m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "sarl-club-20m",
      "name": "SARL Saturday 20 m Club Contest",
      "start": "2029-03-17T11:00:00Z",
      "end": "2029-03-17T12:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "SSB",
        "CW",
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "20m"
      ],
      "bands_note": "CW 14 000-14 060 kHz; SSB 14 125-14 300 kHz; RTTY 14 080-14 099 kHz.",
      "sponsor": "SARL",
      "rules_url": "https://mysarl.org.za/wp-content/uploads/2025/12/2026-SARL-Contest-Manual-Version-1.1-2025-12-15.pdf",
      "verified": true,
      "note": "A club championship rather than an individual contest: operators' scores are added into a club total. The month list is SARL's own -- these run in four months of the year, not every month -- which is what monthly_nth_weekday's `months` field exists for. log_format and log_deadline_days are absent: this pass read each contest's Aim, Dates, Frequencies and Exchange sections and did not read its Log Sheets section, so neither is recorded rather than assumed from SARL's other contests.\n\nPROVENANCE RESTORED 2026-08-23. This record carried verified: true with an EMPTY source_note -- one of three the 2026-08-21 rule audit found, and a stricter defect than the thin ARRL notes beside them: an empty string is not weak evidence, it is none, and there was nothing in the record to check a rule against. The rule, the times, the bands and the exchange were all correct; only the evidence for them was missing. Re-read from the manual and quoted above, and SARL's own printed 2026 dates reproduce it.",
      "exchange": "Your name, your Abbreviated Club Callsign and your 4-character grid square (for example KG30).",
      "country": "ZA",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-23",
      "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-club-20m-20290317T1100@contestcal",
      "start_date": "2029-03-17",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "20m"
      ],
      "duration_bucket": "lt2"
    },
    {
      "contest_id": "sarl-club-20m",
      "name": "SARL Saturday 20 m Club Contest",
      "start": "2029-06-16T11:00:00Z",
      "end": "2029-06-16T12:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 1,
      "modes": [
        "SSB",
        "CW",
        "RTTY"
      ],
      "submodes": [],
      "bands": [
        "20m"
      ],
      "bands_note": "CW 14 000-14 060 kHz; SSB 14 125-14 300 kHz; RTTY 14 080-14 099 kHz.",
      "sponsor": "SARL",
      "rules_url": "https://mysarl.org.za/wp-content/uploads/2025/12/2026-SARL-Contest-Manual-Version-1.1-2025-12-15.pdf",
      "verified": true,
      "note": "A club championship rather than an individual contest: operators' scores are added into a club total. The month list is SARL's own -- these run in four months of the year, not every month -- which is what monthly_nth_weekday's `months` field exists for. log_format and log_deadline_days are absent: this pass read each contest's Aim, Dates, Frequencies and Exchange sections and did not read its Log Sheets section, so neither is recorded rather than assumed from SARL's other contests.\n\nPROVENANCE RESTORED 2026-08-23. This record carried verified: true with an EMPTY source_note -- one of three the 2026-08-21 rule audit found, and a stricter defect than the thin ARRL notes beside them: an empty string is not weak evidence, it is none, and there was nothing in the record to check a rule against. The rule, the times, the bands and the exchange were all correct; only the evidence for them was missing. Re-read from the manual and quoted above, and SARL's own printed 2026 dates reproduce it.",
      "exchange": "Your name, your Abbreviated Club Callsign and your 4-character grid square (for example KG30).",
      "country": "ZA",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-23",
      "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-club-20m-20290616T1100@contestcal",
      "start_date": "2029-06-16",
      "mode_families": [
        "CW",
        "SSB",
        "RTTY",
        "Digital"
      ],
      "band_families": [
        "20m"
      ],
      "duration_bucket": "lt2"
    }
  ]
}