Easter and its Easter-relative movable feasts for a year: $ colitur easter 2026 easter 2026-04-05 ash-wednesday 2026-02-18 palm-sunday 2026-03-29 ascension 2026-05-14 pentecost 2026-05-24 corpus-christi 2026-06-04 A year outside the supported domain is rejected (exit 2): $ colitur easter 1000 colitur: year 1000 out of range 1583..9999 [2] No/garbage arguments give a usage error (exit 2): $ colitur colitur: usage: colitur easter | colitur temporal | colitur day [2] The EF temporal cycle for a year, one line per day: $ colitur temporal 2026 | head -3 2026-01-01 thursday christmastide - ef-circumcision class-1 white 2026-01-02 friday christmastide - ef-christmas-1-friday class-4 white 2026-01-03 saturday christmastide - ef-christmas-1-saturday class-4 white $ colitur temporal 2026 | wc -l 365 $ colitur temporal 2026 | grep -c '^2026-04-05 ' 1 $ colitur temporal 2026 | grep '^2026-04-05 ' 2026-04-05 sunday paschaltide 1 ef-easter-sunday class-1 white A year outside the supported domain is rejected (exit 2): $ colitur temporal 1000 colitur: year 1000 out of range 1583..9999 [2] The resolved EF calendar for a year (Task 11) -- temporal AND sanctoral, occurrence and transfers applied: one line per civil-year day, "YYYY-MM-DD weekday season week slug rank colour [+commemoration-slug]...". $ colitur day 2026 | wc -l 365 Easter is the observed day exactly once, and carries no commemoration (an impeded I class day admits at most one PRIVILEGED commemoration, RG 111, and nothing outranks Easter to be impeded by it in the first place): $ colitur day 2026 | grep -c '^2026-04-05 ' 1 $ colitur day 2026 | grep '^2026-04-05 ' 2026-04-05 sunday paschaltide 1 ef-easter-sunday class-1 white Ash Wednesday: I class (RG 91 entry 7), violet, no numbered week (it falls 4 days before Lent I's own origin -- rite_ef/temporal_ef.ml's [week]): $ colitur day 2026 | grep '^2026-02-18 ' 2026-02-18 wednesday lent - ef-ash-wednesday class-1 violet Christmas: I class, white (RG 91 entry 1): $ colitur day 2026 | grep '^2026-12-25 ' 2026-12-25 friday christmastide - ef-nativity class-1 white All Souls (2 Nov, RG 91 entry 8) end to end: 2 Nov 2025 is a Sunday (verified independently -- 1 Jan 2025 is a Wednesday, day-of-year 306, (3+305) mod 7 = 0 = Sunday), so entry 8 yields to it (still an ordinary II-class Sunday, "sunday" in season time-after-pentecost, colour green -- the week number itself is not re-asserted here, already covered by test_temporal_ef.ml); RG 95 then transfers All Souls (I class, not a Sunday, not a vigil) and RG 96 places it on 3 Nov, the next day that is not I or II class: $ colitur day 2025 | grep -c 'commemoration-of-all-souls' 1 $ colitur day 2025 | grep '^2025-11-02 ' | sed -E 's/ [0-9]+ ef-time-after-pentecost-sunday-[0-9]+ / ef-time-after-pentecost-sunday- /' 2025-11-02 sunday time-after-pentecost ef-time-after-pentecost-sunday- class-2 green $ colitur day 2025 | grep '^2025-11-03 ' 2025-11-03 monday time-after-pentecost 21 commemoration-of-all-souls class-1 black (week 21: Pentecost 2025 is 8 June (colitur easter 2025); 8 Jun - 3 Nov is 148 days, floor_div(148, 7) = 21 -- rite_ef/temporal_ef.ml's own [week] formula, hand-verified before promoting this line, not merely printed and trusted.) All Souls observed directly on 2 Nov in a year where it does not fall on a Sunday: 2 Nov 2026 is a Monday (1 Jan 2026 is a Thursday, same day-of-year 306 offset, (4+305) mod 7 = 1 = Monday): $ colitur day 2026 | grep -c 'commemoration-of-all-souls' 1 $ colitur day 2026 | grep '^2026-11-02 ' 2026-11-02 monday time-after-pentecost 23 commemoration-of-all-souls class-1 black (week 23: Pentecost 2026 is 24 May (colitur easter 2026); 24 May - 2 Nov is 162 days, floor_div(162, 7) = 23 -- same formula, same independent check.) RG 96's Annunciation exception (25 March) is CONDITIONAL, not unconditional -- fix round 1, coordinator review, register corrected 2026-08-12. In 2057, 25 March is Lent III Sunday (I class, impedes it); 26 March is an ordinary Lent feria (III class, well before Easter, 22 April 2057), so the GENERAL RG 96 target -- not the Monday after Low Sunday -- is what governs, since the general walk never crosses Easter. Before this fix the unconditional reading sent it to 30 April (Easter + 8) instead: $ colitur day 2057 | grep '^2057-03-26 ' 2057-03-26 monday lent 3 annunciation-of-the-blessed-virgin-mary class-1 white +ef-lent-3-monday $ colitur day 2057 | grep -c 'annunciation-of-the-blessed-virgin-mary' 1 A year outside the supported domain is rejected (exit 2): $ colitur day 1000 colitur: year 1000 out of range 1583..9999 [2]