Files
vu/src/data/calendar/sanctoral-calendar.yml
T
will f7af1e7cbf
Deploy / deploy (push) Successful in 1m6s
Add November sanctoral content (5 saints/feasts)
St. Charles Borromeo (11-04), the Octave Day of All Saints (11-08,
own real Cyprian/Augustine Nocturn 2-3 content, collect reused from
All Saints via cross-id propers), St. Albert the Great (11-15),
St. Gertrude (11-16), St. Felix of Valois (11-20). All Souls' Day
(11-02) deliberately skipped -- a Requiem office, not a normal
saint's office, a genuine mechanism gap.

Several new fixed-date Duplex+ saints displaced existing test
fixtures that had assumed particular dates were clean/ferial/
plain-Sunday: prime.test.ts's MONDAY constant, weekday.test.ts's
clean-Sunday case, and day-label.test.ts's post-Epiphany-overflow
and open-octave-day cases. Fixed by finding genuinely clean
alternate dates/years, never by weakening assertions.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 17:49:06 -04:00

476 lines
22 KiB
YAML

# Maps a calendar day (MM-DD — the sanctoral cycle repeats every civil year
# regardless of weekday, unlike the temporal cycle) to the saint-id(s)
# celebrated that day. This indirection is the whole point: to move a saint
# to a different day, edit this mapping. The saint's own record
# (data/calendar/saints/<id>.yml) never changes — it's the same record
# whichever day points at it.
#
# A small, growable subset, not a full year — see the plan discussion this
# came out of. Each entry's rank is verified directly against Divinum
# Officium (see the saint's own file for which one) rather than
# reconstructed from memory, unlike data/calendar/temporal-categories.yml's
# privileged-day lists. `example-confessor` is deliberately NOT mapped to
# any day here — it's fictional, kept only to document the record shape.
days:
# January — first month of the pre-1955 pull (see the saint files' own
# comments for source/verification detail per entry). Deliberately
# excludes: pure octave-continuation days (In Octava S. Stephani, the
# several "die infra Octavam Epiphaniae" days, etc. — not sanctoral,
# out of scope per the Non-goals discussion) and fixed-date feasts of
# the Lord/BMV (Circumcision Jan 1, Epiphany Jan 6 — temporal, not
# sanctoral, and not modeled by this app at all yet, a separate gap).
"01-05": [st-telesphorus]
"01-11": [st-hyginus]
"01-14": [st-hilary-of-poitiers, st-felix-presbyter]
"01-15": [st-maurus-abbot]
"01-16": [st-marcellus-i]
"01-17": [st-anthony-abbot]
"01-18": [chair-of-st-peter-at-rome, st-prisca]
"01-19": [st-paul-the-hermit, ss-marius-martha-audifax-and-abachum]
"01-20": [ss-fabian-and-sebastian]
"01-21": [st-agnes]
"01-22": [ss-vincent-and-anastasius]
"01-23": [st-emerentiana]
"01-24": [st-timothy]
"01-25": [conversion-of-st-paul]
"01-26": [st-polycarp]
"01-27": [st-john-chrysostom]
"01-28": [st-agnes-secunda]
"01-29": [st-francis-de-sales]
"01-30": [st-martina]
"01-31": [st-john-bosco]
# February — 2/12 of the pre-1955 pull. Same exclusions as January (pure
# octave/temporal continuations, fixed Lord/BVM feasts: Purification
# Feb 2), plus two new ones found this month: the generic, non-saint
# "Sanctae Mariae Sabbato" Saturday votive (Feb 3, whenever that date
# falls on a Saturday — St. Blaise's own record ignores it, see his
# file), and Feb 29's leap-year redirect of the Vigil of St. Matthias
# (a real but not-yet-modeled leap-day date-shift, see st-matthias.yml).
"02-01": [st-ignatius-of-antioch]
"02-02": [purification]
"02-03": [st-blaise]
"02-04": [st-andrew-corsini]
"02-05": [st-agatha]
"02-06": [st-dorothea]
"02-07": [st-romuald]
"02-08": [st-john-of-matha]
"02-09": [st-apollonia]
"02-10": [st-scholastica]
"02-11": [apparition-of-the-immaculate-bvm]
"02-12": [ss-seven-founders-of-the-servite-order]
"02-14": [st-valentine]
"02-15": [ss-faustinus-and-jovita]
"02-18": [st-simeon]
"02-22": [chair-of-st-peter-at-antioch]
"02-23": [vigil-of-st-matthias]
"02-24": [st-matthias]
"02-27": [st-gabriel-of-our-lady-of-sorrows]
# March — 3/12 of the pre-1955 pull. Same exclusions as before (fixed
# BVM feast: Annunciation Mar 25). St. Benedict's own day (Mar 21,
# Duplex I. classis, the highest rank in this set so far) has no
# unique propers in the source at all — see st-benedict.yml.
"03-04": [st-lucius-i]
"03-06": [ss-perpetua-and-felicity]
"03-07": [st-thomas-aquinas]
"03-08": [st-john-of-god]
"03-09": [st-frances-of-rome]
"03-10": [forty-holy-martyrs]
"03-12": [st-gregory-the-great]
"03-17": [st-patrick]
"03-18": [st-cyril-of-jerusalem]
"03-19": [st-joseph]
"03-21": [st-benedict]
"03-24": [st-gabriel-archangel]
"03-25": [annunciation]
"03-27": [st-john-damascene]
"03-28": [st-john-capistrano]
# April — 4/12 of the pre-1955 pull. St. Robert/St. Catherine of Siena
# (Apr 29) is a genuine monastic-calendar reassignment, not a mistake —
# see st-robert.yml. St. Francis of Paola's native date (Apr 2) often
# transfers due to Holy Week; that's the existing transfer machinery,
# not something recorded specially here.
"04-02": [st-francis-of-paola]
"04-04": [st-isidore-of-seville]
"04-05": [st-vincent-ferrer]
"04-11": [st-leo-i]
"04-13": [st-hermenegild]
"04-14": [ss-tiburtius-valerian-and-maximus]
"04-17": [st-anicetus]
"04-21": [st-anselm]
"04-22": [ss-soter-and-caius]
"04-23": [st-george]
"04-24": [st-fidelis-of-sigmaringen]
"04-25": [st-mark]
"04-27": [st-peter-canisius]
"04-26": [ss-cletus-and-marcellinus]
"04-28": [st-vitalis]
"04-29": [st-robert, st-catherine-of-siena]
"04-30": [st-peter-martyr]
# May — 5/12 of the pre-1955 pull. Movable feasts (Ascension, Trinity
# Sunday, Corpus Christi) are skipped as primary, since they're
# temporal, not sanctoral. The Finding of the Holy Cross (May 3) was
# also excluded here at first as "a fixed feast of the Lord, not
# modeled" — wrong, corrected 2026-08 (see finding-of-the-holy-cross.yml)
# — she has real, complete content and now wins the day outright, which
# is exactly what her competitor Ss. Alexander/Eventius/Theodulus/
# Juvenal's own file already documented as the live-verified reality
# ("loses the day to the Finding of the Holy Cross... this isn't just
# an artifact of the specific year checked"). St. Pudentiana is the
# remaining genuinely un-winnable stub this month — see her own file.
"05-01": [ss-philip-and-james]
"05-02": [st-athanasius]
"05-03": [finding-of-the-holy-cross, ss-alexander-eventius-theodulus-and-juvenal]
"05-04": [st-monica]
"05-05": [st-pius-v]
"05-06": [st-john-before-the-latin-gate]
"05-07": [st-stanislaus]
"05-08": [apparition-of-st-michael]
"05-09": [st-gregory-nazianzen]
"05-10": [st-antoninus]
"05-12": [ss-nereus-achilleus-domitilla-and-pancras]
"05-13": [st-robert-bellarmine]
"05-14": [st-boniface]
"05-15": [st-john-baptist-de-la-salle]
"05-16": [st-ubald]
"05-17": [st-paschal-baylon]
"05-18": [st-venantius]
"05-19": [st-peter-celestine, st-pudentiana]
"05-20": [st-bernardine-of-siena]
"05-22": [st-romanus-abbot]
"05-23": [st-john-baptist-de-rossi]
"05-25": [st-urban-i]
"05-26": [st-eleutherius]
"05-27": [st-john-i]
"05-28": [st-augustine-of-canterbury]
"05-29": [st-mary-magdalene-de-pazzi]
"05-30": [st-felix-i]
"05-31": [queenship-of-the-bvm]
# June — 6/12 of the pre-1955 pull. No stubs this month — every
# candidate resolved to a real, independently-winnable saint (even the
# two normally blocked by the generic Saturday-of-Mary votive). 06-27
# (the 4th day of St. John the Baptist's octave) is a pure temporal
# continuation with no named secondary saint, so it's excluded, same as
# every other octave-continuation day this pull has skipped. (A
# "06-28": [st-leo-ii] entry from that original pull was a wrong-date
# artifact -- his own vita text mentions his burial "upon the 28th day
# of June," but his real liturgical feast day, per
# web/www/horas/Latin/Sancti/07-03.txt, is July 3; removed here now
# that he's properly authored there, same class of fix as St.
# Apollinaris's wrong-date artifact noted in
# tests/calendar/july-sanctoral.test.ts.)
"06-01": [st-angela-merici]
"06-02": [ss-marcellinus-peter-and-erasmus]
"06-04": [st-francis-caracciolo]
"06-05": [st-boniface-of-mainz]
"06-06": [st-norbert]
"06-09": [ss-primus-and-felicianus]
"06-10": [st-margaret-of-scotland]
"06-11": [st-barnabas]
"06-12": [ss-basilides-cyrinus-nabor-and-nazarius]
"06-13": [st-anthony-of-padua]
"06-14": [st-basil-the-great]
"06-15": [ss-vitus-modestus-and-crescentia]
"06-18": [ss-mark-and-marcellian]
"06-19": [ss-gervase-and-protase]
"06-20": [st-silverius]
"06-21": [st-aloysius-gonzaga]
"06-22": [st-paulinus-of-nola]
"06-23": [vigil-of-st-john-the-baptist]
"06-24": [nativity-of-st-john-the-baptist]
"06-25": [st-william-abbot]
"06-26": [ss-john-and-paul]
"06-29": [ss-peter-and-paul]
"06-30": [commemoration-of-st-paul]
# July — 7/12 of the pre-1955 pull. Five stubs this month, all
# genuinely unwinnable — see their own files for which fixed-date
# competitor blocks each. Separately, the full-year sanctoral import
# (see vu-sanctoral-sweep-progress memory) added 07-01 through 07-08
# and 07-15/07-16/07-19/07-31 — previously excluded entirely under a
# stale "pure octave-continuation label, no independently named
# saint" note, which was wrong for these dates: each has real,
# complete own content (the Most Precious Blood and the Visitation
# of the BVM are fully proper Duplex-class feasts of their own; the
# Octave Day of Ss. Peter and Paul, July 6, likewise has real proper
# content even though it's an octave day). The remaining days within
# those two octaves (July 4, 7, 9) genuinely are bare
# octave-continuation with no independent content, and stay excluded.
"07-01": [most-precious-blood]
"07-02": [visitation-of-the-bvm]
"07-03": [st-leo-ii]
"07-05": [st-anthony-mary-zaccaria]
"07-06": [octave-of-ss-peter-and-paul]
"07-07": [ss-cyril-and-methodius]
"07-08": [st-elizabeth-of-portugal]
"07-10": [ss-seven-brothers-rufina-and-secunda]
"07-11": [st-pius-i]
"07-12": [st-john-gualbert, ss-nabor-and-felix]
"07-13": [st-anacletus]
"07-14": [st-bonaventure]
"07-15": [st-henry]
"07-16": [our-lady-of-mount-carmel]
"07-17": [st-alexius]
"07-18": [ss-symphorosa-and-seven-sons]
"07-19": [st-vincent-de-paul]
"07-20": [st-margaret-of-antioch]
"07-21": [st-praxedes]
"07-22": [st-mary-magdalene]
"07-23": [st-apollinaris, st-liborius]
"07-24": [vigil-of-st-james, st-christina]
"07-25": [st-james-the-greater, st-christopher]
"07-26": [st-anne]
"07-27": [st-pantaleon]
"07-28": [ss-nazarius-celsus-victor-and-innocent]
"07-29": [st-martha, ss-felix-simplicius-faustinus-and-beatrix]
"07-30": [ss-abdon-and-sennen]
"07-31": [st-ignatius-of-loyola]
# August — 8/12 of the pre-1955 pull. Four pre-existing entries from
# before this pull initiative (vigil-of-st-lawrence, st-lawrence,
# assumption, st-augustine) got their propers backfilled this month; see
# their own files. A genuinely new wrinkle this month: several dates
# have a real, named secondary saint permanently subordinate to a
# fixed, non-movable *octave* day (Lawrence's own Aug 10-17 octave, the
# Assumption's Aug 15-22 octave) -- octaves aren't modeled by this app
# (a known, explicitly deferred gap; see "Octave content" in TODO.md),
# so unlike the "genuinely unwinnable stub" pattern used elsewhere
# (where both competitors ARE modeled and the engine can correctly show
# the subordination), these can't be represented without incorrectly
# letting them win outright. Excluded entirely rather than guessed at:
# Ss. Tiburtius and Susanna (Aug 11), St. Clare (Aug 12 -- notable: a
# genuinely major saint, not an obscure one, caught by this same gap),
# Ss. Hippolytus and Cassian (Aug 13), St. Agapitus (Aug 18), Ss.
# Timothy/Hippolytus/Symphorian (Aug 22). Our Lady of the Snows (Aug 5)
# and the Transfiguration (Aug 6) were also excluded here at first,
# each under a stale "fixed BVM/Lord feast, not modeled" note -- wrong,
# corrected 2026-08: both have real, complete content, and this app
# already models three other fixed BVM feasts the same way (assumption,
# immaculate-conception, nativity-bvm) -- see our-lady-of-the-snows.yml
# and transfiguration.yml's own headers. Added below. Ss.
# Xystus/Felicissimus/Agapitus, formerly excluded here as subordinate
# to an unmodeled Transfiguration, are still excluded -- now blocked by
# the same real octave/subordination-rendering gap as St. Clare et al.
# above, not by the Transfiguration itself being unmodeled.
"08-01": [st-peter-ad-vincula, ss-machabees]
"08-02": [st-stephen-i]
"08-03": [finding-of-st-stephen]
"08-04": [st-dominic]
"08-05": [our-lady-of-the-snows]
"08-06": [transfiguration]
"08-07": [st-donatus]
"08-08": [ss-cyriacus-largus-and-smaragdus]
"08-09": [vigil-of-st-lawrence, st-romanus]
"08-10": [st-lawrence]
"08-11": [ss-tiburtius-and-susanna]
"08-12": [st-clare]
"08-13": [ss-hippolytus-and-cassian]
"08-14": [vigil-of-the-assumption]
"08-15": [assumption]
"08-16": [st-joachim]
"08-17": [st-hyacinth]
"08-19": [st-john-eudes]
"08-20": [st-bernard]
"08-21": [st-jane-frances-de-chantal]
"08-22": [immaculate-heart-of-mary]
"08-23": [vigil-of-st-bartholomew]
"08-24": [st-bartholomew]
"08-25": [st-louis]
"08-26": [st-zephyrinus]
"08-27": [st-joseph-calasanctius]
"08-28": [st-augustine, st-hermes]
"08-29": [decollation-of-st-john-baptist, st-sabina]
"08-30": [ss-felix-and-adauctus]
"08-31": [st-raymond-nonnatus]
# September — 9/12 of the pre-1955 pull. Same octave-gap exclusions as
# August, this time around the Nativity of the BVM's own Sep 8-15
# octave: Ss. Gorgonius (Sep 9) and Nicomedes (Sep 15, the octave's own
# final day, also now the Seven Sorrows of the BVM's own fixed day)
# are real named secondaries still excluded for the same reason St.
# Clare was in August. Ss. Protus and Hyacinth (Sep 11) were also
# excluded here at first under that same reasoning -- wrong, corrected
# 2026-08 alongside the rest of the full-year sanctoral import (see
# ss-protus-and-hyacinth.yml): the octave-window exclusion was never a
# real rule, just an earlier gatekeeping habit this app has since moved
# away from (see vu-feedback-import-available-content memory). St.
# Hadrian (Sep 8) is the one exception -- he's blocked by the
# Nativity's own day, not its octave, and that day IS already a mapped
# sanctoral entry, so the ordinary collision engine handles him
# correctly. The Exaltation of the Holy Cross (Sep 14) was also
# excluded here at first, same "fixed feast of the Lord" reasoning as
# the Finding of the Holy Cross -- wrong, corrected 2026-08 alongside
# it (see exaltation-of-the-holy-cross.yml). St. Nicholas of Tolentino
# (Sep 10) and St. Januarius (Sep 19)
# are both monastic-calendar-specific: the former overrides what the
# base Tridentine table treats as a plain Nativity-octave continuation,
# the latter is added outright, present in neither the base table nor
# (for Nicholas) its own octave slot.
#
# The pre-existing "09-29": [st-michael] mapping below (added before
# this pull initiative, sourced from the raw Sancti/09-29.txt file
# directly rather than a live query) does not appear to hold in this
# pull's actual target track -- a live kalendar check across 6 different
# years (2025-2030) shows nothing at all on Sep 29 in "Monastic
# Tridentinum 1617" (not even a commemoration), and that file's own
# [Rank] block has no untagged/default entry for this date, only
# rubric-tagged alternates (tridentina, cisterciensis). The already-
# correctly-pulled May 8 Apparition of St. Michael (see
# apparition-of-st-michael.yml) may be this tradition's only real
# Michaelmas. Kept mapped here anyway as a deliberate, informed
# simplification (explicit user decision, 2026-08), not an oversight --
# see st-michael.yml.
"09-01": [st-giles, ss-twelve-brothers]
"09-02": [st-stephen-of-hungary]
"09-03": [st-pius-x]
"09-05": [st-lawrence-justinian]
"09-08": [nativity-bvm, st-hadrian]
"09-10": [st-nicholas-of-tolentino]
"09-11": [ss-protus-and-hyacinth]
"09-12": [holy-name-of-mary]
"09-14": [exaltation-of-the-holy-cross]
"09-15": [seven-sorrows-of-the-bvm]
"09-16": [ss-cornelius-and-cyprian, ss-euphemia-lucia-and-geminianus]
"09-17": [stigmata-of-st-francis]
"09-18": [st-joseph-of-cupertino]
"09-19": [st-januarius]
"09-20": [vigil-of-st-matthew]
"09-21": [st-matthew]
"09-22": [ss-maurice-and-companions]
"09-23": [st-linus, st-thecla]
"09-24": [our-lady-of-ransom]
"09-26": [ss-cyprian-and-justina]
"09-27": [ss-cosmas-and-damian]
"09-28": [st-wenceslaus]
"09-29": [st-michael]
"09-30": [st-jerome]
# October — 10/12 of the pre-1955 pull. Three monastic-calendar-specific
# finds this month, all absent from or overriding the base Tridentine
# table: Ss. Placid and Companions (Oct 5, St. Benedict's own famous
# disciple, a high-rank addition), St. Justina (Oct 7, reassigns what
# the base table gives to St. Marcus, Pope -- see st-justina.yml/
# st-marcus.yml), and St. Gall (Oct 16, founder of St. Gallen). No
# octave-gap exclusions this month.
"10-01": [st-remigius]
"10-02": [guardian-angels]
"10-03": [st-therese-of-lisieux]
"10-04": [st-francis]
"10-05": [ss-placid-and-companions]
"10-06": [st-bruno]
"10-07": [st-justina, st-marcus]
"10-08": [st-bridget-of-sweden]
"10-09": [ss-dionysius-and-companions]
"10-10": [st-francis-borgia]
"10-11": [maternity-of-the-bvm]
"10-13": [st-edward-king]
"10-14": [st-callistus]
"10-15": [st-teresa-of-avila]
"10-16": [st-gall]
"10-17": [st-margaret-mary-alacoque]
"10-18": [st-luke]
"10-19": [st-peter-of-alcantara]
"10-20": [st-john-cantius]
"10-21": [st-hilarion, ss-ursula-and-companions]
"10-24": [st-raphael-archangel]
"10-25": [ss-chrysanthus-and-daria]
"10-26": [st-evaristus]
"10-27": [vigil-of-ss-simon-and-jude]
"10-28": [ss-simon-and-jude]
"10-31": [vigil-of-all-saints]
# November — 11/12 of the pre-1955 pull. All Saints' own propers were
# backfilled this month (see all-saints-collect.yml). New exclusion
# categories this month: All Souls' Day (Nov 2) is a fundamentally
# different liturgical genre -- the Office of the Dead, not a saint's
# feast at all, no Common-of-Saints structure to fall back on -- out of
# scope the same way this app doesn't model the Requiem/funeral rite
# anywhere else. Nov 3-7 are pure All-Saints-octave continuations (no
# named saint). Ss. Four Crowned Martyrs (Nov 8, the octave's own final
# day) hit the same unmodeled-octave gap as several saints in August/
# September. The Dedication of the Basilica of the Most Holy Savior
# (Nov 9, i.e. the Lateran) and the Presentation of the BVM (Nov 21,
# itself a monastic-calendar-only addition) were also excluded here at
# first, each under a stale "fixed Lord's/BVM feast, not modeled" note
# -- wrong, corrected 2026-08: both have real, complete content -- see
# dedication-of-the-basilica-of-the-most-holy-savior.yml and
# presentation-of-the-bvm.yml's own headers. Added below. Its
# secondary, St. Theodore, is still excluded -- now blocked by the same
# real octave/subordination-rendering gap as St. Clare et al. in
# August, not by the Dedication itself being unmodeled (her own
# embedded `[Commemoratio 5]` block even carries St. Theodore's real
# collect already, ready to use once that mechanism exists). The
# Nov 18 Dedication of the Basilicas of Ss. Peter and Paul was already
# kept in scope (it's about the Apostles, not the Lord), same as the
# Commemoration of St. Paul and the two Chair-of-Peter feasts.
#
# Three monastic-calendar-specific reassignments this month, the most
# of any month so far: St. Emilian (Nov 12) displaces St. Martin I,
# Pope, who moves to Nov 14; St. Odo (Nov 19) is added outright,
# demoting St. Pontian; St. Silvester, Abbot (Nov 26) displaces St.
# Peter of Alexandria. Plus All Saints of the Benedictine Order (Nov
# 13, Duplex II. classis) -- absent from the base table entirely, one
# of the highest-ranked monastic-only additions in this whole pull.
#
# Also notable: St. Clement (Nov 23) transferring forward into St.
# Chrysogonus's day (Nov 24) whenever Nov 23 falls on a Sunday is this
# pull's first *single-day* transfer-plus-collision case (unlike
# August's Finding-of-St.-Stephen situation, which needed an unmodeled
# multi-day skip) -- this app's existing transfer machinery handles it
# correctly; see tests/calendar/november-sanctoral.test.ts.
"11-01": [all-saints]
# Nov 2 (All Souls' Day) deliberately excluded from this full-year
# sanctoral sweep: it's a Requiem office (own psalms, no Te Deum,
# three full nocturns of Job readings), not a normal saint's office
# -- a genuine mechanism gap, not an oversight. See
# vu-sanctoral-sweep-progress memory.
"11-04": [st-charles-borromeo]
"11-08": [octave-of-all-saints]
"11-09": [dedication-of-the-basilica-of-the-most-holy-savior]
"11-10": [ss-tryphon-and-companions]
"11-11": [st-martin-of-tours, st-menna]
"11-12": [st-emilian]
"11-13": [all-saints-of-the-benedictine-order]
"11-14": [st-martin-i]
"11-15": [st-albert-the-great]
"11-16": [st-gertrude]
"11-17": [st-gregory-thaumaturgus]
"11-18": [dedication-of-the-basilicas-of-ss-peter-and-paul]
"11-19": [st-odo, st-pontian]
"11-20": [st-felix-of-valois]
"11-21": [presentation-of-the-bvm]
"11-22": [st-cecilia]
"11-23": [st-clement, st-felicitas]
"11-24": [st-chrysogonus]
"11-25": [st-catherine]
"11-26": [st-silvester-abbot, st-peter-of-alexandria]
"11-29": [vigil-of-st-andrew, st-saturninus]
"11-30": [st-andrew]
# December — 12/12, the final month of the pre-1955 pull. Every
# non-excluded date this month falls within a season this app now
# models as `privileged-feria-minor` (Advent through Dec 20, Christmas's
# own Octave from Dec 26) -- this month's own pull is what surfaced and
# verified that temporal-category fix (see calendar/types.ts and this
# repo's commit history). Immaculate Conception's own propers were
# backfilled this month. Excluded: Dec 24 (Vigil of Christmas) and Dec
# 25 (Christmas itself) aren't sanctoral entries at all -- Christmas is
# a fixed-date temporal anchor (see data/calendar/fixed-date-
# calendar.yml) and its Vigil is a distinct privileged-feria-major
# temporal category, neither modeled as a saint. St. Eusebius of
# Vercelli (Dec 15) is a monastic-calendar-specific placement, reached
# via a same-day redirect notation in M1617.txt rather than a plain
# date entry. The Vigil of St. Thomas (Dec 20) always lands on Advent's
# Ember Saturday -- a known Mass-vs-Office simplification, same pattern
# as September's Vigil of St. Matthew.
"12-02": [st-bibiana]
"12-04": [st-barbara]
"12-05": [st-sabbas]
"12-06": [st-nicholas]
"12-07": [st-ambrose]
"12-08": [immaculate-conception]
"12-10": [st-melchiades]
"12-11": [st-damasus]
"12-13": [st-lucy]
"12-15": [st-eusebius-of-vercelli]
"12-20": [vigil-of-st-thomas]
"12-21": [st-thomas-apostle]
"12-26": [st-stephen-protomartyr]
"12-27": [st-john-apostle]
"12-28": [holy-innocents]
"12-29": [st-thomas-becket]
"12-31": [st-silvester-i]