{
  "contest": {
    "id": "rep-50mhz",
    "name": "Concurso REP 50 MHz",
    "sponsor": "REP",
    "sponsor_home": "https://www.rep.pt/",
    "country": "PT",
    "summary": "REP's six-metre contest over the first full weekend of August, 1400 UTC Saturday to 1400 UTC Sunday, scored a point per kilometre with grid squares as the multiplier.",
    "modes": [
      "SSB",
      "CW",
      "FM"
    ],
    "bands": [
      "6m"
    ],
    "exchange": "RS(T), a sequential QSO number beginning 001 and the QTH locator of both stations (for example IM58is). The contact time need not be exchanged but must be logged in UTC.",
    "power_categories": [],
    "log_format": "Cabrillo",
    "log_deadline_days": null,
    "log_submit_url": "",
    "timezone": "",
    "local_rolling": false,
    "eligibility": {
      "scope": "worldwide",
      "verified": true,
      "note": "'Âmbito Internacional' -- international in scope; 'Este concurso está aberto a todos os radioamadores devidamente licenciados.'"
    },
    "active_from": null,
    "active_until": null,
    "note": "REP writes 'fim de semana completo' -- complete weekend -- which is exactly the distinction this engine models: a Saturday/Sunday pair with both days inside the month. It is encoded because it is REP's wording, NOT because it changes a date: checked rather than assumed, the full-weekend and first-Saturday readings agree for the first weekend of August in every year from 2025 to 2060, because the only Saturday that can fail to open a full weekend is one falling on the month's last day. The distinction bites on 'last weekend' rules, not on this one. log_deadline_days is absent because REP states a dated deadline for the edition ('até às 23:59 (UTC) do dia 8 de Agosto de 2025') rather than a span, and 8 August is 5 days after the 2025 running but would be 6 after the 2026 one. Modes: REP allows phone as AM, SSB or FM; SSB is the catalog's only phone token, so AM and FM are recorded in submodes. REP has published no 2026 edition on concursos.rep.pt as of 2026-08-19, and the first full weekend of August 2026 has passed; the rule is encoded as REP states it and no suspension is inferred from a missing post.",
    "verified": true,
    "rules_url": "https://concursos.rep.pt/concurso-rep-50-mhz/",
    "rules_url_pattern": "",
    "rules_url_archived": "",
    "rules_url_checked": "2026-08-19",
    "source_note": "concursos.rep.pt/concurso-rep-50-mhz/, REP's own rules: '2. Período: Primeiro fim de semana completo de agosto, desde as 14:00 UTC de sábado às 14:00 UTC de domingo. 2025: o concurso ocorre nos dias 2 e 3 de agosto.' -- the first COMPLETE weekend of August, 1400 UTC Saturday to 1400 UTC Sunday. Scope: '3. Âmbito Internacional. São válidos os contactos efetuados por estações devidamente licenciadas', and 'Este concurso está aberto a todos os radioamadores devidamente licenciados.' Band: '5. Banda: 6 m (50 MHz)'. Modes: '6. Modos de emissão: Fonia (AM, SSB, FM) e/ou telegrafia (CW).' Exchange: 'o controle de sinal RS(T); Número sequencial de QSO, começando em 001; QTH Locator (exemplo: IM58is), de ambas as estações.' Logs: 'Os ficheiros de log a enviar no só formato Cabrillo', sent to rep-concursos@rep.pt. REP's own 2025 date confirms the rule: 1 August 2025 was a Friday, so the first full weekend of August 2025 is 2-3 August, which is what REP prints."
  },
  "rule": {
    "plain": "First full weekend of August",
    "raw": {
      "type": "nth_full_weekend",
      "month": 8,
      "n": 1
    },
    "start": {
      "day_offset": 0,
      "time": "1400"
    },
    "end": {
      "day_offset": 1,
      "time": "1400"
    },
    "sessions": null
  },
  "next": [
    {
      "contest_id": "rep-50mhz",
      "name": "Concurso REP 50 MHz",
      "start": "2027-08-07T14:00:00Z",
      "end": "2027-08-08T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 24,
      "modes": [
        "SSB",
        "CW",
        "FM"
      ],
      "submodes": [
        "AM"
      ],
      "bands": [
        "6m"
      ],
      "bands_note": "6 m (50 MHz), de acordo com os planos de frequência recomendados pela IARU para cada região -- 6m per the IARU band plans for each region.",
      "sponsor": "REP",
      "rules_url": "https://concursos.rep.pt/concurso-rep-50-mhz/",
      "verified": true,
      "note": "REP writes 'fim de semana completo' -- complete weekend -- which is exactly the distinction this engine models: a Saturday/Sunday pair with both days inside the month. It is encoded because it is REP's wording, NOT because it changes a date: checked rather than assumed, the full-weekend and first-Saturday readings agree for the first weekend of August in every year from 2025 to 2060, because the only Saturday that can fail to open a full weekend is one falling on the month's last day. The distinction bites on 'last weekend' rules, not on this one. log_deadline_days is absent because REP states a dated deadline for the edition ('até às 23:59 (UTC) do dia 8 de Agosto de 2025') rather than a span, and 8 August is 5 days after the 2025 running but would be 6 after the 2026 one. Modes: REP allows phone as AM, SSB or FM; SSB is the catalog's only phone token, so AM and FM are recorded in submodes. REP has published no 2026 edition on concursos.rep.pt as of 2026-08-19, and the first full weekend of August 2026 has passed; the rule is encoded as REP states it and no suspension is inferred from a missing post.",
      "exchange": "RS(T), a sequential QSO number beginning 001 and the QTH locator of both stations (for example IM58is). The contact time need not be exchanged but must be logged in UTC.",
      "country": "PT",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-19",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "rep-50mhz-20270807T1400@contestcal",
      "start_date": "2027-08-07",
      "mode_families": [
        "CW",
        "SSB",
        "FM"
      ],
      "band_families": [
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "rep-50mhz",
      "name": "Concurso REP 50 MHz",
      "start": "2028-08-05T14:00:00Z",
      "end": "2028-08-06T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 24,
      "modes": [
        "SSB",
        "CW",
        "FM"
      ],
      "submodes": [
        "AM"
      ],
      "bands": [
        "6m"
      ],
      "bands_note": "6 m (50 MHz), de acordo com os planos de frequência recomendados pela IARU para cada região -- 6m per the IARU band plans for each region.",
      "sponsor": "REP",
      "rules_url": "https://concursos.rep.pt/concurso-rep-50-mhz/",
      "verified": true,
      "note": "REP writes 'fim de semana completo' -- complete weekend -- which is exactly the distinction this engine models: a Saturday/Sunday pair with both days inside the month. It is encoded because it is REP's wording, NOT because it changes a date: checked rather than assumed, the full-weekend and first-Saturday readings agree for the first weekend of August in every year from 2025 to 2060, because the only Saturday that can fail to open a full weekend is one falling on the month's last day. The distinction bites on 'last weekend' rules, not on this one. log_deadline_days is absent because REP states a dated deadline for the edition ('até às 23:59 (UTC) do dia 8 de Agosto de 2025') rather than a span, and 8 August is 5 days after the 2025 running but would be 6 after the 2026 one. Modes: REP allows phone as AM, SSB or FM; SSB is the catalog's only phone token, so AM and FM are recorded in submodes. REP has published no 2026 edition on concursos.rep.pt as of 2026-08-19, and the first full weekend of August 2026 has passed; the rule is encoded as REP states it and no suspension is inferred from a missing post.",
      "exchange": "RS(T), a sequential QSO number beginning 001 and the QTH locator of both stations (for example IM58is). The contact time need not be exchanged but must be logged in UTC.",
      "country": "PT",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-19",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "rep-50mhz-20280805T1400@contestcal",
      "start_date": "2028-08-05",
      "mode_families": [
        "CW",
        "SSB",
        "FM"
      ],
      "band_families": [
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "rep-50mhz",
      "name": "Concurso REP 50 MHz",
      "start": "2029-08-04T14:00:00Z",
      "end": "2029-08-05T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 24,
      "modes": [
        "SSB",
        "CW",
        "FM"
      ],
      "submodes": [
        "AM"
      ],
      "bands": [
        "6m"
      ],
      "bands_note": "6 m (50 MHz), de acordo com os planos de frequência recomendados pela IARU para cada região -- 6m per the IARU band plans for each region.",
      "sponsor": "REP",
      "rules_url": "https://concursos.rep.pt/concurso-rep-50-mhz/",
      "verified": true,
      "note": "REP writes 'fim de semana completo' -- complete weekend -- which is exactly the distinction this engine models: a Saturday/Sunday pair with both days inside the month. It is encoded because it is REP's wording, NOT because it changes a date: checked rather than assumed, the full-weekend and first-Saturday readings agree for the first weekend of August in every year from 2025 to 2060, because the only Saturday that can fail to open a full weekend is one falling on the month's last day. The distinction bites on 'last weekend' rules, not on this one. log_deadline_days is absent because REP states a dated deadline for the edition ('até às 23:59 (UTC) do dia 8 de Agosto de 2025') rather than a span, and 8 August is 5 days after the 2025 running but would be 6 after the 2026 one. Modes: REP allows phone as AM, SSB or FM; SSB is the catalog's only phone token, so AM and FM are recorded in submodes. REP has published no 2026 edition on concursos.rep.pt as of 2026-08-19, and the first full weekend of August 2026 has passed; the rule is encoded as REP states it and no suspension is inferred from a missing post.",
      "exchange": "RS(T), a sequential QSO number beginning 001 and the QTH locator of both stations (for example IM58is). The contact time need not be exchanged but must be logged in UTC.",
      "country": "PT",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-19",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "rep-50mhz-20290804T1400@contestcal",
      "start_date": "2029-08-04",
      "mode_families": [
        "CW",
        "SSB",
        "FM"
      ],
      "band_families": [
        "6m"
      ],
      "duration_bucket": "gte24"
    },
    {
      "contest_id": "rep-50mhz",
      "name": "Concurso REP 50 MHz",
      "start": "2030-08-03T14:00:00Z",
      "end": "2030-08-04T14:00:00Z",
      "start_wall": null,
      "end_wall": null,
      "local_rolling": false,
      "timezone": "",
      "duration_hours": 24,
      "modes": [
        "SSB",
        "CW",
        "FM"
      ],
      "submodes": [
        "AM"
      ],
      "bands": [
        "6m"
      ],
      "bands_note": "6 m (50 MHz), de acordo com os planos de frequência recomendados pela IARU para cada região -- 6m per the IARU band plans for each region.",
      "sponsor": "REP",
      "rules_url": "https://concursos.rep.pt/concurso-rep-50-mhz/",
      "verified": true,
      "note": "REP writes 'fim de semana completo' -- complete weekend -- which is exactly the distinction this engine models: a Saturday/Sunday pair with both days inside the month. It is encoded because it is REP's wording, NOT because it changes a date: checked rather than assumed, the full-weekend and first-Saturday readings agree for the first weekend of August in every year from 2025 to 2060, because the only Saturday that can fail to open a full weekend is one falling on the month's last day. The distinction bites on 'last weekend' rules, not on this one. log_deadline_days is absent because REP states a dated deadline for the edition ('até às 23:59 (UTC) do dia 8 de Agosto de 2025') rather than a span, and 8 August is 5 days after the 2025 running but would be 6 after the 2026 one. Modes: REP allows phone as AM, SSB or FM; SSB is the catalog's only phone token, so AM and FM are recorded in submodes. REP has published no 2026 edition on concursos.rep.pt as of 2026-08-19, and the first full weekend of August 2026 has passed; the rule is encoded as REP states it and no suspension is inferred from a missing post.",
      "exchange": "RS(T), a sequential QSO number beginning 001 and the QTH locator of both stations (for example IM58is). The contact time need not be exchanged but must be logged in UTC.",
      "country": "PT",
      "rules_url_archived": "",
      "rules_url_checked": "2026-08-19",
      "can_enter": true,
      "eligibility_scope": "worldwide",
      "eligibility_reason": "",
      "works": "everyone",
      "practical": "",
      "log_due": null,
      "uid": "rep-50mhz-20300803T1400@contestcal",
      "start_date": "2030-08-03",
      "mode_families": [
        "CW",
        "SSB",
        "FM"
      ],
      "band_families": [
        "6m"
      ],
      "duration_bucket": "gte24"
    }
  ]
}