aboutsummaryrefslogtreecommitdiff
path: root/internal/caldata
diff options
context:
space:
mode:
Diffstat (limited to 'internal/caldata')
-rw-r--r--internal/caldata/readings.go34
-rw-r--r--internal/caldata/tridentine-lectionary.ini11
2 files changed, 45 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"},
+ }
+}
diff --git a/internal/caldata/tridentine-lectionary.ini b/internal/caldata/tridentine-lectionary.ini
index ff39604..9190941 100644
--- a/internal/caldata/tridentine-lectionary.ini
+++ b/internal/caldata/tridentine-lectionary.ini
@@ -601,3 +601,14 @@ gospel = John 18:1-40; 19:1-42
[ef-passiontide-2-saturday]
first = Col 3:1-4
gospel = Matt 28:1-7
+
+; The Most Holy Name of Jesus (RG 17(a)), both shapes -- the Sunday falling
+; 2-5 January and, in the years when no Sunday does, 2 January itself.
+; Citations verified by colitur against both photographic scans.
+[ef-holy-name-sunday]
+first = Acts 4:8-12
+gospel = Luke 2:21
+
+[ef-holy-name]
+first = Acts 4:8-12
+gospel = Luke 2:21