aboutsummaryrefslogtreecommitdiff
path: root/internal/caldata/readings.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/caldata/readings.go')
-rw-r--r--internal/caldata/readings.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/internal/caldata/readings.go b/internal/caldata/readings.go
index 44d1bc1..d082e26 100644
--- a/internal/caldata/readings.go
+++ b/internal/caldata/readings.go
@@ -63,6 +63,9 @@ func Readings(sel calendar.Selection, layers []calendar.Layer, date time.Time, d
if r := efNativityOctaveReadings(day); len(r) > 0 {
return r
}
+ if r := efEpiphanytideOpeningReadings(day); len(r) > 0 {
+ return r
+ }
if r := TemporalReadings("old", day.Observed.Slug); len(r) > 0 {
return r
}
@@ -188,3 +191,34 @@ func efNativityOctaveReadings(day calendar.LiturgicalDay) []calendar.Reading {
{Part: "gospel", Citation: "Luke 2:15-20"},
}
}
+
+// efEpiphanytideOpeningReadings returns the Mass of a FERIAL day from 2 to 5
+// January.
+//
+// The Missal's rubric at the Most Holy Name of Jesus says so directly:
+// "Diebus ferialibus a 2 ad 5 ianuarii Missa dicitur ut die 1 ianuarii" -- on
+// the ferial days from the 2nd to the 5th of January, the Mass of 1 January
+// (the Circumcision) is said. Titus 2:11-15 / Luke 2:21.
+//
+// Without this the days fell back through the walk-back to the Sunday within
+// the Octave of the Nativity and read Gal 4:1-7 instead.
+//
+// FERIAL days only, which excludes two things on purpose. The Sunday in that
+// window carries the Holy Name (RG 17(a)) and has its own Mass; and an
+// otherwise-unoccupied Saturday carries Our Lady's office (RG 78) and hers,
+// which is why the BVM check runs before this one and why 3 January 2026 --
+// a Saturday -- correctly reads Titus 3:4-7 rather than 2:11-15.
+func efEpiphanytideOpeningReadings(day calendar.LiturgicalDay) []calendar.Reading {
+ if day.Date.Month() != time.January || day.Date.Day() < 2 || day.Date.Day() > 5 {
+ return nil
+ }
+ // The feria, not a feast or a Sunday that outranks it: the observed office
+ // must still be the temporal ferial one.
+ if !strings.HasPrefix(day.Observed.Slug, "ef-christmas-") || day.Weekday == time.Sunday {
+ return nil
+ }
+ return []calendar.Reading{
+ {Part: "first", Citation: "Titus 2:11-15"},
+ {Part: "gospel", Citation: "Luke 2:21"},
+ }
+}