summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/cli.t680
-rw-r--r--test/dune30
-rw-r--r--test/golden/grid-2027.html287
-rw-r--r--test/golden/grid-2027.ms1136
-rw-r--r--test/golden/grid-2027.tex174
-rw-r--r--test/golden/ordo-2027.adoc2365
-rw-r--r--test/golden/ordo-2027.html1859
-rw-r--r--test/golden/ordo-2027.md2122
-rw-r--r--test/golden/ordo-2027.ms3604
-rw-r--r--test/golden/ordo-2027.tex2737
-rw-r--r--test/golden/ordo-2027.txt1986
-rw-r--r--test/test_colitur.ml10
-rw-r--r--test/test_emit.ml203
-rw-r--r--test/test_escape.ml119
-rw-r--r--test/test_ics.ml143
-rw-r--r--test/test_render_golden.ml42
-rw-r--r--test/test_support.ml65
-rw-r--r--test/test_template.ml165
-rw-r--r--test/test_view.ml119
19 files changed, 17839 insertions, 7 deletions
diff --git a/test/cli.t b/test/cli.t
index 1d4df3a..80c8078 100644
--- a/test/cli.t
+++ b/test/cli.t
@@ -17,7 +17,7 @@ A year outside the supported domain is rejected (exit 2):
No/garbage arguments give a usage error (exit 2):
$ colitur
- colitur: usage: colitur easter <year> | colitur temporal <year> | colitur day <year> | colitur readings <year> | colitur check FILE | colitur new-overlay (try: colitur --help)
+ colitur: usage: colitur easter <year> | colitur temporal <year> | colitur day <year> | colitur readings <year> | colitur emit --format FMT --from Y --to Y | colitur table --year Y --template FILE | colitur render --template FILE --year Y | colitur publish --from Y --to Y --out DIR | colitur check FILE | colitur new-overlay (try: colitur --help)
[2]
The EF temporal cycle for a year, one line per day:
@@ -327,14 +327,14 @@ A flag needing a value, given none:
$ colitur day 2026 --overlay
colitur: --overlay needs a file path
- colitur: usage: colitur easter <year> | colitur temporal <year> | colitur day <year> | colitur readings <year> | colitur check FILE | colitur new-overlay (try: colitur --help)
+ colitur: usage: colitur easter <year> | colitur temporal <year> | colitur day <year> | colitur readings <year> | colitur emit --format FMT --from Y --to Y | colitur table --year Y --template FILE | colitur render --template FILE --year Y | colitur publish --from Y --to Y --out DIR | colitur check FILE | colitur new-overlay (try: colitur --help)
[2]
An unknown option is rejected rather than treated as a positional word:
$ colitur day 2026 --diocese
colitur: unknown option --diocese
- colitur: usage: colitur easter <year> | colitur temporal <year> | colitur day <year> | colitur readings <year> | colitur check FILE | colitur new-overlay (try: colitur --help)
+ colitur: usage: colitur easter <year> | colitur temporal <year> | colitur day <year> | colitur readings <year> | colitur emit --format FMT --from Y --to Y | colitur table --year Y --template FILE | colitur render --template FILE --year Y | colitur publish --from Y --to Y --out DIR | colitur check FILE | colitur new-overlay (try: colitur --help)
[2]
The shipped example overlay is runnable documentation, and it must actually
@@ -415,3 +415,677 @@ displaced silently.
$ colitur day 2026 --overlay ben.sexp | grep '^2026-03-21'
2026-03-21 saturday lent 4 transitus-of-our-holy-father-benedict class-1 white +ef-lent-4-saturday
+
+CSV emits a header and one row per day:
+
+ $ colitur emit --format csv --from 2027 --to 2027 | head -2
+ date,rite,season,week,slug,rank,colour,subject,name_la,name_en,first,gospel,comms
+ 2027-01-01,ef,christmastide,,ef-circumcision,class-1,white,temporal,,,Titus 2:11-15,Luke 2:21,
+
+ $ colitur emit --format csv --from 2027 --to 2027 | wc -l
+ 366
+
+JSON is one object, ICS one VCALENDAR:
+
+ $ colitur emit --format json --from 2027 --to 2027 | cut -c1-20
+ {"rite":"ef","year":
+
+ $ colitur emit --format ics --from 2027 --to 2027 | head -1 | cat -A | head -1
+ BEGIN:VCALENDAR^M$
+
+Two runs are byte-identical (no clock read anywhere):
+
+ $ colitur emit --format ics --from 2027 --to 2027 > /tmp/a.ics
+ $ colitur emit --format ics --from 2027 --to 2027 > /tmp/b.ics
+ $ cmp /tmp/a.ics /tmp/b.ics && echo identical
+ identical
+
+A multi-year range concatenates years in order, one header for the whole
+CSV run rather than one per year:
+
+ $ colitur emit --format csv --from 2027 --to 2028 | grep -c '^2028-'
+ 366
+
+ $ colitur emit --format csv --from 2027 --to 2028 | wc -l
+ 732
+
+sexp and xml are also available:
+
+ $ colitur emit --format sexp --from 2027 --to 2027 | wc -l
+ 8472
+
+ $ colitur emit --format xml --from 2027 --to 2027 | head -2
+ <?xml version="1.0" encoding="UTF-8"?>
+ <calendar rite="ef" year="2027">
+
+An unknown format is a usage error on stderr, exit 2:
+
+ $ colitur emit --format yaml --from 2027 --to 2027
+ colitur: unknown format "yaml" (want csv, json, sexp, xml or ics)
+ [2]
+
+--dtstamp is the only user string that reaches ICS output unescaped and
+unvalidated -- it must be exactly RFC 5545's UTC DATE-TIME form (8 digits,
+"T", 6 digits, "Z") or refused outright, rather than either silently
+emitting a malformed DTSTAMP or, worse, letting an embedded CRLF inject
+extra lines into every VEVENT:
+
+ $ colitur emit --format ics --from 2027 --to 2027 --dtstamp hello
+ colitur: --dtstamp "hello" is not RFC 5545 UTC form (want 8 digits, 'T', 6 digits, 'Z', e.g. 20270101T000000Z)
+ [2]
+
+ $ colitur emit --format ics --from 2027 --to 2027 --dtstamp "$(printf 'X\r\nBEGIN:VEVENT\r\nUID:evil')"
+ colitur: --dtstamp "X\r\nBEGIN:VEVENT\r\nUID:evil" is not RFC 5545 UTC form (want 8 digits, 'T', 6 digits, 'Z', e.g. 20270101T000000Z)
+ [2]
+
+A well-formed value is threaded through unchanged. (The events themselves
+end in CRLF per RFC 5545 -- match the substring, not a `$`-anchored full
+line, or a shell that does not mangle the trailing "\r" is doing the
+grep-anchor's job for it by accident.)
+
+ $ colitur emit --format ics --from 2027 --to 2027 --dtstamp 20270101T000000Z | grep -c 'DTSTAMP:20270101T000000Z'
+ 365
+
+emit refuses a reversed range rather than emitting nothing:
+
+ $ colitur emit --format csv --from 2028 --to 2027
+ colitur: --from 2028 is after --to 2027
+ [2]
+
+emit's own flags have no effect on the other commands, refused rather than
+silently ignored, the same discipline --overlay already gets:
+
+ $ colitur day 2027 --format csv
+ colitur: --format/--from/--to/--dtstamp have no effect on `day`; refusing rather than ignoring them
+ [2]
+
+day and readings are untouched:
+
+ $ colitur day 2027 | head -1
+ 2027-01-01 friday christmastide - ef-circumcision class-1 white
+
+ $ colitur readings 2027 | head -1
+ 2027-01-01 ef-circumcision | Titus 2:11-15 | Luke 2:21
+
+A minimal inline template renders -- table computes and renders in one
+process (2 January 2027 is a Saturday, not a Sunday, so Holy Name Sunday
+falls on the 3rd, not the 2nd, that year):
+
+ $ printf '{{#days}}{{iso}} {{slug}}\n{{/days}}' > /tmp/t.txt
+ $ colitur table --year 2027 --template /tmp/t.txt | head -2
+ 2027-01-01 ef-circumcision
+ 2027-01-02 ef-christmas-1-saturday
+
+render is the same operation under the name the design used:
+
+ $ colitur render --template /tmp/t.txt --year 2027 | head -2
+ 2027-01-01 ef-circumcision
+ 2027-01-02 ef-christmas-1-saturday
+
+Flavour is inferred from the extension and escapes data -- Sts. Peter &
+Paul (29 June) and its vigil are the only two 2035 entries whose English
+name needs LaTeX escaping:
+
+ $ printf '{{#days}}{{name.en}}\n{{/days}}' > /tmp/t.tex
+ $ colitur table --year 2035 --template /tmp/t.tex | grep -c 'Peter \\& Paul'
+ 2
+
+An unknown extension with no --flavour is an error, not a silent fallback:
+
+ $ printf 'x' > /tmp/t.wat
+ $ colitur table --year 2027 --template /tmp/t.wat
+ colitur: cannot infer a flavour from ".wat"; pass --flavour latex|groff|html|xml|ics|none
+ [2]
+
+ $ colitur table --year 2027 --template /tmp/t.wat --flavour none
+ x
+
+An unrecognised --flavour value is also an error naming the six valid ones:
+
+ $ colitur table --year 2027 --template /tmp/t.txt --flavour bogus
+ colitur: unknown flavour "bogus" (want latex, groff, html, xml, ics or none)
+ [2]
+
+A malformed template is a clear error, not a crash:
+
+ $ printf '{{#days}}oops' > /tmp/bad.txt
+ $ colitur table --year 2027 --template /tmp/bad.txt
+ colitur: template /tmp/bad.txt: unclosed section {{#days}}
+ [2]
+
+A missing template file is an error:
+
+ $ colitur table --year 2027 --template /tmp/nope.txt
+ colitur: cannot read template /tmp/nope.txt
+ [2]
+
+Pointing --template at a directory is an error, not a crash: the read
+itself is guarded, not only the open (F1, fix round 1). "." is used rather
+than a fixed /tmp path so this does not depend on anything outside the
+cram sandbox itself:
+
+ $ colitur table --year 2027 --template . --flavour none
+ colitur: cannot read template .: Sys_error("Value too large for defined data type")
+ [2]
+
+table and render both require --year and --template:
+
+ $ colitur table --year 2027
+ colitur: table requires --year YEAR and --template FILE
+ [2]
+
+ $ colitur render --template /tmp/t.txt
+ colitur: render requires --year YEAR and --template FILE
+ [2]
+
+table/render's own flags have no effect on the other commands, refused
+rather than silently ignored:
+
+ $ colitur emit --format csv --from 2027 --to 2027 --year 2028
+ colitur: --year/--template/--flavour have no effect on `emit`; refusing rather than ignoring them
+ [2]
+
+publish writes the documented tree (Task 12): the manifest itself
+(.colitur-manifest) is a real file `find` sees too, since it lives in the
+same directory as everything else it tracks. Every /tmp/pub* path below is
+cleared first, so this section is self-contained across repeat runs:
+
+ $ rm -rf /tmp/pub /tmp/pub1 /tmp/pub2 /tmp/pub3
+
+ $ colitur publish --from 2027 --to 2027 --out /tmp/pub >/dev/null
+ $ find /tmp/pub -type f | sed 's|/tmp/pub/||' | sort
+ .colitur-manifest
+ ef/2027.csv
+ ef/2027.ics
+ ef/2027.json
+ ef/2027.xml
+ ef/2027/01/01.json
+ ef/2027/01/02.json
+ ef/2027/01/03.json
+ ef/2027/01/04.json
+ ef/2027/01/05.json
+ ef/2027/01/06.json
+ ef/2027/01/07.json
+ ef/2027/01/08.json
+ ef/2027/01/09.json
+ ef/2027/01/10.json
+ ef/2027/01/11.json
+ ef/2027/01/12.json
+ ef/2027/01/13.json
+ ef/2027/01/14.json
+ ef/2027/01/15.json
+ ef/2027/01/16.json
+ ef/2027/01/17.json
+ ef/2027/01/18.json
+ ef/2027/01/19.json
+ ef/2027/01/20.json
+ ef/2027/01/21.json
+ ef/2027/01/22.json
+ ef/2027/01/23.json
+ ef/2027/01/24.json
+ ef/2027/01/25.json
+ ef/2027/01/26.json
+ ef/2027/01/27.json
+ ef/2027/01/28.json
+ ef/2027/01/29.json
+ ef/2027/01/30.json
+ ef/2027/01/31.json
+ ef/2027/02/01.json
+ ef/2027/02/02.json
+ ef/2027/02/03.json
+ ef/2027/02/04.json
+ ef/2027/02/05.json
+ ef/2027/02/06.json
+ ef/2027/02/07.json
+ ef/2027/02/08.json
+ ef/2027/02/09.json
+ ef/2027/02/10.json
+ ef/2027/02/11.json
+ ef/2027/02/12.json
+ ef/2027/02/13.json
+ ef/2027/02/14.json
+ ef/2027/02/15.json
+ ef/2027/02/16.json
+ ef/2027/02/17.json
+ ef/2027/02/18.json
+ ef/2027/02/19.json
+ ef/2027/02/20.json
+ ef/2027/02/21.json
+ ef/2027/02/22.json
+ ef/2027/02/23.json
+ ef/2027/02/24.json
+ ef/2027/02/25.json
+ ef/2027/02/26.json
+ ef/2027/02/27.json
+ ef/2027/02/28.json
+ ef/2027/03/01.json
+ ef/2027/03/02.json
+ ef/2027/03/03.json
+ ef/2027/03/04.json
+ ef/2027/03/05.json
+ ef/2027/03/06.json
+ ef/2027/03/07.json
+ ef/2027/03/08.json
+ ef/2027/03/09.json
+ ef/2027/03/10.json
+ ef/2027/03/11.json
+ ef/2027/03/12.json
+ ef/2027/03/13.json
+ ef/2027/03/14.json
+ ef/2027/03/15.json
+ ef/2027/03/16.json
+ ef/2027/03/17.json
+ ef/2027/03/18.json
+ ef/2027/03/19.json
+ ef/2027/03/20.json
+ ef/2027/03/21.json
+ ef/2027/03/22.json
+ ef/2027/03/23.json
+ ef/2027/03/24.json
+ ef/2027/03/25.json
+ ef/2027/03/26.json
+ ef/2027/03/27.json
+ ef/2027/03/28.json
+ ef/2027/03/29.json
+ ef/2027/03/30.json
+ ef/2027/03/31.json
+ ef/2027/04/01.json
+ ef/2027/04/02.json
+ ef/2027/04/03.json
+ ef/2027/04/04.json
+ ef/2027/04/05.json
+ ef/2027/04/06.json
+ ef/2027/04/07.json
+ ef/2027/04/08.json
+ ef/2027/04/09.json
+ ef/2027/04/10.json
+ ef/2027/04/11.json
+ ef/2027/04/12.json
+ ef/2027/04/13.json
+ ef/2027/04/14.json
+ ef/2027/04/15.json
+ ef/2027/04/16.json
+ ef/2027/04/17.json
+ ef/2027/04/18.json
+ ef/2027/04/19.json
+ ef/2027/04/20.json
+ ef/2027/04/21.json
+ ef/2027/04/22.json
+ ef/2027/04/23.json
+ ef/2027/04/24.json
+ ef/2027/04/25.json
+ ef/2027/04/26.json
+ ef/2027/04/27.json
+ ef/2027/04/28.json
+ ef/2027/04/29.json
+ ef/2027/04/30.json
+ ef/2027/05/01.json
+ ef/2027/05/02.json
+ ef/2027/05/03.json
+ ef/2027/05/04.json
+ ef/2027/05/05.json
+ ef/2027/05/06.json
+ ef/2027/05/07.json
+ ef/2027/05/08.json
+ ef/2027/05/09.json
+ ef/2027/05/10.json
+ ef/2027/05/11.json
+ ef/2027/05/12.json
+ ef/2027/05/13.json
+ ef/2027/05/14.json
+ ef/2027/05/15.json
+ ef/2027/05/16.json
+ ef/2027/05/17.json
+ ef/2027/05/18.json
+ ef/2027/05/19.json
+ ef/2027/05/20.json
+ ef/2027/05/21.json
+ ef/2027/05/22.json
+ ef/2027/05/23.json
+ ef/2027/05/24.json
+ ef/2027/05/25.json
+ ef/2027/05/26.json
+ ef/2027/05/27.json
+ ef/2027/05/28.json
+ ef/2027/05/29.json
+ ef/2027/05/30.json
+ ef/2027/05/31.json
+ ef/2027/06/01.json
+ ef/2027/06/02.json
+ ef/2027/06/03.json
+ ef/2027/06/04.json
+ ef/2027/06/05.json
+ ef/2027/06/06.json
+ ef/2027/06/07.json
+ ef/2027/06/08.json
+ ef/2027/06/09.json
+ ef/2027/06/10.json
+ ef/2027/06/11.json
+ ef/2027/06/12.json
+ ef/2027/06/13.json
+ ef/2027/06/14.json
+ ef/2027/06/15.json
+ ef/2027/06/16.json
+ ef/2027/06/17.json
+ ef/2027/06/18.json
+ ef/2027/06/19.json
+ ef/2027/06/20.json
+ ef/2027/06/21.json
+ ef/2027/06/22.json
+ ef/2027/06/23.json
+ ef/2027/06/24.json
+ ef/2027/06/25.json
+ ef/2027/06/26.json
+ ef/2027/06/27.json
+ ef/2027/06/28.json
+ ef/2027/06/29.json
+ ef/2027/06/30.json
+ ef/2027/07/01.json
+ ef/2027/07/02.json
+ ef/2027/07/03.json
+ ef/2027/07/04.json
+ ef/2027/07/05.json
+ ef/2027/07/06.json
+ ef/2027/07/07.json
+ ef/2027/07/08.json
+ ef/2027/07/09.json
+ ef/2027/07/10.json
+ ef/2027/07/11.json
+ ef/2027/07/12.json
+ ef/2027/07/13.json
+ ef/2027/07/14.json
+ ef/2027/07/15.json
+ ef/2027/07/16.json
+ ef/2027/07/17.json
+ ef/2027/07/18.json
+ ef/2027/07/19.json
+ ef/2027/07/20.json
+ ef/2027/07/21.json
+ ef/2027/07/22.json
+ ef/2027/07/23.json
+ ef/2027/07/24.json
+ ef/2027/07/25.json
+ ef/2027/07/26.json
+ ef/2027/07/27.json
+ ef/2027/07/28.json
+ ef/2027/07/29.json
+ ef/2027/07/30.json
+ ef/2027/07/31.json
+ ef/2027/08/01.json
+ ef/2027/08/02.json
+ ef/2027/08/03.json
+ ef/2027/08/04.json
+ ef/2027/08/05.json
+ ef/2027/08/06.json
+ ef/2027/08/07.json
+ ef/2027/08/08.json
+ ef/2027/08/09.json
+ ef/2027/08/10.json
+ ef/2027/08/11.json
+ ef/2027/08/12.json
+ ef/2027/08/13.json
+ ef/2027/08/14.json
+ ef/2027/08/15.json
+ ef/2027/08/16.json
+ ef/2027/08/17.json
+ ef/2027/08/18.json
+ ef/2027/08/19.json
+ ef/2027/08/20.json
+ ef/2027/08/21.json
+ ef/2027/08/22.json
+ ef/2027/08/23.json
+ ef/2027/08/24.json
+ ef/2027/08/25.json
+ ef/2027/08/26.json
+ ef/2027/08/27.json
+ ef/2027/08/28.json
+ ef/2027/08/29.json
+ ef/2027/08/30.json
+ ef/2027/08/31.json
+ ef/2027/09/01.json
+ ef/2027/09/02.json
+ ef/2027/09/03.json
+ ef/2027/09/04.json
+ ef/2027/09/05.json
+ ef/2027/09/06.json
+ ef/2027/09/07.json
+ ef/2027/09/08.json
+ ef/2027/09/09.json
+ ef/2027/09/10.json
+ ef/2027/09/11.json
+ ef/2027/09/12.json
+ ef/2027/09/13.json
+ ef/2027/09/14.json
+ ef/2027/09/15.json
+ ef/2027/09/16.json
+ ef/2027/09/17.json
+ ef/2027/09/18.json
+ ef/2027/09/19.json
+ ef/2027/09/20.json
+ ef/2027/09/21.json
+ ef/2027/09/22.json
+ ef/2027/09/23.json
+ ef/2027/09/24.json
+ ef/2027/09/25.json
+ ef/2027/09/26.json
+ ef/2027/09/27.json
+ ef/2027/09/28.json
+ ef/2027/09/29.json
+ ef/2027/09/30.json
+ ef/2027/10/01.json
+ ef/2027/10/02.json
+ ef/2027/10/03.json
+ ef/2027/10/04.json
+ ef/2027/10/05.json
+ ef/2027/10/06.json
+ ef/2027/10/07.json
+ ef/2027/10/08.json
+ ef/2027/10/09.json
+ ef/2027/10/10.json
+ ef/2027/10/11.json
+ ef/2027/10/12.json
+ ef/2027/10/13.json
+ ef/2027/10/14.json
+ ef/2027/10/15.json
+ ef/2027/10/16.json
+ ef/2027/10/17.json
+ ef/2027/10/18.json
+ ef/2027/10/19.json
+ ef/2027/10/20.json
+ ef/2027/10/21.json
+ ef/2027/10/22.json
+ ef/2027/10/23.json
+ ef/2027/10/24.json
+ ef/2027/10/25.json
+ ef/2027/10/26.json
+ ef/2027/10/27.json
+ ef/2027/10/28.json
+ ef/2027/10/29.json
+ ef/2027/10/30.json
+ ef/2027/10/31.json
+ ef/2027/11/01.json
+ ef/2027/11/02.json
+ ef/2027/11/03.json
+ ef/2027/11/04.json
+ ef/2027/11/05.json
+ ef/2027/11/06.json
+ ef/2027/11/07.json
+ ef/2027/11/08.json
+ ef/2027/11/09.json
+ ef/2027/11/10.json
+ ef/2027/11/11.json
+ ef/2027/11/12.json
+ ef/2027/11/13.json
+ ef/2027/11/14.json
+ ef/2027/11/15.json
+ ef/2027/11/16.json
+ ef/2027/11/17.json
+ ef/2027/11/18.json
+ ef/2027/11/19.json
+ ef/2027/11/20.json
+ ef/2027/11/21.json
+ ef/2027/11/22.json
+ ef/2027/11/23.json
+ ef/2027/11/24.json
+ ef/2027/11/25.json
+ ef/2027/11/26.json
+ ef/2027/11/27.json
+ ef/2027/11/28.json
+ ef/2027/11/29.json
+ ef/2027/11/30.json
+ ef/2027/12/01.json
+ ef/2027/12/02.json
+ ef/2027/12/03.json
+ ef/2027/12/04.json
+ ef/2027/12/05.json
+ ef/2027/12/06.json
+ ef/2027/12/07.json
+ ef/2027/12/08.json
+ ef/2027/12/09.json
+ ef/2027/12/10.json
+ ef/2027/12/11.json
+ ef/2027/12/12.json
+ ef/2027/12/13.json
+ ef/2027/12/14.json
+ ef/2027/12/15.json
+ ef/2027/12/16.json
+ ef/2027/12/17.json
+ ef/2027/12/18.json
+ ef/2027/12/19.json
+ ef/2027/12/20.json
+ ef/2027/12/21.json
+ ef/2027/12/22.json
+ ef/2027/12/23.json
+ ef/2027/12/24.json
+ ef/2027/12/25.json
+ ef/2027/12/26.json
+ ef/2027/12/27.json
+ ef/2027/12/28.json
+ ef/2027/12/29.json
+ ef/2027/12/30.json
+ ef/2027/12/31.json
+ index.html
+ schema/day-v1.json
+
+ $ ls /tmp/pub/ef/2027/01/*.json | wc -l
+ 31
+
+ $ test -f /tmp/pub/schema/day-v1.json && echo schema-present
+ schema-present
+
+ $ test -f /tmp/pub/index.html && echo index-present
+ index-present
+
+Publishing twice is byte-identical -- safe to publish into a git repo:
+
+ $ colitur publish --from 2027 --to 2027 --out /tmp/pub1 >/dev/null
+ $ colitur publish --from 2027 --to 2027 --out /tmp/pub2 >/dev/null
+ $ diff -r /tmp/pub1 /tmp/pub2 && echo identical
+ identical
+
+The published .ics is byte-identical to `emit --format ics` for the same
+year -- both walk through the identical Emit_ics.year:
+
+ $ colitur emit --format ics --from 2027 --to 2027 > /tmp/emit-2027.ics
+ $ diff /tmp/pub1/ef/2027.ics /tmp/emit-2027.ics && echo ics-identical
+ ics-identical
+
+publish never deletes a file it does not own:
+
+ $ touch /tmp/pub1/MY-NOTES.txt
+ $ colitur publish --from 2027 --to 2027 --out /tmp/pub1 >/dev/null
+ $ test -f /tmp/pub1/MY-NOTES.txt && echo kept
+ kept
+
+--prune removes only files a previous run created:
+
+ $ colitur publish --from 2027 --to 2027 --out /tmp/pub1 --prune >/dev/null
+ $ test -f /tmp/pub1/MY-NOTES.txt && echo still-kept
+ still-kept
+
+ $ colitur publish --from 2028 --to 2028 --out /tmp/pub1 --prune >/dev/null
+ $ test -d /tmp/pub1/ef/2027 || echo pruned-2027
+ pruned-2027
+ $ test -f /tmp/pub1/MY-NOTES.txt && echo notes-survived-prune
+ notes-survived-prune
+
+--out is required:
+
+ $ colitur publish --from 2027 --to 2027
+ colitur: publish requires --out DIR
+ [2]
+
+publish writes many files across a whole year range (mkdir_p/write_file),
+same as the template read guarded in commit 6bd741b -- --out is user input
+too, and an unwritable parent used to surface as an uncaught
+Unix.Unix_error instead of the project's one-line form. The read-only
+directory below lives in this test's own cram sandbox, not /tmp: a failed
+`rm -rf` of an unwritable directory would otherwise leave it behind in a
+shared location, so it is restored to writable before the test ends either
+way:
+
+ $ mkdir ro-parent && chmod 555 ro-parent
+ $ colitur publish --from 2027 --to 2027 --out ro-parent/sub
+ colitur: mkdir: ro-parent/sub: Permission denied
+ [2]
+ $ chmod 755 ro-parent
+
+publish's own flags have no effect on the other commands, and other
+commands' flags have no effect on publish -- refused rather than silently
+ignored, the same discipline as everywhere else:
+
+ $ colitur publish --from 2027 --to 2027 --out /tmp/pub3 --format json
+ colitur: --format has no effect on `publish`; refusing rather than ignoring it
+ [2]
+
+ $ colitur day 2027 --out /tmp/pub3 --prune
+ colitur: --out/--prune have no effect on `day`; refusing rather than ignoring them
+ [2]
+
+--prune's manifest-driven deletion is hardened against a manifest entry it
+did not itself write (fix round 1, F1, CRITICAL): the manifest lives INSIDE
+the tree publish writes into, so a bad merge or a hand-edit can put an
+arbitrary path in it -- no attacker required. This is the exact CANARY
+reproduction the finding was raised with: a ".." entry appended to the
+manifest must never let --prune delete outside --out.
+
+ $ rm -rf /tmp/pub-sec /tmp/pub-sec-outside
+ $ mkdir -p /tmp/pub-sec-outside
+ $ touch /tmp/pub-sec-outside/CANARY.txt
+ $ colitur publish --from 2027 --to 2027 --out /tmp/pub-sec >/dev/null
+ $ echo '../pub-sec-outside/CANARY.txt' >> /tmp/pub-sec/.colitur-manifest
+ $ colitur publish --from 2028 --to 2028 --out /tmp/pub-sec --prune >/dev/null
+ colitur: refusing to prune manifest entry "../pub-sec-outside/CANARY.txt" (absolute path or .. component)
+ $ test -f /tmp/pub-sec-outside/CANARY.txt && echo canary-survives
+ canary-survives
+
+The same run's own legitimate stale entries (2027's files, superseded by
+2028) still prune normally -- the hardening does not disable pruning, only
+unsafe entries:
+
+ $ test -d /tmp/pub-sec/ef/2027 || echo 2027-pruned-normally
+ 2027-pruned-normally
+
+An absolute-path entry is refused the same way, not only a ".." one:
+
+ $ echo '/tmp/pub-sec-outside/CANARY.txt' >> /tmp/pub-sec/.colitur-manifest
+ $ colitur publish --from 2028 --to 2028 --out /tmp/pub-sec --prune >/dev/null
+ colitur: refusing to prune manifest entry "/tmp/pub-sec-outside/CANARY.txt" (absolute path or .. component)
+ $ test -f /tmp/pub-sec-outside/CANARY.txt && echo canary-still-survives
+ canary-still-survives
+
+A legitimate filename that merely CONTAINS two dots -- but has no ".." path
+COMPONENT -- is not caught by the same check, proving it is not
+over-broad: it still prunes normally when stale.
+
+ $ touch /tmp/pub-sec/ef/2027..old.json
+ $ echo 'ef/2027..old.json' >> /tmp/pub-sec/.colitur-manifest
+ $ colitur publish --from 2029 --to 2029 --out /tmp/pub-sec --prune >/dev/null
+ $ test -f /tmp/pub-sec/ef/2027..old.json || echo dotted-name-pruned
+ dotted-name-pruned
+
+...and that same run is an ordinary --prune cycle in every other respect --
+2028's own files, now stale relative to 2029, are gone too:
+
+ $ test -d /tmp/pub-sec/ef/2028 || echo pruned-2028
+ pruned-2028
diff --git a/test/dune b/test/dune
index e20450b..8d0c551 100644
--- a/test/dune
+++ b/test/dune
@@ -1,6 +1,6 @@
(test
(name test_colitur)
- (libraries colitur_kernel rite_ef alcotest qcheck qcheck-alcotest sexplib)
+ (libraries colitur_kernel colitur_render rite_ef alcotest qcheck qcheck-alcotest sexplib)
(deps
../data/ef/sanctoral.sexp
../data/ef/adjustments.sexp
@@ -12,7 +12,25 @@
fixtures/lectio-ef-2005-2050.txt
fixtures/missalemeum-ef-2026-2027.txt
fixtures/missalemeum-ef-2038.txt
- fixtures/missalemeum-ef-2035.txt)
+ fixtures/missalemeum-ef-2035.txt
+ ../templates/ef/ordo.tex
+ ../templates/ef/ordo.ms
+ ../templates/ef/ordo.html
+ ../templates/ef/ordo.adoc
+ ../templates/ef/ordo.md
+ ../templates/ef/ordo.txt
+ ../templates/ef/grid.tex
+ ../templates/ef/grid.ms
+ ../templates/ef/grid.html
+ golden/ordo-2027.tex
+ golden/ordo-2027.ms
+ golden/ordo-2027.html
+ golden/ordo-2027.adoc
+ golden/ordo-2027.md
+ golden/ordo-2027.txt
+ golden/grid-2027.tex
+ golden/grid-2027.ms
+ golden/grid-2027.html)
(preprocess
(pps ppx_sexp_conv)))
@@ -25,4 +43,10 @@
../data/ef/sanctoral.sexp
../data/ef/adjustments.sexp
../data/ef/lectionary.sexp
- ../data/ef/commons.sexp))
+ ../data/ef/commons.sexp
+ ; Task 12, `colitur publish`: the cram sandbox only ever gets what this
+ ; stanza names explicitly (unlike a plain `dune build`, it does not fall
+ ; back to the workspace root's own default alias), so schema/day-v1.json
+ ; needs its own entry here too, exactly like every other runtime file
+ ; above.
+ ../schema/day-v1.json))
diff --git a/test/golden/grid-2027.html b/test/golden/grid-2027.html
new file mode 100644
index 0000000..9068788
--- /dev/null
+++ b/test/golden/grid-2027.html
@@ -0,0 +1,287 @@
+<!-- colitur wall calendar -- HTML. flavour: html -->
+<!-- Day label falls back to the slug when the day carries no Latin name
+ (most temporal days, and most sanctoral entries, which are Latin-less
+ in the shipped data) -- see ordo.tex's own comment for why the fallback
+ is written as a name-section wrapping a plain var and its inverse,
+ rather than a single dotted lookup and its inverse: the enclosing month
+ object also carries its own name.la, and a dotted lookup that misses
+ climbs the WHOLE path to that outer scope instead of falling back. -->
+<!doctype html>
+<html lang="la"><head><meta charset="utf-8">
+<title>Calendarium 2027</title>
+<style>
+ body{font-family:sans-serif;margin:1em}
+ table{border-collapse:collapse;width:100%;margin-bottom:1.5em;page-break-inside:avoid}
+ caption{font-size:1.2em;font-weight:bold;padding:.4em}
+ th{font-size:.8em;padding:.2em;border-bottom:1px solid #999}
+ td{border:1px solid #ddd;vertical-align:top;height:5em;width:14.28%;padding:.2em;font-size:.75em}
+ td.pad{background:#fafafa;border-color:#eee}
+ .dom{font-weight:bold;display:block}
+ .white{background:#fff} .red{background:#fdd} .green{background:#dfd}
+ .violet{background:#eae} .rose{background:#fde} .black{background:#ddd}
+ @media print{@page{size:landscape}body{margin:0}}
+</style></head><body>
+<h1>Calendarium 2027 &middot; ef</h1>
+
+<table>
+ <caption>Ianuarius</caption>
+ <tr><th>Dom</th><th>Lun</th><th>Mar</th><th>Mer</th><th>Iov</th><th>Ven</th><th>Sab</th></tr>
+ <tr>
+ <td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="white"><span class="dom">1</span>ef-circumcision</td><td class="white"><span class="dom">2</span>Officium sanctae Mariae in sabbato</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">3</span>Sanctissimi Nominis Iesu</td><td class="white"><span class="dom">4</span>ef-christmas-1-monday</td><td class="white"><span class="dom">5</span>ef-christmas-1-tuesday</td><td class="white"><span class="dom">6</span>ef-epiphany</td><td class="white"><span class="dom">7</span>ef-christmas-2-thursday</td><td class="white"><span class="dom">8</span>ef-christmas-2-friday</td><td class="white"><span class="dom">9</span>Officium sanctae Mariae in sabbato</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">10</span>Sanctae Familiae Iesu, Mariae, Ioseph</td><td class="white"><span class="dom">11</span>ef-time-after-epiphany-1-monday</td><td class="white"><span class="dom">12</span>ef-time-after-epiphany-1-tuesday</td><td class="white"><span class="dom">13</span>commemoration-of-the-baptism-of-the-lord</td><td class="white"><span class="dom">14</span>hilary</td><td class="white"><span class="dom">15</span>paul-the-first-hermit</td><td class="red"><span class="dom">16</span>marcellus-i</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">17</span>ef-time-after-epiphany-sunday-2</td><td class="green"><span class="dom">18</span>ef-time-after-epiphany-2-monday</td><td class="green"><span class="dom">19</span>ef-time-after-epiphany-2-tuesday</td><td class="red"><span class="dom">20</span>sts-fabian-sebastian</td><td class="red"><span class="dom">21</span>agnes</td><td class="red"><span class="dom">22</span>sts-vincent-anastasius</td><td class="white"><span class="dom">23</span>raymond-of-pe-afort</td>
+ </tr>
+ <tr>
+ <td class="violet"><span class="dom">24</span>ef-septuagesima-sunday-1</td><td class="white"><span class="dom">25</span>conversion-of-st-paul</td><td class="red"><span class="dom">26</span>polycarp</td><td class="white"><span class="dom">27</span>john-chrysostom</td><td class="white"><span class="dom">28</span>peter-nolasco</td><td class="white"><span class="dom">29</span>francis-de-sales</td><td class="red"><span class="dom">30</span>martina</td>
+ </tr>
+ <tr>
+ <td class="violet"><span class="dom">31</span>ef-septuagesima-sunday-2</td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td>
+ </tr>
+
+</table>
+
+<table>
+ <caption>Februarius</caption>
+ <tr><th>Dom</th><th>Lun</th><th>Mar</th><th>Mer</th><th>Iov</th><th>Ven</th><th>Sab</th></tr>
+ <tr>
+ <td class="pad"></td><td class="red"><span class="dom">1</span>ignatius-of-antioch</td><td class="white"><span class="dom">2</span>purification-of-the-blessed-virgin-mary</td><td class="violet"><span class="dom">3</span>ef-septuagesima-2-wednesday</td><td class="white"><span class="dom">4</span>andrew-corsini</td><td class="red"><span class="dom">5</span>agatha</td><td class="white"><span class="dom">6</span>titus</td>
+ </tr>
+ <tr>
+ <td class="violet"><span class="dom">7</span>ef-septuagesima-sunday-3</td><td class="white"><span class="dom">8</span>john-of-matha</td><td class="white"><span class="dom">9</span>cyril-of-alexandria</td><td class="violet"><span class="dom">10</span>ef-ash-wednesday</td><td class="violet"><span class="dom">11</span>ef-lent-after-ashes-thursday</td><td class="violet"><span class="dom">12</span>ef-lent-after-ashes-friday</td><td class="violet"><span class="dom">13</span>ef-lent-after-ashes-saturday</td>
+ </tr>
+ <tr>
+ <td class="violet"><span class="dom">14</span>ef-lent-sunday-1</td><td class="violet"><span class="dom">15</span>ef-lent-1-monday</td><td class="violet"><span class="dom">16</span>ef-lent-1-tuesday</td><td class="violet"><span class="dom">17</span>ef-lent-ember-wed</td><td class="violet"><span class="dom">18</span>ef-lent-1-thursday</td><td class="violet"><span class="dom">19</span>ef-lent-ember-fri</td><td class="violet"><span class="dom">20</span>ef-lent-ember-sat</td>
+ </tr>
+ <tr>
+ <td class="violet"><span class="dom">21</span>ef-lent-sunday-2</td><td class="white"><span class="dom">22</span>chair-of-st-peter</td><td class="violet"><span class="dom">23</span>ef-lent-2-tuesday</td><td class="red"><span class="dom">24</span>matthias</td><td class="violet"><span class="dom">25</span>ef-lent-2-thursday</td><td class="violet"><span class="dom">26</span>ef-lent-2-friday</td><td class="violet"><span class="dom">27</span>ef-lent-2-saturday</td>
+ </tr>
+ <tr>
+ <td class="violet"><span class="dom">28</span>ef-lent-sunday-3</td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td>
+ </tr>
+
+</table>
+
+<table>
+ <caption>Martius</caption>
+ <tr><th>Dom</th><th>Lun</th><th>Mar</th><th>Mer</th><th>Iov</th><th>Ven</th><th>Sab</th></tr>
+ <tr>
+ <td class="pad"></td><td class="violet"><span class="dom">1</span>ef-lent-3-monday</td><td class="violet"><span class="dom">2</span>ef-lent-3-tuesday</td><td class="violet"><span class="dom">3</span>ef-lent-3-wednesday</td><td class="violet"><span class="dom">4</span>ef-lent-3-thursday</td><td class="violet"><span class="dom">5</span>ef-lent-3-friday</td><td class="violet"><span class="dom">6</span>ef-lent-3-saturday</td>
+ </tr>
+ <tr>
+ <td class="rose"><span class="dom">7</span>ef-lent-sunday-4</td><td class="violet"><span class="dom">8</span>ef-lent-4-monday</td><td class="violet"><span class="dom">9</span>ef-lent-4-tuesday</td><td class="violet"><span class="dom">10</span>ef-lent-4-wednesday</td><td class="violet"><span class="dom">11</span>ef-lent-4-thursday</td><td class="violet"><span class="dom">12</span>ef-lent-4-friday</td><td class="violet"><span class="dom">13</span>ef-lent-4-saturday</td>
+ </tr>
+ <tr>
+ <td class="violet"><span class="dom">14</span>ef-passion-sunday</td><td class="violet"><span class="dom">15</span>ef-passiontide-1-monday</td><td class="violet"><span class="dom">16</span>ef-passiontide-1-tuesday</td><td class="violet"><span class="dom">17</span>ef-passiontide-1-wednesday</td><td class="violet"><span class="dom">18</span>ef-passiontide-1-thursday</td><td class="white"><span class="dom">19</span>joseph-spouse-of-the-bl-virgin-mary</td><td class="violet"><span class="dom">20</span>ef-passiontide-1-saturday</td>
+ </tr>
+ <tr>
+ <td class="violet"><span class="dom">21</span>ef-palm-sunday</td><td class="violet"><span class="dom">22</span>ef-passiontide-2-monday</td><td class="violet"><span class="dom">23</span>ef-passiontide-2-tuesday</td><td class="violet"><span class="dom">24</span>ef-passiontide-2-wednesday</td><td class="white"><span class="dom">25</span>Feria V in Cena Domini</td><td class="black"><span class="dom">26</span>Feria VI in Passione et Morte Domini</td><td class="violet"><span class="dom">27</span>Sabbato sancto</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">28</span>ef-easter-sunday</td><td class="white"><span class="dom">29</span>ef-easter-1-monday</td><td class="white"><span class="dom">30</span>ef-easter-1-tuesday</td><td class="white"><span class="dom">31</span>ef-easter-1-wednesday</td><td class="pad"></td><td class="pad"></td><td class="pad"></td>
+ </tr>
+
+</table>
+
+<table>
+ <caption>Aprilis</caption>
+ <tr><th>Dom</th><th>Lun</th><th>Mar</th><th>Mer</th><th>Iov</th><th>Ven</th><th>Sab</th></tr>
+ <tr>
+ <td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="white"><span class="dom">1</span>ef-easter-1-thursday</td><td class="white"><span class="dom">2</span>ef-easter-1-friday</td><td class="white"><span class="dom">3</span>ef-easter-1-saturday</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">4</span>ef-low-sunday</td><td class="white"><span class="dom">5</span>annunciation-of-the-blessed-virgin-mary</td><td class="white"><span class="dom">6</span>ef-easter-2-tuesday</td><td class="white"><span class="dom">7</span>ef-easter-2-wednesday</td><td class="white"><span class="dom">8</span>ef-easter-2-thursday</td><td class="white"><span class="dom">9</span>ef-easter-2-friday</td><td class="white"><span class="dom">10</span>Officium sanctae Mariae in sabbato</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">11</span>ef-easter-sunday-3</td><td class="white"><span class="dom">12</span>ef-easter-3-monday</td><td class="red"><span class="dom">13</span>hermenegild</td><td class="red"><span class="dom">14</span>justin</td><td class="white"><span class="dom">15</span>ef-easter-3-thursday</td><td class="white"><span class="dom">16</span>ef-easter-3-friday</td><td class="white"><span class="dom">17</span>Officium sanctae Mariae in sabbato</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">18</span>ef-easter-sunday-4</td><td class="white"><span class="dom">19</span>ef-easter-4-monday</td><td class="white"><span class="dom">20</span>ef-easter-4-tuesday</td><td class="white"><span class="dom">21</span>anselm</td><td class="red"><span class="dom">22</span>sts-soter-caius</td><td class="white"><span class="dom">23</span>ef-easter-4-friday</td><td class="red"><span class="dom">24</span>fidelis-of-sigmaringen</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">25</span>ef-easter-sunday-5</td><td class="red"><span class="dom">26</span>sts-cletus-marcellinus</td><td class="white"><span class="dom">27</span>peter-canisius</td><td class="white"><span class="dom">28</span>paul-of-the-cross</td><td class="red"><span class="dom">29</span>peter-of-verona</td><td class="white"><span class="dom">30</span>catherine-of-siena</td><td class="pad"></td>
+ </tr>
+
+</table>
+
+<table>
+ <caption>Maius</caption>
+ <tr><th>Dom</th><th>Lun</th><th>Mar</th><th>Mer</th><th>Iov</th><th>Ven</th><th>Sab</th></tr>
+ <tr>
+ <td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="white"><span class="dom">1</span>joseph-the-workman</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">2</span>ef-easter-sunday-6</td><td class="violet"><span class="dom">3</span>ef-rogation-monday</td><td class="white"><span class="dom">4</span>monica</td><td class="white"><span class="dom">5</span>ef-ascension-vigil</td><td class="white"><span class="dom">6</span>ef-ascension</td><td class="red"><span class="dom">7</span>stanislaus</td><td class="white"><span class="dom">8</span>Officium sanctae Mariae in sabbato</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">9</span>ef-easter-sunday-7</td><td class="white"><span class="dom">10</span>antoninus</td><td class="red"><span class="dom">11</span>sts-philip-james</td><td class="red"><span class="dom">12</span>sts-nereus-achilleus-domitilla-pancras</td><td class="white"><span class="dom">13</span>robert-bellarmine</td><td class="white"><span class="dom">14</span>ef-easter-7-friday</td><td class="red"><span class="dom">15</span>ef-pentecost-vigil</td>
+ </tr>
+ <tr>
+ <td class="red"><span class="dom">16</span>ef-pentecost</td><td class="red"><span class="dom">17</span>ef-easter-8-monday</td><td class="red"><span class="dom">18</span>ef-easter-8-tuesday</td><td class="red"><span class="dom">19</span>ef-pentecost-ember-wed</td><td class="red"><span class="dom">20</span>ef-easter-8-thursday</td><td class="red"><span class="dom">21</span>ef-pentecost-ember-fri</td><td class="red"><span class="dom">22</span>ef-pentecost-ember-sat</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">23</span>ef-trinity</td><td class="green"><span class="dom">24</span>ef-time-after-pentecost-1-monday</td><td class="white"><span class="dom">25</span>gregory-vii</td><td class="white"><span class="dom">26</span>philip-neri</td><td class="white"><span class="dom">27</span>ef-corpus-christi</td><td class="white"><span class="dom">28</span>augustine-of-canterbury</td><td class="white"><span class="dom">29</span>mary-magdalene-de-pazzi</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">30</span>ef-time-after-pentecost-sunday-2</td><td class="white"><span class="dom">31</span>queenship-of-the-blessed-virgin-mary</td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td>
+ </tr>
+
+</table>
+
+<table>
+ <caption>Iunius</caption>
+ <tr><th>Dom</th><th>Lun</th><th>Mar</th><th>Mer</th><th>Iov</th><th>Ven</th><th>Sab</th></tr>
+ <tr>
+ <td class="pad"></td><td class="pad"></td><td class="white"><span class="dom">1</span>angela-merici</td><td class="green"><span class="dom">2</span>ef-time-after-pentecost-2-wednesday</td><td class="green"><span class="dom">3</span>ef-time-after-pentecost-2-thursday</td><td class="white"><span class="dom">4</span>ef-sacred-heart</td><td class="red"><span class="dom">5</span>boniface</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">6</span>ef-time-after-pentecost-sunday-3</td><td class="green"><span class="dom">7</span>ef-time-after-pentecost-3-monday</td><td class="green"><span class="dom">8</span>ef-time-after-pentecost-3-tuesday</td><td class="green"><span class="dom">9</span>ef-time-after-pentecost-3-wednesday</td><td class="white"><span class="dom">10</span>margaret-of-scotland</td><td class="red"><span class="dom">11</span>barnabas</td><td class="white"><span class="dom">12</span>john-of-san-fecundo</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">13</span>ef-time-after-pentecost-sunday-4</td><td class="white"><span class="dom">14</span>basil-the-great</td><td class="green"><span class="dom">15</span>ef-time-after-pentecost-4-tuesday</td><td class="green"><span class="dom">16</span>ef-time-after-pentecost-4-wednesday</td><td class="white"><span class="dom">17</span>gregory-barbarigo</td><td class="white"><span class="dom">18</span>ephrem-of-syria</td><td class="white"><span class="dom">19</span>julia-of-falconieri</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">20</span>ef-time-after-pentecost-sunday-5</td><td class="white"><span class="dom">21</span>aloysius-gongzaga</td><td class="white"><span class="dom">22</span>paulinus-of-nola</td><td class="violet"><span class="dom">23</span>vigil-of-the-nativity-of-st-john-the-baptist</td><td class="white"><span class="dom">24</span>nativity-of-st-john-the-baptist</td><td class="white"><span class="dom">25</span>william</td><td class="red"><span class="dom">26</span>sts-john-paul</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">27</span>ef-time-after-pentecost-sunday-6</td><td class="violet"><span class="dom">28</span>vigil-of-sts-peter-paul</td><td class="red"><span class="dom">29</span>sts-peter-paul</td><td class="red"><span class="dom">30</span>in-commemoratione-sancti-pauli-apostoli</td><td class="pad"></td><td class="pad"></td><td class="pad"></td>
+ </tr>
+
+</table>
+
+<table>
+ <caption>Iulius</caption>
+ <tr><th>Dom</th><th>Lun</th><th>Mar</th><th>Mer</th><th>Iov</th><th>Ven</th><th>Sab</th></tr>
+ <tr>
+ <td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="red"><span class="dom">1</span>precious-blood-of-our-lord-jesus-christ</td><td class="white"><span class="dom">2</span>visitation-of-the-blessed-virgin-mary</td><td class="red"><span class="dom">3</span>irenaeus</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">4</span>ef-time-after-pentecost-sunday-7</td><td class="white"><span class="dom">5</span>anthony-mary-zaccariah</td><td class="green"><span class="dom">6</span>ef-time-after-pentecost-7-tuesday</td><td class="white"><span class="dom">7</span>sts-cyril-methodius</td><td class="white"><span class="dom">8</span>elizabeth-of-portugal</td><td class="green"><span class="dom">9</span>ef-time-after-pentecost-7-friday</td><td class="red"><span class="dom">10</span>seven-holy-brothers-and-sts-rufina-secunda</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">11</span>ef-time-after-pentecost-sunday-8</td><td class="white"><span class="dom">12</span>john-gualbert</td><td class="green"><span class="dom">13</span>ef-time-after-pentecost-8-tuesday</td><td class="white"><span class="dom">14</span>bonaventure</td><td class="white"><span class="dom">15</span>henry-the-emperor</td><td class="green"><span class="dom">16</span>ef-time-after-pentecost-8-friday</td><td class="white"><span class="dom">17</span>Officium sanctae Mariae in sabbato</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">18</span>ef-time-after-pentecost-sunday-9</td><td class="white"><span class="dom">19</span>vincent-de-paul</td><td class="white"><span class="dom">20</span>jerome-emiliani</td><td class="white"><span class="dom">21</span>laurence-of-brindisi</td><td class="white"><span class="dom">22</span>mary-magdalene</td><td class="red"><span class="dom">23</span>apollinaris</td><td class="white"><span class="dom">24</span>Officium sanctae Mariae in sabbato</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">25</span>ef-time-after-pentecost-sunday-10</td><td class="white"><span class="dom">26</span>anne-mother-of-the-blessed-virgin</td><td class="green"><span class="dom">27</span>ef-time-after-pentecost-10-tuesday</td><td class="red"><span class="dom">28</span>sts-nazarius-celsus-st-victor-i-st-innocent-i</td><td class="white"><span class="dom">29</span>martha</td><td class="green"><span class="dom">30</span>ef-time-after-pentecost-10-friday</td><td class="white"><span class="dom">31</span>ignatius-loyola</td>
+ </tr>
+
+</table>
+
+<table>
+ <caption>Augustus</caption>
+ <tr><th>Dom</th><th>Lun</th><th>Mar</th><th>Mer</th><th>Iov</th><th>Ven</th><th>Sab</th></tr>
+ <tr>
+ <td class="green"><span class="dom">1</span>ef-time-after-pentecost-sunday-11</td><td class="white"><span class="dom">2</span>alphonsus-liguori</td><td class="green"><span class="dom">3</span>ef-time-after-pentecost-11-tuesday</td><td class="white"><span class="dom">4</span>dominic</td><td class="white"><span class="dom">5</span>dedication-of-the-basilica-of-st-mary-major</td><td class="white"><span class="dom">6</span>transfiguration-of-our-lord</td><td class="white"><span class="dom">7</span>cajetan</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">8</span>ef-time-after-pentecost-sunday-12</td><td class="violet"><span class="dom">9</span>vigil-of-st-lawrence</td><td class="red"><span class="dom">10</span>lawrence</td><td class="green"><span class="dom">11</span>ef-time-after-pentecost-12-wednesday</td><td class="white"><span class="dom">12</span>clare</td><td class="green"><span class="dom">13</span>ef-time-after-pentecost-12-friday</td><td class="violet"><span class="dom">14</span>vigil-of-the-assumption</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">15</span>assumption-of-the-blessed-virgin-mary</td><td class="white"><span class="dom">16</span>joachim-father-of-the-blessed-virgin</td><td class="white"><span class="dom">17</span>hyacinth</td><td class="green"><span class="dom">18</span>ef-time-after-pentecost-13-wednesday</td><td class="white"><span class="dom">19</span>john-eudes</td><td class="white"><span class="dom">20</span>bernard-of-clairvaux</td><td class="white"><span class="dom">21</span>jane-frances-de-chantal</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">22</span>ef-time-after-pentecost-sunday-14</td><td class="white"><span class="dom">23</span>philip-benizi</td><td class="red"><span class="dom">24</span>bartholomew</td><td class="white"><span class="dom">25</span>louis-ix</td><td class="green"><span class="dom">26</span>ef-time-after-pentecost-14-thursday</td><td class="white"><span class="dom">27</span>joseph-calasance</td><td class="white"><span class="dom">28</span>augustine</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">29</span>ef-time-after-pentecost-sunday-15</td><td class="white"><span class="dom">30</span>rose-of-lima</td><td class="white"><span class="dom">31</span>raymond-nonnatus</td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td>
+ </tr>
+
+</table>
+
+<table>
+ <caption>September</caption>
+ <tr><th>Dom</th><th>Lun</th><th>Mar</th><th>Mer</th><th>Iov</th><th>Ven</th><th>Sab</th></tr>
+ <tr>
+ <td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="green"><span class="dom">1</span>ef-time-after-pentecost-15-wednesday</td><td class="white"><span class="dom">2</span>stephen-of-hungary</td><td class="white"><span class="dom">3</span>pius-x</td><td class="white"><span class="dom">4</span>Officium sanctae Mariae in sabbato</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">5</span>ef-time-after-pentecost-sunday-16</td><td class="green"><span class="dom">6</span>ef-time-after-pentecost-16-monday</td><td class="green"><span class="dom">7</span>ef-time-after-pentecost-16-tuesday</td><td class="white"><span class="dom">8</span>nativity-of-the-blessed-virgin-mary</td><td class="green"><span class="dom">9</span>ef-time-after-pentecost-16-thursday</td><td class="white"><span class="dom">10</span>nicholas-of-tolentino</td><td class="white"><span class="dom">11</span>Officium sanctae Mariae in sabbato</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">12</span>ef-time-after-pentecost-sunday-17</td><td class="green"><span class="dom">13</span>ef-time-after-pentecost-17-monday</td><td class="red"><span class="dom">14</span>exaltation-of-the-holy-cross</td><td class="white"><span class="dom">15</span>seven-sorrows-of-the-blessed-virgin-mary</td><td class="red"><span class="dom">16</span>sts-cornelius-cyprian</td><td class="green"><span class="dom">17</span>ef-time-after-pentecost-17-friday</td><td class="white"><span class="dom">18</span>joseph-of-cupertino</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">19</span>ef-time-after-pentecost-sunday-18</td><td class="green"><span class="dom">20</span>ef-time-after-pentecost-18-monday</td><td class="red"><span class="dom">21</span>matthew</td><td class="violet"><span class="dom">22</span>ef-september-ember-wed</td><td class="red"><span class="dom">23</span>linus</td><td class="violet"><span class="dom">24</span>ef-september-ember-fri</td><td class="violet"><span class="dom">25</span>ef-september-ember-sat</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">26</span>ef-time-after-pentecost-sunday-19</td><td class="red"><span class="dom">27</span>sts-cosmas-damian</td><td class="red"><span class="dom">28</span>wenceslaus</td><td class="white"><span class="dom">29</span>dedication-of-st-michael-the-archangel</td><td class="white"><span class="dom">30</span>jerome</td><td class="pad"></td><td class="pad"></td>
+ </tr>
+
+</table>
+
+<table>
+ <caption>October</caption>
+ <tr><th>Dom</th><th>Lun</th><th>Mar</th><th>Mer</th><th>Iov</th><th>Ven</th><th>Sab</th></tr>
+ <tr>
+ <td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="green"><span class="dom">1</span>ef-time-after-pentecost-19-friday</td><td class="white"><span class="dom">2</span>holy-guardian-angels</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">3</span>ef-time-after-pentecost-sunday-20</td><td class="white"><span class="dom">4</span>francis-of-assisi</td><td class="green"><span class="dom">5</span>ef-time-after-pentecost-20-tuesday</td><td class="white"><span class="dom">6</span>bruno</td><td class="white"><span class="dom">7</span>our-lady-of-the-rosary</td><td class="white"><span class="dom">8</span>bridget-of-sweden</td><td class="white"><span class="dom">9</span>john-leonardi</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">10</span>ef-time-after-pentecost-sunday-21</td><td class="white"><span class="dom">11</span>maternity-of-the-blessed-virgin-mary</td><td class="green"><span class="dom">12</span>ef-time-after-pentecost-21-tuesday</td><td class="white"><span class="dom">13</span>edward</td><td class="red"><span class="dom">14</span>callistus-i</td><td class="white"><span class="dom">15</span>teresa-of-avila</td><td class="white"><span class="dom">16</span>hedwig</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">17</span>ef-time-after-pentecost-sunday-22</td><td class="red"><span class="dom">18</span>luke-the-evangelist</td><td class="white"><span class="dom">19</span>peter-of-alcantara</td><td class="white"><span class="dom">20</span>john-cantius</td><td class="green"><span class="dom">21</span>ef-time-after-pentecost-22-thursday</td><td class="green"><span class="dom">22</span>ef-time-after-pentecost-22-friday</td><td class="white"><span class="dom">23</span>anthony-mary-claret</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">24</span>ef-time-after-pentecost-sunday-23</td><td class="green"><span class="dom">25</span>ef-time-after-pentecost-23-monday</td><td class="green"><span class="dom">26</span>ef-time-after-pentecost-23-tuesday</td><td class="green"><span class="dom">27</span>ef-time-after-pentecost-23-wednesday</td><td class="red"><span class="dom">28</span>sts-simon-jude</td><td class="green"><span class="dom">29</span>ef-time-after-pentecost-23-friday</td><td class="white"><span class="dom">30</span>Officium sanctae Mariae in sabbato</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">31</span>ef-christ-the-king</td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td>
+ </tr>
+
+</table>
+
+<table>
+ <caption>November</caption>
+ <tr><th>Dom</th><th>Lun</th><th>Mar</th><th>Mer</th><th>Iov</th><th>Ven</th><th>Sab</th></tr>
+ <tr>
+ <td class="pad"></td><td class="white"><span class="dom">1</span>all-saints</td><td class="black"><span class="dom">2</span>commemoration-of-all-souls</td><td class="green"><span class="dom">3</span>ef-time-after-pentecost-24-wednesday</td><td class="white"><span class="dom">4</span>charles-borromeo</td><td class="green"><span class="dom">5</span>ef-time-after-pentecost-24-friday</td><td class="white"><span class="dom">6</span>Officium sanctae Mariae in sabbato</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">7</span>ef-time-after-epiphany-sunday-5</td><td class="green"><span class="dom">8</span>ef-time-after-pentecost-25-monday</td><td class="white"><span class="dom">9</span>dedication-of-the-archbasilica-of-our-holy-savior</td><td class="white"><span class="dom">10</span>andrew-avellino</td><td class="white"><span class="dom">11</span>martin-of-tours</td><td class="red"><span class="dom">12</span>martin-i</td><td class="white"><span class="dom">13</span>didacus</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">14</span>ef-time-after-epiphany-sunday-6</td><td class="white"><span class="dom">15</span>albert-the-great</td><td class="white"><span class="dom">16</span>gertrude-the-great</td><td class="white"><span class="dom">17</span>gregory-the-wonderworker</td><td class="white"><span class="dom">18</span>dedication-of-the-basilicas-of-sts-peter-paul</td><td class="white"><span class="dom">19</span>elizabeth-of-hungary</td><td class="white"><span class="dom">20</span>felix-of-valois</td>
+ </tr>
+ <tr>
+ <td class="green"><span class="dom">21</span>ef-time-after-pentecost-sunday-24</td><td class="red"><span class="dom">22</span>cecilia</td><td class="red"><span class="dom">23</span>clement-i</td><td class="white"><span class="dom">24</span>john-of-the-cross</td><td class="red"><span class="dom">25</span>catherine-of-alexandria</td><td class="white"><span class="dom">26</span>sylvester</td><td class="white"><span class="dom">27</span>Officium sanctae Mariae in sabbato</td>
+ </tr>
+ <tr>
+ <td class="violet"><span class="dom">28</span>ef-advent-sunday-1</td><td class="violet"><span class="dom">29</span>ef-advent-1-monday</td><td class="red"><span class="dom">30</span>andrew</td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td>
+ </tr>
+
+</table>
+
+<table>
+ <caption>December</caption>
+ <tr><th>Dom</th><th>Lun</th><th>Mar</th><th>Mer</th><th>Iov</th><th>Ven</th><th>Sab</th></tr>
+ <tr>
+ <td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="violet"><span class="dom">1</span>ef-advent-1-wednesday</td><td class="red"><span class="dom">2</span>vivian</td><td class="white"><span class="dom">3</span>francis-xavier</td><td class="white"><span class="dom">4</span>peter-chrysologus</td>
+ </tr>
+ <tr>
+ <td class="violet"><span class="dom">5</span>ef-advent-sunday-2</td><td class="white"><span class="dom">6</span>nicholas</td><td class="white"><span class="dom">7</span>ambrose</td><td class="white"><span class="dom">8</span>immaculate-conception-of-the-blessed-virgin-mary</td><td class="violet"><span class="dom">9</span>ef-advent-2-thursday</td><td class="violet"><span class="dom">10</span>ef-advent-2-friday</td><td class="white"><span class="dom">11</span>damasus-i</td>
+ </tr>
+ <tr>
+ <td class="rose"><span class="dom">12</span>ef-advent-sunday-3</td><td class="red"><span class="dom">13</span>lucy</td><td class="violet"><span class="dom">14</span>ef-advent-3-tuesday</td><td class="violet"><span class="dom">15</span>ef-advent-ember-wed</td><td class="red"><span class="dom">16</span>eusebius</td><td class="violet"><span class="dom">17</span>ef-advent-ember-fri</td><td class="violet"><span class="dom">18</span>ef-advent-ember-sat</td>
+ </tr>
+ <tr>
+ <td class="violet"><span class="dom">19</span>ef-advent-sunday-4</td><td class="violet"><span class="dom">20</span>ef-advent-4-monday</td><td class="red"><span class="dom">21</span>thomas</td><td class="violet"><span class="dom">22</span>ef-advent-4-wednesday</td><td class="violet"><span class="dom">23</span>ef-advent-4-thursday</td><td class="violet"><span class="dom">24</span>ef-nativity-vigil</td><td class="white"><span class="dom">25</span>ef-nativity</td>
+ </tr>
+ <tr>
+ <td class="white"><span class="dom">26</span>ef-christmas-sunday-0</td><td class="white"><span class="dom">27</span>john-the-evangelist</td><td class="red"><span class="dom">28</span>holy-innocents</td><td class="white"><span class="dom">29</span>ef-nativity-octave-day-5</td><td class="white"><span class="dom">30</span>ef-nativity-octave-day-6</td><td class="white"><span class="dom">31</span>ef-nativity-octave-day-7</td><td class="pad"></td>
+ </tr>
+
+</table>
+
+</body></html>
diff --git a/test/golden/grid-2027.ms b/test/golden/grid-2027.ms
new file mode 100644
index 0000000..5668b86
--- /dev/null
+++ b/test/golden/grid-2027.ms
@@ -0,0 +1,1136 @@
+.\" colitur wall calendar -- groff ms with tbl. flavour: groff
+.\" Build: colitur table --year 2027 --template grid.ms | groff -ms -t -Tpdf -P-pa4l > grid.pdf
+.\"
+.\" LANDSCAPE, not the ms default portrait: with allbox cells and Latin-less
+.\" days falling back to the raw slug (some fallback slugs run past 40
+.\" characters, e.g. "commemoration-of-the-baptism-of-the-lord"), seven
+.\" columns of real content do not fit a portrait line length at any
+.\" reasonable point size. "-P-pa4l" is gropdf's own landscape papersize
+.\" (groff_font(5): a trailing "l" on a papersize name swaps width/height at
+.\" the OUTPUT DEVICE level) -- it must be a command-line flag, not a request
+.\" inside this file: an in-document "\X'papersize=a4l'" escape was tried and
+.\" rejected (it does not actually rotate gropdf's page in this groff, and
+.\" throws diagnostics doing it). ".pl"/".po"/".ll" below independently widen
+.\" TROFF's OWN idea of the page to match -- ".pl"/".ll" are requests, unlike
+.\" the device's own physical page size, and are not implied by "-P-pa4l" --
+.\" so both halves are needed, or one side clips the other.
+.\"
+.\" ".TL" (the ms title macro, s.tmac) ITSELF narrows the line length to
+.\" 5/6 of register "LL" for the title text, and never widens it back
+.\" afterward -- there is no third place in s.tmac that ever does. Setting
+.\" only the primitive ".ll" before ".TL" is therefore not enough: ".TL"
+.\" overwrites it and every table for the rest of the document inherits
+.\" the NARROWED value, silently, which is a second, independent way the
+.\" original template lost its width (found by reading s.tmac itself, not
+.\" guessed). Fixed by setting register "LL" (what ".TL" actually reads)
+.\" and re-asserting ".ll" once more, explicitly, right after the title.
+.\"
+.\" Every column is a FIXED-WIDTH, WRAPPING tbl "w()" block, not a plain "l":
+.\" without "w()" tbl sizes a column to its single widest entry and does NOT
+.\" wrap, so a 40-character slug forces every column that wide -- seven of
+.\" them together run far past any line length, tbl warns "table wider than
+.\" line length", and whatever falls past the physical page edge is not a
+.\" rendering nicety missing, it is GONE: `pdftotext -layout` (and a printed
+.\" page) show only however many columns fit, not all seven. "w()" makes
+.\" each column wrap its own text block instead, the same fix grid.tex
+.\" already uses via LaTeX's "p{2.6cm}" (see that file's own comment) --
+.\" this is the tbl-native equivalent, not a different design.
+.\"
+.\" "w()" alone is NOT sufficient, and this is the part that actually cost
+.\" the time: tbl only wraps a cell as a text block when its content is
+.\" delimited by "T{"/"T}" on their own lines. A PLAIN cell entry in a
+.\" "w()" column (what the first attempt at this fix used) is never
+.\" wrapped at all -- tbl just widens the column past the requested "w()"
+.\" to fit the single longest unbroken entry, exactly reproducing the
+.\" original bug. Confirmed directly against tbl's own generated troff
+.\" code (`tbl grid.ms`, grep "3w0 .*>?"): every column width register is
+.\" `max(w(), \w'cell text')`, so an un-delimited 40-character cell always
+.\" wins that max. Every day cell below is therefore its own "T{"/"T}"
+.\" block; the closing "T}" and the following column's opening "T{" share
+.\" one line with the tab between them (the standard tbl idiom: "T}<TAB>
+.\" T{"). The template writes that as "T}
+.\" <TAB>" rather than "T}<TAB>T{" so that no
+.\" literal "T{" ever sits directly against a "" delimiter in the
+.\" source -- three braces in a row there parses as a malformed tag, not
+.\" as literal text followed by a tag.
+.\"
+.\" ".na" (no-adjust, ragged right) is required alongside the wrap, not
+.\" cosmetic: a hyphenated slug like "commemoration-of-the-baptism-of-the-
+.\" lord" DOES break at its own hyphens once wrapping is active (verified:
+.\" troff's filler treats an ASCII hyphen as a break point), but adjusted
+.\" (justified) fill in a column this narrow cannot always stretch such a
+.\" line to the full measure and troff warns "cannot adjust line" for
+.\" every such row -- another warning `make check-templates` must fail on.
+.\" Ragged-right removes the stretching, not the wrapping.
+.\"
+.\" Day label falls back to the slug when the day carries no Latin name (most
+.\" temporal days, and most sanctoral entries, which are Latin-less in the
+.\" shipped data) -- see ordo.tex's own comment for why the fallback is
+.\" written as a name-section wrapping a plain var and its inverse, rather
+.\" than a single dotted lookup and its inverse.
+.\"
+.\" Every cell also carries a last flag, true on the seventh of its row: tbl
+.\" needs the tab separator BETWEEN columns, not after the last one, and the
+.\" engine has no unless-last construct, so the flag comes from data.
+.pl 8.27i
+.po 0.3i
+.nr LL 10.9i
+.ll \n[LL]u
+.TL
+Calendarium 2027 \(bu ef
+.ll \n[LL]u
+.na
+
+.SH
+Ianuarius
+.TS
+allbox;
+cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i)
+lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i).
+Dom Lun Mar Mer Iov Ven Sab
+T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+\fB1\fP \s-2ef-circumcision\s+2
+T} T{
+\fB2\fP \s-2Officium sanctae Mariae in sabbato\s+2
+T}
+T{
+\fB3\fP \s-2Sanctissimi Nominis Iesu\s+2
+T} T{
+\fB4\fP \s-2ef-christmas-1-monday\s+2
+T} T{
+\fB5\fP \s-2ef-christmas-1-tuesday\s+2
+T} T{
+\fB6\fP \s-2ef-epiphany\s+2
+T} T{
+\fB7\fP \s-2ef-christmas-2-thursday\s+2
+T} T{
+\fB8\fP \s-2ef-christmas-2-friday\s+2
+T} T{
+\fB9\fP \s-2Officium sanctae Mariae in sabbato\s+2
+T}
+T{
+\fB10\fP \s-2Sanctae Familiae Iesu, Mariae, Ioseph\s+2
+T} T{
+\fB11\fP \s-2ef-time-after-epiphany-1-monday\s+2
+T} T{
+\fB12\fP \s-2ef-time-after-epiphany-1-tuesday\s+2
+T} T{
+\fB13\fP \s-2commemoration-of-the-baptism-of-the-lord\s+2
+T} T{
+\fB14\fP \s-2hilary\s+2
+T} T{
+\fB15\fP \s-2paul-the-first-hermit\s+2
+T} T{
+\fB16\fP \s-2marcellus-i\s+2
+T}
+T{
+\fB17\fP \s-2ef-time-after-epiphany-sunday-2\s+2
+T} T{
+\fB18\fP \s-2ef-time-after-epiphany-2-monday\s+2
+T} T{
+\fB19\fP \s-2ef-time-after-epiphany-2-tuesday\s+2
+T} T{
+\fB20\fP \s-2sts-fabian-sebastian\s+2
+T} T{
+\fB21\fP \s-2agnes\s+2
+T} T{
+\fB22\fP \s-2sts-vincent-anastasius\s+2
+T} T{
+\fB23\fP \s-2raymond-of-pe-afort\s+2
+T}
+T{
+\fB24\fP \s-2ef-septuagesima-sunday-1\s+2
+T} T{
+\fB25\fP \s-2conversion-of-st-paul\s+2
+T} T{
+\fB26\fP \s-2polycarp\s+2
+T} T{
+\fB27\fP \s-2john-chrysostom\s+2
+T} T{
+\fB28\fP \s-2peter-nolasco\s+2
+T} T{
+\fB29\fP \s-2francis-de-sales\s+2
+T} T{
+\fB30\fP \s-2martina\s+2
+T}
+T{
+\fB31\fP \s-2ef-septuagesima-sunday-2\s+2
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T}
+.TE
+
+.SH
+Februarius
+.TS
+allbox;
+cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i)
+lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i).
+Dom Lun Mar Mer Iov Ven Sab
+T{
+
+T} T{
+\fB1\fP \s-2ignatius-of-antioch\s+2
+T} T{
+\fB2\fP \s-2purification-of-the-blessed-virgin-mary\s+2
+T} T{
+\fB3\fP \s-2ef-septuagesima-2-wednesday\s+2
+T} T{
+\fB4\fP \s-2andrew-corsini\s+2
+T} T{
+\fB5\fP \s-2agatha\s+2
+T} T{
+\fB6\fP \s-2titus\s+2
+T}
+T{
+\fB7\fP \s-2ef-septuagesima-sunday-3\s+2
+T} T{
+\fB8\fP \s-2john-of-matha\s+2
+T} T{
+\fB9\fP \s-2cyril-of-alexandria\s+2
+T} T{
+\fB10\fP \s-2ef-ash-wednesday\s+2
+T} T{
+\fB11\fP \s-2ef-lent-after-ashes-thursday\s+2
+T} T{
+\fB12\fP \s-2ef-lent-after-ashes-friday\s+2
+T} T{
+\fB13\fP \s-2ef-lent-after-ashes-saturday\s+2
+T}
+T{
+\fB14\fP \s-2ef-lent-sunday-1\s+2
+T} T{
+\fB15\fP \s-2ef-lent-1-monday\s+2
+T} T{
+\fB16\fP \s-2ef-lent-1-tuesday\s+2
+T} T{
+\fB17\fP \s-2ef-lent-ember-wed\s+2
+T} T{
+\fB18\fP \s-2ef-lent-1-thursday\s+2
+T} T{
+\fB19\fP \s-2ef-lent-ember-fri\s+2
+T} T{
+\fB20\fP \s-2ef-lent-ember-sat\s+2
+T}
+T{
+\fB21\fP \s-2ef-lent-sunday-2\s+2
+T} T{
+\fB22\fP \s-2chair-of-st-peter\s+2
+T} T{
+\fB23\fP \s-2ef-lent-2-tuesday\s+2
+T} T{
+\fB24\fP \s-2matthias\s+2
+T} T{
+\fB25\fP \s-2ef-lent-2-thursday\s+2
+T} T{
+\fB26\fP \s-2ef-lent-2-friday\s+2
+T} T{
+\fB27\fP \s-2ef-lent-2-saturday\s+2
+T}
+T{
+\fB28\fP \s-2ef-lent-sunday-3\s+2
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T}
+.TE
+
+.SH
+Martius
+.TS
+allbox;
+cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i)
+lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i).
+Dom Lun Mar Mer Iov Ven Sab
+T{
+
+T} T{
+\fB1\fP \s-2ef-lent-3-monday\s+2
+T} T{
+\fB2\fP \s-2ef-lent-3-tuesday\s+2
+T} T{
+\fB3\fP \s-2ef-lent-3-wednesday\s+2
+T} T{
+\fB4\fP \s-2ef-lent-3-thursday\s+2
+T} T{
+\fB5\fP \s-2ef-lent-3-friday\s+2
+T} T{
+\fB6\fP \s-2ef-lent-3-saturday\s+2
+T}
+T{
+\fB7\fP \s-2ef-lent-sunday-4\s+2
+T} T{
+\fB8\fP \s-2ef-lent-4-monday\s+2
+T} T{
+\fB9\fP \s-2ef-lent-4-tuesday\s+2
+T} T{
+\fB10\fP \s-2ef-lent-4-wednesday\s+2
+T} T{
+\fB11\fP \s-2ef-lent-4-thursday\s+2
+T} T{
+\fB12\fP \s-2ef-lent-4-friday\s+2
+T} T{
+\fB13\fP \s-2ef-lent-4-saturday\s+2
+T}
+T{
+\fB14\fP \s-2ef-passion-sunday\s+2
+T} T{
+\fB15\fP \s-2ef-passiontide-1-monday\s+2
+T} T{
+\fB16\fP \s-2ef-passiontide-1-tuesday\s+2
+T} T{
+\fB17\fP \s-2ef-passiontide-1-wednesday\s+2
+T} T{
+\fB18\fP \s-2ef-passiontide-1-thursday\s+2
+T} T{
+\fB19\fP \s-2joseph-spouse-of-the-bl-virgin-mary\s+2
+T} T{
+\fB20\fP \s-2ef-passiontide-1-saturday\s+2
+T}
+T{
+\fB21\fP \s-2ef-palm-sunday\s+2
+T} T{
+\fB22\fP \s-2ef-passiontide-2-monday\s+2
+T} T{
+\fB23\fP \s-2ef-passiontide-2-tuesday\s+2
+T} T{
+\fB24\fP \s-2ef-passiontide-2-wednesday\s+2
+T} T{
+\fB25\fP \s-2Feria V in Cena Domini\s+2
+T} T{
+\fB26\fP \s-2Feria VI in Passione et Morte Domini\s+2
+T} T{
+\fB27\fP \s-2Sabbato sancto\s+2
+T}
+T{
+\fB28\fP \s-2ef-easter-sunday\s+2
+T} T{
+\fB29\fP \s-2ef-easter-1-monday\s+2
+T} T{
+\fB30\fP \s-2ef-easter-1-tuesday\s+2
+T} T{
+\fB31\fP \s-2ef-easter-1-wednesday\s+2
+T} T{
+
+T} T{
+
+T} T{
+
+T}
+.TE
+
+.SH
+Aprilis
+.TS
+allbox;
+cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i)
+lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i).
+Dom Lun Mar Mer Iov Ven Sab
+T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+\fB1\fP \s-2ef-easter-1-thursday\s+2
+T} T{
+\fB2\fP \s-2ef-easter-1-friday\s+2
+T} T{
+\fB3\fP \s-2ef-easter-1-saturday\s+2
+T}
+T{
+\fB4\fP \s-2ef-low-sunday\s+2
+T} T{
+\fB5\fP \s-2annunciation-of-the-blessed-virgin-mary\s+2
+T} T{
+\fB6\fP \s-2ef-easter-2-tuesday\s+2
+T} T{
+\fB7\fP \s-2ef-easter-2-wednesday\s+2
+T} T{
+\fB8\fP \s-2ef-easter-2-thursday\s+2
+T} T{
+\fB9\fP \s-2ef-easter-2-friday\s+2
+T} T{
+\fB10\fP \s-2Officium sanctae Mariae in sabbato\s+2
+T}
+T{
+\fB11\fP \s-2ef-easter-sunday-3\s+2
+T} T{
+\fB12\fP \s-2ef-easter-3-monday\s+2
+T} T{
+\fB13\fP \s-2hermenegild\s+2
+T} T{
+\fB14\fP \s-2justin\s+2
+T} T{
+\fB15\fP \s-2ef-easter-3-thursday\s+2
+T} T{
+\fB16\fP \s-2ef-easter-3-friday\s+2
+T} T{
+\fB17\fP \s-2Officium sanctae Mariae in sabbato\s+2
+T}
+T{
+\fB18\fP \s-2ef-easter-sunday-4\s+2
+T} T{
+\fB19\fP \s-2ef-easter-4-monday\s+2
+T} T{
+\fB20\fP \s-2ef-easter-4-tuesday\s+2
+T} T{
+\fB21\fP \s-2anselm\s+2
+T} T{
+\fB22\fP \s-2sts-soter-caius\s+2
+T} T{
+\fB23\fP \s-2ef-easter-4-friday\s+2
+T} T{
+\fB24\fP \s-2fidelis-of-sigmaringen\s+2
+T}
+T{
+\fB25\fP \s-2ef-easter-sunday-5\s+2
+T} T{
+\fB26\fP \s-2sts-cletus-marcellinus\s+2
+T} T{
+\fB27\fP \s-2peter-canisius\s+2
+T} T{
+\fB28\fP \s-2paul-of-the-cross\s+2
+T} T{
+\fB29\fP \s-2peter-of-verona\s+2
+T} T{
+\fB30\fP \s-2catherine-of-siena\s+2
+T} T{
+
+T}
+.TE
+
+.SH
+Maius
+.TS
+allbox;
+cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i)
+lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i).
+Dom Lun Mar Mer Iov Ven Sab
+T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+\fB1\fP \s-2joseph-the-workman\s+2
+T}
+T{
+\fB2\fP \s-2ef-easter-sunday-6\s+2
+T} T{
+\fB3\fP \s-2ef-rogation-monday\s+2
+T} T{
+\fB4\fP \s-2monica\s+2
+T} T{
+\fB5\fP \s-2ef-ascension-vigil\s+2
+T} T{
+\fB6\fP \s-2ef-ascension\s+2
+T} T{
+\fB7\fP \s-2stanislaus\s+2
+T} T{
+\fB8\fP \s-2Officium sanctae Mariae in sabbato\s+2
+T}
+T{
+\fB9\fP \s-2ef-easter-sunday-7\s+2
+T} T{
+\fB10\fP \s-2antoninus\s+2
+T} T{
+\fB11\fP \s-2sts-philip-james\s+2
+T} T{
+\fB12\fP \s-2sts-nereus-achilleus-domitilla-pancras\s+2
+T} T{
+\fB13\fP \s-2robert-bellarmine\s+2
+T} T{
+\fB14\fP \s-2ef-easter-7-friday\s+2
+T} T{
+\fB15\fP \s-2ef-pentecost-vigil\s+2
+T}
+T{
+\fB16\fP \s-2ef-pentecost\s+2
+T} T{
+\fB17\fP \s-2ef-easter-8-monday\s+2
+T} T{
+\fB18\fP \s-2ef-easter-8-tuesday\s+2
+T} T{
+\fB19\fP \s-2ef-pentecost-ember-wed\s+2
+T} T{
+\fB20\fP \s-2ef-easter-8-thursday\s+2
+T} T{
+\fB21\fP \s-2ef-pentecost-ember-fri\s+2
+T} T{
+\fB22\fP \s-2ef-pentecost-ember-sat\s+2
+T}
+T{
+\fB23\fP \s-2ef-trinity\s+2
+T} T{
+\fB24\fP \s-2ef-time-after-pentecost-1-monday\s+2
+T} T{
+\fB25\fP \s-2gregory-vii\s+2
+T} T{
+\fB26\fP \s-2philip-neri\s+2
+T} T{
+\fB27\fP \s-2ef-corpus-christi\s+2
+T} T{
+\fB28\fP \s-2augustine-of-canterbury\s+2
+T} T{
+\fB29\fP \s-2mary-magdalene-de-pazzi\s+2
+T}
+T{
+\fB30\fP \s-2ef-time-after-pentecost-sunday-2\s+2
+T} T{
+\fB31\fP \s-2queenship-of-the-blessed-virgin-mary\s+2
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T}
+.TE
+
+.SH
+Iunius
+.TS
+allbox;
+cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i)
+lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i).
+Dom Lun Mar Mer Iov Ven Sab
+T{
+
+T} T{
+
+T} T{
+\fB1\fP \s-2angela-merici\s+2
+T} T{
+\fB2\fP \s-2ef-time-after-pentecost-2-wednesday\s+2
+T} T{
+\fB3\fP \s-2ef-time-after-pentecost-2-thursday\s+2
+T} T{
+\fB4\fP \s-2ef-sacred-heart\s+2
+T} T{
+\fB5\fP \s-2boniface\s+2
+T}
+T{
+\fB6\fP \s-2ef-time-after-pentecost-sunday-3\s+2
+T} T{
+\fB7\fP \s-2ef-time-after-pentecost-3-monday\s+2
+T} T{
+\fB8\fP \s-2ef-time-after-pentecost-3-tuesday\s+2
+T} T{
+\fB9\fP \s-2ef-time-after-pentecost-3-wednesday\s+2
+T} T{
+\fB10\fP \s-2margaret-of-scotland\s+2
+T} T{
+\fB11\fP \s-2barnabas\s+2
+T} T{
+\fB12\fP \s-2john-of-san-fecundo\s+2
+T}
+T{
+\fB13\fP \s-2ef-time-after-pentecost-sunday-4\s+2
+T} T{
+\fB14\fP \s-2basil-the-great\s+2
+T} T{
+\fB15\fP \s-2ef-time-after-pentecost-4-tuesday\s+2
+T} T{
+\fB16\fP \s-2ef-time-after-pentecost-4-wednesday\s+2
+T} T{
+\fB17\fP \s-2gregory-barbarigo\s+2
+T} T{
+\fB18\fP \s-2ephrem-of-syria\s+2
+T} T{
+\fB19\fP \s-2julia-of-falconieri\s+2
+T}
+T{
+\fB20\fP \s-2ef-time-after-pentecost-sunday-5\s+2
+T} T{
+\fB21\fP \s-2aloysius-gongzaga\s+2
+T} T{
+\fB22\fP \s-2paulinus-of-nola\s+2
+T} T{
+\fB23\fP \s-2vigil-of-the-nativity-of-st-john-the-baptist\s+2
+T} T{
+\fB24\fP \s-2nativity-of-st-john-the-baptist\s+2
+T} T{
+\fB25\fP \s-2william\s+2
+T} T{
+\fB26\fP \s-2sts-john-paul\s+2
+T}
+T{
+\fB27\fP \s-2ef-time-after-pentecost-sunday-6\s+2
+T} T{
+\fB28\fP \s-2vigil-of-sts-peter-paul\s+2
+T} T{
+\fB29\fP \s-2sts-peter-paul\s+2
+T} T{
+\fB30\fP \s-2in-commemoratione-sancti-pauli-apostoli\s+2
+T} T{
+
+T} T{
+
+T} T{
+
+T}
+.TE
+
+.SH
+Iulius
+.TS
+allbox;
+cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i)
+lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i).
+Dom Lun Mar Mer Iov Ven Sab
+T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+\fB1\fP \s-2precious-blood-of-our-lord-jesus-christ\s+2
+T} T{
+\fB2\fP \s-2visitation-of-the-blessed-virgin-mary\s+2
+T} T{
+\fB3\fP \s-2irenaeus\s+2
+T}
+T{
+\fB4\fP \s-2ef-time-after-pentecost-sunday-7\s+2
+T} T{
+\fB5\fP \s-2anthony-mary-zaccariah\s+2
+T} T{
+\fB6\fP \s-2ef-time-after-pentecost-7-tuesday\s+2
+T} T{
+\fB7\fP \s-2sts-cyril-methodius\s+2
+T} T{
+\fB8\fP \s-2elizabeth-of-portugal\s+2
+T} T{
+\fB9\fP \s-2ef-time-after-pentecost-7-friday\s+2
+T} T{
+\fB10\fP \s-2seven-holy-brothers-and-sts-rufina-secunda\s+2
+T}
+T{
+\fB11\fP \s-2ef-time-after-pentecost-sunday-8\s+2
+T} T{
+\fB12\fP \s-2john-gualbert\s+2
+T} T{
+\fB13\fP \s-2ef-time-after-pentecost-8-tuesday\s+2
+T} T{
+\fB14\fP \s-2bonaventure\s+2
+T} T{
+\fB15\fP \s-2henry-the-emperor\s+2
+T} T{
+\fB16\fP \s-2ef-time-after-pentecost-8-friday\s+2
+T} T{
+\fB17\fP \s-2Officium sanctae Mariae in sabbato\s+2
+T}
+T{
+\fB18\fP \s-2ef-time-after-pentecost-sunday-9\s+2
+T} T{
+\fB19\fP \s-2vincent-de-paul\s+2
+T} T{
+\fB20\fP \s-2jerome-emiliani\s+2
+T} T{
+\fB21\fP \s-2laurence-of-brindisi\s+2
+T} T{
+\fB22\fP \s-2mary-magdalene\s+2
+T} T{
+\fB23\fP \s-2apollinaris\s+2
+T} T{
+\fB24\fP \s-2Officium sanctae Mariae in sabbato\s+2
+T}
+T{
+\fB25\fP \s-2ef-time-after-pentecost-sunday-10\s+2
+T} T{
+\fB26\fP \s-2anne-mother-of-the-blessed-virgin\s+2
+T} T{
+\fB27\fP \s-2ef-time-after-pentecost-10-tuesday\s+2
+T} T{
+\fB28\fP \s-2sts-nazarius-celsus-st-victor-i-st-innocent-i\s+2
+T} T{
+\fB29\fP \s-2martha\s+2
+T} T{
+\fB30\fP \s-2ef-time-after-pentecost-10-friday\s+2
+T} T{
+\fB31\fP \s-2ignatius-loyola\s+2
+T}
+.TE
+
+.SH
+Augustus
+.TS
+allbox;
+cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i)
+lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i).
+Dom Lun Mar Mer Iov Ven Sab
+T{
+\fB1\fP \s-2ef-time-after-pentecost-sunday-11\s+2
+T} T{
+\fB2\fP \s-2alphonsus-liguori\s+2
+T} T{
+\fB3\fP \s-2ef-time-after-pentecost-11-tuesday\s+2
+T} T{
+\fB4\fP \s-2dominic\s+2
+T} T{
+\fB5\fP \s-2dedication-of-the-basilica-of-st-mary-major\s+2
+T} T{
+\fB6\fP \s-2transfiguration-of-our-lord\s+2
+T} T{
+\fB7\fP \s-2cajetan\s+2
+T}
+T{
+\fB8\fP \s-2ef-time-after-pentecost-sunday-12\s+2
+T} T{
+\fB9\fP \s-2vigil-of-st-lawrence\s+2
+T} T{
+\fB10\fP \s-2lawrence\s+2
+T} T{
+\fB11\fP \s-2ef-time-after-pentecost-12-wednesday\s+2
+T} T{
+\fB12\fP \s-2clare\s+2
+T} T{
+\fB13\fP \s-2ef-time-after-pentecost-12-friday\s+2
+T} T{
+\fB14\fP \s-2vigil-of-the-assumption\s+2
+T}
+T{
+\fB15\fP \s-2assumption-of-the-blessed-virgin-mary\s+2
+T} T{
+\fB16\fP \s-2joachim-father-of-the-blessed-virgin\s+2
+T} T{
+\fB17\fP \s-2hyacinth\s+2
+T} T{
+\fB18\fP \s-2ef-time-after-pentecost-13-wednesday\s+2
+T} T{
+\fB19\fP \s-2john-eudes\s+2
+T} T{
+\fB20\fP \s-2bernard-of-clairvaux\s+2
+T} T{
+\fB21\fP \s-2jane-frances-de-chantal\s+2
+T}
+T{
+\fB22\fP \s-2ef-time-after-pentecost-sunday-14\s+2
+T} T{
+\fB23\fP \s-2philip-benizi\s+2
+T} T{
+\fB24\fP \s-2bartholomew\s+2
+T} T{
+\fB25\fP \s-2louis-ix\s+2
+T} T{
+\fB26\fP \s-2ef-time-after-pentecost-14-thursday\s+2
+T} T{
+\fB27\fP \s-2joseph-calasance\s+2
+T} T{
+\fB28\fP \s-2augustine\s+2
+T}
+T{
+\fB29\fP \s-2ef-time-after-pentecost-sunday-15\s+2
+T} T{
+\fB30\fP \s-2rose-of-lima\s+2
+T} T{
+\fB31\fP \s-2raymond-nonnatus\s+2
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T}
+.TE
+
+.SH
+September
+.TS
+allbox;
+cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i)
+lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i).
+Dom Lun Mar Mer Iov Ven Sab
+T{
+
+T} T{
+
+T} T{
+
+T} T{
+\fB1\fP \s-2ef-time-after-pentecost-15-wednesday\s+2
+T} T{
+\fB2\fP \s-2stephen-of-hungary\s+2
+T} T{
+\fB3\fP \s-2pius-x\s+2
+T} T{
+\fB4\fP \s-2Officium sanctae Mariae in sabbato\s+2
+T}
+T{
+\fB5\fP \s-2ef-time-after-pentecost-sunday-16\s+2
+T} T{
+\fB6\fP \s-2ef-time-after-pentecost-16-monday\s+2
+T} T{
+\fB7\fP \s-2ef-time-after-pentecost-16-tuesday\s+2
+T} T{
+\fB8\fP \s-2nativity-of-the-blessed-virgin-mary\s+2
+T} T{
+\fB9\fP \s-2ef-time-after-pentecost-16-thursday\s+2
+T} T{
+\fB10\fP \s-2nicholas-of-tolentino\s+2
+T} T{
+\fB11\fP \s-2Officium sanctae Mariae in sabbato\s+2
+T}
+T{
+\fB12\fP \s-2ef-time-after-pentecost-sunday-17\s+2
+T} T{
+\fB13\fP \s-2ef-time-after-pentecost-17-monday\s+2
+T} T{
+\fB14\fP \s-2exaltation-of-the-holy-cross\s+2
+T} T{
+\fB15\fP \s-2seven-sorrows-of-the-blessed-virgin-mary\s+2
+T} T{
+\fB16\fP \s-2sts-cornelius-cyprian\s+2
+T} T{
+\fB17\fP \s-2ef-time-after-pentecost-17-friday\s+2
+T} T{
+\fB18\fP \s-2joseph-of-cupertino\s+2
+T}
+T{
+\fB19\fP \s-2ef-time-after-pentecost-sunday-18\s+2
+T} T{
+\fB20\fP \s-2ef-time-after-pentecost-18-monday\s+2
+T} T{
+\fB21\fP \s-2matthew\s+2
+T} T{
+\fB22\fP \s-2ef-september-ember-wed\s+2
+T} T{
+\fB23\fP \s-2linus\s+2
+T} T{
+\fB24\fP \s-2ef-september-ember-fri\s+2
+T} T{
+\fB25\fP \s-2ef-september-ember-sat\s+2
+T}
+T{
+\fB26\fP \s-2ef-time-after-pentecost-sunday-19\s+2
+T} T{
+\fB27\fP \s-2sts-cosmas-damian\s+2
+T} T{
+\fB28\fP \s-2wenceslaus\s+2
+T} T{
+\fB29\fP \s-2dedication-of-st-michael-the-archangel\s+2
+T} T{
+\fB30\fP \s-2jerome\s+2
+T} T{
+
+T} T{
+
+T}
+.TE
+
+.SH
+October
+.TS
+allbox;
+cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i)
+lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i).
+Dom Lun Mar Mer Iov Ven Sab
+T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+\fB1\fP \s-2ef-time-after-pentecost-19-friday\s+2
+T} T{
+\fB2\fP \s-2holy-guardian-angels\s+2
+T}
+T{
+\fB3\fP \s-2ef-time-after-pentecost-sunday-20\s+2
+T} T{
+\fB4\fP \s-2francis-of-assisi\s+2
+T} T{
+\fB5\fP \s-2ef-time-after-pentecost-20-tuesday\s+2
+T} T{
+\fB6\fP \s-2bruno\s+2
+T} T{
+\fB7\fP \s-2our-lady-of-the-rosary\s+2
+T} T{
+\fB8\fP \s-2bridget-of-sweden\s+2
+T} T{
+\fB9\fP \s-2john-leonardi\s+2
+T}
+T{
+\fB10\fP \s-2ef-time-after-pentecost-sunday-21\s+2
+T} T{
+\fB11\fP \s-2maternity-of-the-blessed-virgin-mary\s+2
+T} T{
+\fB12\fP \s-2ef-time-after-pentecost-21-tuesday\s+2
+T} T{
+\fB13\fP \s-2edward\s+2
+T} T{
+\fB14\fP \s-2callistus-i\s+2
+T} T{
+\fB15\fP \s-2teresa-of-avila\s+2
+T} T{
+\fB16\fP \s-2hedwig\s+2
+T}
+T{
+\fB17\fP \s-2ef-time-after-pentecost-sunday-22\s+2
+T} T{
+\fB18\fP \s-2luke-the-evangelist\s+2
+T} T{
+\fB19\fP \s-2peter-of-alcantara\s+2
+T} T{
+\fB20\fP \s-2john-cantius\s+2
+T} T{
+\fB21\fP \s-2ef-time-after-pentecost-22-thursday\s+2
+T} T{
+\fB22\fP \s-2ef-time-after-pentecost-22-friday\s+2
+T} T{
+\fB23\fP \s-2anthony-mary-claret\s+2
+T}
+T{
+\fB24\fP \s-2ef-time-after-pentecost-sunday-23\s+2
+T} T{
+\fB25\fP \s-2ef-time-after-pentecost-23-monday\s+2
+T} T{
+\fB26\fP \s-2ef-time-after-pentecost-23-tuesday\s+2
+T} T{
+\fB27\fP \s-2ef-time-after-pentecost-23-wednesday\s+2
+T} T{
+\fB28\fP \s-2sts-simon-jude\s+2
+T} T{
+\fB29\fP \s-2ef-time-after-pentecost-23-friday\s+2
+T} T{
+\fB30\fP \s-2Officium sanctae Mariae in sabbato\s+2
+T}
+T{
+\fB31\fP \s-2ef-christ-the-king\s+2
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T}
+.TE
+
+.SH
+November
+.TS
+allbox;
+cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i)
+lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i).
+Dom Lun Mar Mer Iov Ven Sab
+T{
+
+T} T{
+\fB1\fP \s-2all-saints\s+2
+T} T{
+\fB2\fP \s-2commemoration-of-all-souls\s+2
+T} T{
+\fB3\fP \s-2ef-time-after-pentecost-24-wednesday\s+2
+T} T{
+\fB4\fP \s-2charles-borromeo\s+2
+T} T{
+\fB5\fP \s-2ef-time-after-pentecost-24-friday\s+2
+T} T{
+\fB6\fP \s-2Officium sanctae Mariae in sabbato\s+2
+T}
+T{
+\fB7\fP \s-2ef-time-after-epiphany-sunday-5\s+2
+T} T{
+\fB8\fP \s-2ef-time-after-pentecost-25-monday\s+2
+T} T{
+\fB9\fP \s-2dedication-of-the-archbasilica-of-our-holy-savior\s+2
+T} T{
+\fB10\fP \s-2andrew-avellino\s+2
+T} T{
+\fB11\fP \s-2martin-of-tours\s+2
+T} T{
+\fB12\fP \s-2martin-i\s+2
+T} T{
+\fB13\fP \s-2didacus\s+2
+T}
+T{
+\fB14\fP \s-2ef-time-after-epiphany-sunday-6\s+2
+T} T{
+\fB15\fP \s-2albert-the-great\s+2
+T} T{
+\fB16\fP \s-2gertrude-the-great\s+2
+T} T{
+\fB17\fP \s-2gregory-the-wonderworker\s+2
+T} T{
+\fB18\fP \s-2dedication-of-the-basilicas-of-sts-peter-paul\s+2
+T} T{
+\fB19\fP \s-2elizabeth-of-hungary\s+2
+T} T{
+\fB20\fP \s-2felix-of-valois\s+2
+T}
+T{
+\fB21\fP \s-2ef-time-after-pentecost-sunday-24\s+2
+T} T{
+\fB22\fP \s-2cecilia\s+2
+T} T{
+\fB23\fP \s-2clement-i\s+2
+T} T{
+\fB24\fP \s-2john-of-the-cross\s+2
+T} T{
+\fB25\fP \s-2catherine-of-alexandria\s+2
+T} T{
+\fB26\fP \s-2sylvester\s+2
+T} T{
+\fB27\fP \s-2Officium sanctae Mariae in sabbato\s+2
+T}
+T{
+\fB28\fP \s-2ef-advent-sunday-1\s+2
+T} T{
+\fB29\fP \s-2ef-advent-1-monday\s+2
+T} T{
+\fB30\fP \s-2andrew\s+2
+T} T{
+
+T} T{
+
+T} T{
+
+T} T{
+
+T}
+.TE
+
+.SH
+December
+.TS
+allbox;
+cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i) cw(1.3i)
+lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i) lw(1.3i).
+Dom Lun Mar Mer Iov Ven Sab
+T{
+
+T} T{
+
+T} T{
+
+T} T{
+\fB1\fP \s-2ef-advent-1-wednesday\s+2
+T} T{
+\fB2\fP \s-2vivian\s+2
+T} T{
+\fB3\fP \s-2francis-xavier\s+2
+T} T{
+\fB4\fP \s-2peter-chrysologus\s+2
+T}
+T{
+\fB5\fP \s-2ef-advent-sunday-2\s+2
+T} T{
+\fB6\fP \s-2nicholas\s+2
+T} T{
+\fB7\fP \s-2ambrose\s+2
+T} T{
+\fB8\fP \s-2immaculate-conception-of-the-blessed-virgin-mary\s+2
+T} T{
+\fB9\fP \s-2ef-advent-2-thursday\s+2
+T} T{
+\fB10\fP \s-2ef-advent-2-friday\s+2
+T} T{
+\fB11\fP \s-2damasus-i\s+2
+T}
+T{
+\fB12\fP \s-2ef-advent-sunday-3\s+2
+T} T{
+\fB13\fP \s-2lucy\s+2
+T} T{
+\fB14\fP \s-2ef-advent-3-tuesday\s+2
+T} T{
+\fB15\fP \s-2ef-advent-ember-wed\s+2
+T} T{
+\fB16\fP \s-2eusebius\s+2
+T} T{
+\fB17\fP \s-2ef-advent-ember-fri\s+2
+T} T{
+\fB18\fP \s-2ef-advent-ember-sat\s+2
+T}
+T{
+\fB19\fP \s-2ef-advent-sunday-4\s+2
+T} T{
+\fB20\fP \s-2ef-advent-4-monday\s+2
+T} T{
+\fB21\fP \s-2thomas\s+2
+T} T{
+\fB22\fP \s-2ef-advent-4-wednesday\s+2
+T} T{
+\fB23\fP \s-2ef-advent-4-thursday\s+2
+T} T{
+\fB24\fP \s-2ef-nativity-vigil\s+2
+T} T{
+\fB25\fP \s-2ef-nativity\s+2
+T}
+T{
+\fB26\fP \s-2ef-christmas-sunday-0\s+2
+T} T{
+\fB27\fP \s-2john-the-evangelist\s+2
+T} T{
+\fB28\fP \s-2holy-innocents\s+2
+T} T{
+\fB29\fP \s-2ef-nativity-octave-day-5\s+2
+T} T{
+\fB30\fP \s-2ef-nativity-octave-day-6\s+2
+T} T{
+\fB31\fP \s-2ef-nativity-octave-day-7\s+2
+T} T{
+
+T}
+.TE
+
diff --git a/test/golden/grid-2027.tex b/test/golden/grid-2027.tex
new file mode 100644
index 0000000..9a50ddd
--- /dev/null
+++ b/test/golden/grid-2027.tex
@@ -0,0 +1,174 @@
+% colitur wall calendar -- LaTeX. flavour: latex
+% Build: colitur table --year 2027 --template grid.tex > grid.tex && pdflatex grid.tex
+%
+% Day label falls back to the slug when the day carries no Latin name (most
+% temporal days, and most sanctoral entries, which are Latin-less in the
+% shipped data). The fallback is written as a name-section wrapping a plain
+% var and its inverse, deliberately NOT as a single dotted-path lookup
+% followed by its own inverse: a dotted lookup that misses climbs to the
+% enclosing scope for the WHOLE path, and the month object also carries a
+% same-named key one level up, so the naive form would render the month's
+% own Latin name on every day lacking one, and never fall back at all.
+%
+% Every cell also carries a last flag, true on the seventh of its row: the
+% engine has no unless-last construct, so the separator BETWEEN cells comes
+% from data, not the template. A trailing separator on every cell would give
+% eight columns for seven and pdflatex would reject the file outright.
+\documentclass[10pt,landscape]{article}
+\usepackage[a4paper,margin=10mm]{geometry}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[table]{xcolor}
+\definecolor{lwhite}{HTML}{FFFFFF}\definecolor{lred}{HTML}{FFDDDD}
+\definecolor{lgreen}{HTML}{DDFFDD}\definecolor{lviolet}{HTML}{EEAAEE}
+\definecolor{lrose}{HTML}{FFDDEE}\definecolor{lblack}{HTML}{DDDDDD}
+\begin{document}
+
+\section*{ Ianuarius 2027 }
+\begin{tabular}{|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|}
+\hline Dom & Lun & Mar & Mer & Iov & Ven & Sab \\ \hline
+ & & & & & \cellcolor{lwhite}\textbf{ 1 } \footnotesize ef-circumcision & \cellcolor{lwhite}\textbf{ 2 } \footnotesize Officium sanctae Mariae in sabbato \\ \hline
+\cellcolor{lwhite}\textbf{ 3 } \footnotesize Sanctissimi Nominis Iesu & \cellcolor{lwhite}\textbf{ 4 } \footnotesize ef-christmas-1-monday & \cellcolor{lwhite}\textbf{ 5 } \footnotesize ef-christmas-1-tuesday & \cellcolor{lwhite}\textbf{ 6 } \footnotesize ef-epiphany & \cellcolor{lwhite}\textbf{ 7 } \footnotesize ef-christmas-2-thursday & \cellcolor{lwhite}\textbf{ 8 } \footnotesize ef-christmas-2-friday & \cellcolor{lwhite}\textbf{ 9 } \footnotesize Officium sanctae Mariae in sabbato \\ \hline
+\cellcolor{lwhite}\textbf{ 10 } \footnotesize Sanctae Familiae Iesu, Mariae, Ioseph & \cellcolor{lwhite}\textbf{ 11 } \footnotesize ef-time-after-epiphany-1-monday & \cellcolor{lwhite}\textbf{ 12 } \footnotesize ef-time-after-epiphany-1-tuesday & \cellcolor{lwhite}\textbf{ 13 } \footnotesize commemoration-of-the-baptism-of-the-lord & \cellcolor{lwhite}\textbf{ 14 } \footnotesize hilary & \cellcolor{lwhite}\textbf{ 15 } \footnotesize paul-the-first-hermit & \cellcolor{lred}\textbf{ 16 } \footnotesize marcellus-i \\ \hline
+\cellcolor{lgreen}\textbf{ 17 } \footnotesize ef-time-after-epiphany-sunday-2 & \cellcolor{lgreen}\textbf{ 18 } \footnotesize ef-time-after-epiphany-2-monday & \cellcolor{lgreen}\textbf{ 19 } \footnotesize ef-time-after-epiphany-2-tuesday & \cellcolor{lred}\textbf{ 20 } \footnotesize sts-fabian-sebastian & \cellcolor{lred}\textbf{ 21 } \footnotesize agnes & \cellcolor{lred}\textbf{ 22 } \footnotesize sts-vincent-anastasius & \cellcolor{lwhite}\textbf{ 23 } \footnotesize raymond-of-pe-afort \\ \hline
+\cellcolor{lviolet}\textbf{ 24 } \footnotesize ef-septuagesima-sunday-1 & \cellcolor{lwhite}\textbf{ 25 } \footnotesize conversion-of-st-paul & \cellcolor{lred}\textbf{ 26 } \footnotesize polycarp & \cellcolor{lwhite}\textbf{ 27 } \footnotesize john-chrysostom & \cellcolor{lwhite}\textbf{ 28 } \footnotesize peter-nolasco & \cellcolor{lwhite}\textbf{ 29 } \footnotesize francis-de-sales & \cellcolor{lred}\textbf{ 30 } \footnotesize martina \\ \hline
+\cellcolor{lviolet}\textbf{ 31 } \footnotesize ef-septuagesima-sunday-2 & & & & & & \\ \hline
+
+\end{tabular}
+\newpage
+
+\section*{ Februarius 2027 }
+\begin{tabular}{|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|}
+\hline Dom & Lun & Mar & Mer & Iov & Ven & Sab \\ \hline
+ & \cellcolor{lred}\textbf{ 1 } \footnotesize ignatius-of-antioch & \cellcolor{lwhite}\textbf{ 2 } \footnotesize purification-of-the-blessed-virgin-mary & \cellcolor{lviolet}\textbf{ 3 } \footnotesize ef-septuagesima-2-wednesday & \cellcolor{lwhite}\textbf{ 4 } \footnotesize andrew-corsini & \cellcolor{lred}\textbf{ 5 } \footnotesize agatha & \cellcolor{lwhite}\textbf{ 6 } \footnotesize titus \\ \hline
+\cellcolor{lviolet}\textbf{ 7 } \footnotesize ef-septuagesima-sunday-3 & \cellcolor{lwhite}\textbf{ 8 } \footnotesize john-of-matha & \cellcolor{lwhite}\textbf{ 9 } \footnotesize cyril-of-alexandria & \cellcolor{lviolet}\textbf{ 10 } \footnotesize ef-ash-wednesday & \cellcolor{lviolet}\textbf{ 11 } \footnotesize ef-lent-after-ashes-thursday & \cellcolor{lviolet}\textbf{ 12 } \footnotesize ef-lent-after-ashes-friday & \cellcolor{lviolet}\textbf{ 13 } \footnotesize ef-lent-after-ashes-saturday \\ \hline
+\cellcolor{lviolet}\textbf{ 14 } \footnotesize ef-lent-sunday-1 & \cellcolor{lviolet}\textbf{ 15 } \footnotesize ef-lent-1-monday & \cellcolor{lviolet}\textbf{ 16 } \footnotesize ef-lent-1-tuesday & \cellcolor{lviolet}\textbf{ 17 } \footnotesize ef-lent-ember-wed & \cellcolor{lviolet}\textbf{ 18 } \footnotesize ef-lent-1-thursday & \cellcolor{lviolet}\textbf{ 19 } \footnotesize ef-lent-ember-fri & \cellcolor{lviolet}\textbf{ 20 } \footnotesize ef-lent-ember-sat \\ \hline
+\cellcolor{lviolet}\textbf{ 21 } \footnotesize ef-lent-sunday-2 & \cellcolor{lwhite}\textbf{ 22 } \footnotesize chair-of-st-peter & \cellcolor{lviolet}\textbf{ 23 } \footnotesize ef-lent-2-tuesday & \cellcolor{lred}\textbf{ 24 } \footnotesize matthias & \cellcolor{lviolet}\textbf{ 25 } \footnotesize ef-lent-2-thursday & \cellcolor{lviolet}\textbf{ 26 } \footnotesize ef-lent-2-friday & \cellcolor{lviolet}\textbf{ 27 } \footnotesize ef-lent-2-saturday \\ \hline
+\cellcolor{lviolet}\textbf{ 28 } \footnotesize ef-lent-sunday-3 & & & & & & \\ \hline
+
+\end{tabular}
+\newpage
+
+\section*{ Martius 2027 }
+\begin{tabular}{|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|}
+\hline Dom & Lun & Mar & Mer & Iov & Ven & Sab \\ \hline
+ & \cellcolor{lviolet}\textbf{ 1 } \footnotesize ef-lent-3-monday & \cellcolor{lviolet}\textbf{ 2 } \footnotesize ef-lent-3-tuesday & \cellcolor{lviolet}\textbf{ 3 } \footnotesize ef-lent-3-wednesday & \cellcolor{lviolet}\textbf{ 4 } \footnotesize ef-lent-3-thursday & \cellcolor{lviolet}\textbf{ 5 } \footnotesize ef-lent-3-friday & \cellcolor{lviolet}\textbf{ 6 } \footnotesize ef-lent-3-saturday \\ \hline
+\cellcolor{lrose}\textbf{ 7 } \footnotesize ef-lent-sunday-4 & \cellcolor{lviolet}\textbf{ 8 } \footnotesize ef-lent-4-monday & \cellcolor{lviolet}\textbf{ 9 } \footnotesize ef-lent-4-tuesday & \cellcolor{lviolet}\textbf{ 10 } \footnotesize ef-lent-4-wednesday & \cellcolor{lviolet}\textbf{ 11 } \footnotesize ef-lent-4-thursday & \cellcolor{lviolet}\textbf{ 12 } \footnotesize ef-lent-4-friday & \cellcolor{lviolet}\textbf{ 13 } \footnotesize ef-lent-4-saturday \\ \hline
+\cellcolor{lviolet}\textbf{ 14 } \footnotesize ef-passion-sunday & \cellcolor{lviolet}\textbf{ 15 } \footnotesize ef-passiontide-1-monday & \cellcolor{lviolet}\textbf{ 16 } \footnotesize ef-passiontide-1-tuesday & \cellcolor{lviolet}\textbf{ 17 } \footnotesize ef-passiontide-1-wednesday & \cellcolor{lviolet}\textbf{ 18 } \footnotesize ef-passiontide-1-thursday & \cellcolor{lwhite}\textbf{ 19 } \footnotesize joseph-spouse-of-the-bl-virgin-mary & \cellcolor{lviolet}\textbf{ 20 } \footnotesize ef-passiontide-1-saturday \\ \hline
+\cellcolor{lviolet}\textbf{ 21 } \footnotesize ef-palm-sunday & \cellcolor{lviolet}\textbf{ 22 } \footnotesize ef-passiontide-2-monday & \cellcolor{lviolet}\textbf{ 23 } \footnotesize ef-passiontide-2-tuesday & \cellcolor{lviolet}\textbf{ 24 } \footnotesize ef-passiontide-2-wednesday & \cellcolor{lwhite}\textbf{ 25 } \footnotesize Feria V in Cena Domini & \cellcolor{lblack}\textbf{ 26 } \footnotesize Feria VI in Passione et Morte Domini & \cellcolor{lviolet}\textbf{ 27 } \footnotesize Sabbato sancto \\ \hline
+\cellcolor{lwhite}\textbf{ 28 } \footnotesize ef-easter-sunday & \cellcolor{lwhite}\textbf{ 29 } \footnotesize ef-easter-1-monday & \cellcolor{lwhite}\textbf{ 30 } \footnotesize ef-easter-1-tuesday & \cellcolor{lwhite}\textbf{ 31 } \footnotesize ef-easter-1-wednesday & & & \\ \hline
+
+\end{tabular}
+\newpage
+
+\section*{ Aprilis 2027 }
+\begin{tabular}{|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|}
+\hline Dom & Lun & Mar & Mer & Iov & Ven & Sab \\ \hline
+ & & & & \cellcolor{lwhite}\textbf{ 1 } \footnotesize ef-easter-1-thursday & \cellcolor{lwhite}\textbf{ 2 } \footnotesize ef-easter-1-friday & \cellcolor{lwhite}\textbf{ 3 } \footnotesize ef-easter-1-saturday \\ \hline
+\cellcolor{lwhite}\textbf{ 4 } \footnotesize ef-low-sunday & \cellcolor{lwhite}\textbf{ 5 } \footnotesize annunciation-of-the-blessed-virgin-mary & \cellcolor{lwhite}\textbf{ 6 } \footnotesize ef-easter-2-tuesday & \cellcolor{lwhite}\textbf{ 7 } \footnotesize ef-easter-2-wednesday & \cellcolor{lwhite}\textbf{ 8 } \footnotesize ef-easter-2-thursday & \cellcolor{lwhite}\textbf{ 9 } \footnotesize ef-easter-2-friday & \cellcolor{lwhite}\textbf{ 10 } \footnotesize Officium sanctae Mariae in sabbato \\ \hline
+\cellcolor{lwhite}\textbf{ 11 } \footnotesize ef-easter-sunday-3 & \cellcolor{lwhite}\textbf{ 12 } \footnotesize ef-easter-3-monday & \cellcolor{lred}\textbf{ 13 } \footnotesize hermenegild & \cellcolor{lred}\textbf{ 14 } \footnotesize justin & \cellcolor{lwhite}\textbf{ 15 } \footnotesize ef-easter-3-thursday & \cellcolor{lwhite}\textbf{ 16 } \footnotesize ef-easter-3-friday & \cellcolor{lwhite}\textbf{ 17 } \footnotesize Officium sanctae Mariae in sabbato \\ \hline
+\cellcolor{lwhite}\textbf{ 18 } \footnotesize ef-easter-sunday-4 & \cellcolor{lwhite}\textbf{ 19 } \footnotesize ef-easter-4-monday & \cellcolor{lwhite}\textbf{ 20 } \footnotesize ef-easter-4-tuesday & \cellcolor{lwhite}\textbf{ 21 } \footnotesize anselm & \cellcolor{lred}\textbf{ 22 } \footnotesize sts-soter-caius & \cellcolor{lwhite}\textbf{ 23 } \footnotesize ef-easter-4-friday & \cellcolor{lred}\textbf{ 24 } \footnotesize fidelis-of-sigmaringen \\ \hline
+\cellcolor{lwhite}\textbf{ 25 } \footnotesize ef-easter-sunday-5 & \cellcolor{lred}\textbf{ 26 } \footnotesize sts-cletus-marcellinus & \cellcolor{lwhite}\textbf{ 27 } \footnotesize peter-canisius & \cellcolor{lwhite}\textbf{ 28 } \footnotesize paul-of-the-cross & \cellcolor{lred}\textbf{ 29 } \footnotesize peter-of-verona & \cellcolor{lwhite}\textbf{ 30 } \footnotesize catherine-of-siena & \\ \hline
+
+\end{tabular}
+\newpage
+
+\section*{ Maius 2027 }
+\begin{tabular}{|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|}
+\hline Dom & Lun & Mar & Mer & Iov & Ven & Sab \\ \hline
+ & & & & & & \cellcolor{lwhite}\textbf{ 1 } \footnotesize joseph-the-workman \\ \hline
+\cellcolor{lwhite}\textbf{ 2 } \footnotesize ef-easter-sunday-6 & \cellcolor{lviolet}\textbf{ 3 } \footnotesize ef-rogation-monday & \cellcolor{lwhite}\textbf{ 4 } \footnotesize monica & \cellcolor{lwhite}\textbf{ 5 } \footnotesize ef-ascension-vigil & \cellcolor{lwhite}\textbf{ 6 } \footnotesize ef-ascension & \cellcolor{lred}\textbf{ 7 } \footnotesize stanislaus & \cellcolor{lwhite}\textbf{ 8 } \footnotesize Officium sanctae Mariae in sabbato \\ \hline
+\cellcolor{lwhite}\textbf{ 9 } \footnotesize ef-easter-sunday-7 & \cellcolor{lwhite}\textbf{ 10 } \footnotesize antoninus & \cellcolor{lred}\textbf{ 11 } \footnotesize sts-philip-james & \cellcolor{lred}\textbf{ 12 } \footnotesize sts-nereus-achilleus-domitilla-pancras & \cellcolor{lwhite}\textbf{ 13 } \footnotesize robert-bellarmine & \cellcolor{lwhite}\textbf{ 14 } \footnotesize ef-easter-7-friday & \cellcolor{lred}\textbf{ 15 } \footnotesize ef-pentecost-vigil \\ \hline
+\cellcolor{lred}\textbf{ 16 } \footnotesize ef-pentecost & \cellcolor{lred}\textbf{ 17 } \footnotesize ef-easter-8-monday & \cellcolor{lred}\textbf{ 18 } \footnotesize ef-easter-8-tuesday & \cellcolor{lred}\textbf{ 19 } \footnotesize ef-pentecost-ember-wed & \cellcolor{lred}\textbf{ 20 } \footnotesize ef-easter-8-thursday & \cellcolor{lred}\textbf{ 21 } \footnotesize ef-pentecost-ember-fri & \cellcolor{lred}\textbf{ 22 } \footnotesize ef-pentecost-ember-sat \\ \hline
+\cellcolor{lwhite}\textbf{ 23 } \footnotesize ef-trinity & \cellcolor{lgreen}\textbf{ 24 } \footnotesize ef-time-after-pentecost-1-monday & \cellcolor{lwhite}\textbf{ 25 } \footnotesize gregory-vii & \cellcolor{lwhite}\textbf{ 26 } \footnotesize philip-neri & \cellcolor{lwhite}\textbf{ 27 } \footnotesize ef-corpus-christi & \cellcolor{lwhite}\textbf{ 28 } \footnotesize augustine-of-canterbury & \cellcolor{lwhite}\textbf{ 29 } \footnotesize mary-magdalene-de-pazzi \\ \hline
+\cellcolor{lgreen}\textbf{ 30 } \footnotesize ef-time-after-pentecost-sunday-2 & \cellcolor{lwhite}\textbf{ 31 } \footnotesize queenship-of-the-blessed-virgin-mary & & & & & \\ \hline
+
+\end{tabular}
+\newpage
+
+\section*{ Iunius 2027 }
+\begin{tabular}{|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|}
+\hline Dom & Lun & Mar & Mer & Iov & Ven & Sab \\ \hline
+ & & \cellcolor{lwhite}\textbf{ 1 } \footnotesize angela-merici & \cellcolor{lgreen}\textbf{ 2 } \footnotesize ef-time-after-pentecost-2-wednesday & \cellcolor{lgreen}\textbf{ 3 } \footnotesize ef-time-after-pentecost-2-thursday & \cellcolor{lwhite}\textbf{ 4 } \footnotesize ef-sacred-heart & \cellcolor{lred}\textbf{ 5 } \footnotesize boniface \\ \hline
+\cellcolor{lgreen}\textbf{ 6 } \footnotesize ef-time-after-pentecost-sunday-3 & \cellcolor{lgreen}\textbf{ 7 } \footnotesize ef-time-after-pentecost-3-monday & \cellcolor{lgreen}\textbf{ 8 } \footnotesize ef-time-after-pentecost-3-tuesday & \cellcolor{lgreen}\textbf{ 9 } \footnotesize ef-time-after-pentecost-3-wednesday & \cellcolor{lwhite}\textbf{ 10 } \footnotesize margaret-of-scotland & \cellcolor{lred}\textbf{ 11 } \footnotesize barnabas & \cellcolor{lwhite}\textbf{ 12 } \footnotesize john-of-san-fecundo \\ \hline
+\cellcolor{lgreen}\textbf{ 13 } \footnotesize ef-time-after-pentecost-sunday-4 & \cellcolor{lwhite}\textbf{ 14 } \footnotesize basil-the-great & \cellcolor{lgreen}\textbf{ 15 } \footnotesize ef-time-after-pentecost-4-tuesday & \cellcolor{lgreen}\textbf{ 16 } \footnotesize ef-time-after-pentecost-4-wednesday & \cellcolor{lwhite}\textbf{ 17 } \footnotesize gregory-barbarigo & \cellcolor{lwhite}\textbf{ 18 } \footnotesize ephrem-of-syria & \cellcolor{lwhite}\textbf{ 19 } \footnotesize julia-of-falconieri \\ \hline
+\cellcolor{lgreen}\textbf{ 20 } \footnotesize ef-time-after-pentecost-sunday-5 & \cellcolor{lwhite}\textbf{ 21 } \footnotesize aloysius-gongzaga & \cellcolor{lwhite}\textbf{ 22 } \footnotesize paulinus-of-nola & \cellcolor{lviolet}\textbf{ 23 } \footnotesize vigil-of-the-nativity-of-st-john-the-baptist & \cellcolor{lwhite}\textbf{ 24 } \footnotesize nativity-of-st-john-the-baptist & \cellcolor{lwhite}\textbf{ 25 } \footnotesize william & \cellcolor{lred}\textbf{ 26 } \footnotesize sts-john-paul \\ \hline
+\cellcolor{lgreen}\textbf{ 27 } \footnotesize ef-time-after-pentecost-sunday-6 & \cellcolor{lviolet}\textbf{ 28 } \footnotesize vigil-of-sts-peter-paul & \cellcolor{lred}\textbf{ 29 } \footnotesize sts-peter-paul & \cellcolor{lred}\textbf{ 30 } \footnotesize in-commemoratione-sancti-pauli-apostoli & & & \\ \hline
+
+\end{tabular}
+\newpage
+
+\section*{ Iulius 2027 }
+\begin{tabular}{|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|}
+\hline Dom & Lun & Mar & Mer & Iov & Ven & Sab \\ \hline
+ & & & & \cellcolor{lred}\textbf{ 1 } \footnotesize precious-blood-of-our-lord-jesus-christ & \cellcolor{lwhite}\textbf{ 2 } \footnotesize visitation-of-the-blessed-virgin-mary & \cellcolor{lred}\textbf{ 3 } \footnotesize irenaeus \\ \hline
+\cellcolor{lgreen}\textbf{ 4 } \footnotesize ef-time-after-pentecost-sunday-7 & \cellcolor{lwhite}\textbf{ 5 } \footnotesize anthony-mary-zaccariah & \cellcolor{lgreen}\textbf{ 6 } \footnotesize ef-time-after-pentecost-7-tuesday & \cellcolor{lwhite}\textbf{ 7 } \footnotesize sts-cyril-methodius & \cellcolor{lwhite}\textbf{ 8 } \footnotesize elizabeth-of-portugal & \cellcolor{lgreen}\textbf{ 9 } \footnotesize ef-time-after-pentecost-7-friday & \cellcolor{lred}\textbf{ 10 } \footnotesize seven-holy-brothers-and-sts-rufina-secunda \\ \hline
+\cellcolor{lgreen}\textbf{ 11 } \footnotesize ef-time-after-pentecost-sunday-8 & \cellcolor{lwhite}\textbf{ 12 } \footnotesize john-gualbert & \cellcolor{lgreen}\textbf{ 13 } \footnotesize ef-time-after-pentecost-8-tuesday & \cellcolor{lwhite}\textbf{ 14 } \footnotesize bonaventure & \cellcolor{lwhite}\textbf{ 15 } \footnotesize henry-the-emperor & \cellcolor{lgreen}\textbf{ 16 } \footnotesize ef-time-after-pentecost-8-friday & \cellcolor{lwhite}\textbf{ 17 } \footnotesize Officium sanctae Mariae in sabbato \\ \hline
+\cellcolor{lgreen}\textbf{ 18 } \footnotesize ef-time-after-pentecost-sunday-9 & \cellcolor{lwhite}\textbf{ 19 } \footnotesize vincent-de-paul & \cellcolor{lwhite}\textbf{ 20 } \footnotesize jerome-emiliani & \cellcolor{lwhite}\textbf{ 21 } \footnotesize laurence-of-brindisi & \cellcolor{lwhite}\textbf{ 22 } \footnotesize mary-magdalene & \cellcolor{lred}\textbf{ 23 } \footnotesize apollinaris & \cellcolor{lwhite}\textbf{ 24 } \footnotesize Officium sanctae Mariae in sabbato \\ \hline
+\cellcolor{lgreen}\textbf{ 25 } \footnotesize ef-time-after-pentecost-sunday-10 & \cellcolor{lwhite}\textbf{ 26 } \footnotesize anne-mother-of-the-blessed-virgin & \cellcolor{lgreen}\textbf{ 27 } \footnotesize ef-time-after-pentecost-10-tuesday & \cellcolor{lred}\textbf{ 28 } \footnotesize sts-nazarius-celsus-st-victor-i-st-innocent-i & \cellcolor{lwhite}\textbf{ 29 } \footnotesize martha & \cellcolor{lgreen}\textbf{ 30 } \footnotesize ef-time-after-pentecost-10-friday & \cellcolor{lwhite}\textbf{ 31 } \footnotesize ignatius-loyola \\ \hline
+
+\end{tabular}
+\newpage
+
+\section*{ Augustus 2027 }
+\begin{tabular}{|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|}
+\hline Dom & Lun & Mar & Mer & Iov & Ven & Sab \\ \hline
+\cellcolor{lgreen}\textbf{ 1 } \footnotesize ef-time-after-pentecost-sunday-11 & \cellcolor{lwhite}\textbf{ 2 } \footnotesize alphonsus-liguori & \cellcolor{lgreen}\textbf{ 3 } \footnotesize ef-time-after-pentecost-11-tuesday & \cellcolor{lwhite}\textbf{ 4 } \footnotesize dominic & \cellcolor{lwhite}\textbf{ 5 } \footnotesize dedication-of-the-basilica-of-st-mary-major & \cellcolor{lwhite}\textbf{ 6 } \footnotesize transfiguration-of-our-lord & \cellcolor{lwhite}\textbf{ 7 } \footnotesize cajetan \\ \hline
+\cellcolor{lgreen}\textbf{ 8 } \footnotesize ef-time-after-pentecost-sunday-12 & \cellcolor{lviolet}\textbf{ 9 } \footnotesize vigil-of-st-lawrence & \cellcolor{lred}\textbf{ 10 } \footnotesize lawrence & \cellcolor{lgreen}\textbf{ 11 } \footnotesize ef-time-after-pentecost-12-wednesday & \cellcolor{lwhite}\textbf{ 12 } \footnotesize clare & \cellcolor{lgreen}\textbf{ 13 } \footnotesize ef-time-after-pentecost-12-friday & \cellcolor{lviolet}\textbf{ 14 } \footnotesize vigil-of-the-assumption \\ \hline
+\cellcolor{lwhite}\textbf{ 15 } \footnotesize assumption-of-the-blessed-virgin-mary & \cellcolor{lwhite}\textbf{ 16 } \footnotesize joachim-father-of-the-blessed-virgin & \cellcolor{lwhite}\textbf{ 17 } \footnotesize hyacinth & \cellcolor{lgreen}\textbf{ 18 } \footnotesize ef-time-after-pentecost-13-wednesday & \cellcolor{lwhite}\textbf{ 19 } \footnotesize john-eudes & \cellcolor{lwhite}\textbf{ 20 } \footnotesize bernard-of-clairvaux & \cellcolor{lwhite}\textbf{ 21 } \footnotesize jane-frances-de-chantal \\ \hline
+\cellcolor{lgreen}\textbf{ 22 } \footnotesize ef-time-after-pentecost-sunday-14 & \cellcolor{lwhite}\textbf{ 23 } \footnotesize philip-benizi & \cellcolor{lred}\textbf{ 24 } \footnotesize bartholomew & \cellcolor{lwhite}\textbf{ 25 } \footnotesize louis-ix & \cellcolor{lgreen}\textbf{ 26 } \footnotesize ef-time-after-pentecost-14-thursday & \cellcolor{lwhite}\textbf{ 27 } \footnotesize joseph-calasance & \cellcolor{lwhite}\textbf{ 28 } \footnotesize augustine \\ \hline
+\cellcolor{lgreen}\textbf{ 29 } \footnotesize ef-time-after-pentecost-sunday-15 & \cellcolor{lwhite}\textbf{ 30 } \footnotesize rose-of-lima & \cellcolor{lwhite}\textbf{ 31 } \footnotesize raymond-nonnatus & & & & \\ \hline
+
+\end{tabular}
+\newpage
+
+\section*{ September 2027 }
+\begin{tabular}{|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|}
+\hline Dom & Lun & Mar & Mer & Iov & Ven & Sab \\ \hline
+ & & & \cellcolor{lgreen}\textbf{ 1 } \footnotesize ef-time-after-pentecost-15-wednesday & \cellcolor{lwhite}\textbf{ 2 } \footnotesize stephen-of-hungary & \cellcolor{lwhite}\textbf{ 3 } \footnotesize pius-x & \cellcolor{lwhite}\textbf{ 4 } \footnotesize Officium sanctae Mariae in sabbato \\ \hline
+\cellcolor{lgreen}\textbf{ 5 } \footnotesize ef-time-after-pentecost-sunday-16 & \cellcolor{lgreen}\textbf{ 6 } \footnotesize ef-time-after-pentecost-16-monday & \cellcolor{lgreen}\textbf{ 7 } \footnotesize ef-time-after-pentecost-16-tuesday & \cellcolor{lwhite}\textbf{ 8 } \footnotesize nativity-of-the-blessed-virgin-mary & \cellcolor{lgreen}\textbf{ 9 } \footnotesize ef-time-after-pentecost-16-thursday & \cellcolor{lwhite}\textbf{ 10 } \footnotesize nicholas-of-tolentino & \cellcolor{lwhite}\textbf{ 11 } \footnotesize Officium sanctae Mariae in sabbato \\ \hline
+\cellcolor{lgreen}\textbf{ 12 } \footnotesize ef-time-after-pentecost-sunday-17 & \cellcolor{lgreen}\textbf{ 13 } \footnotesize ef-time-after-pentecost-17-monday & \cellcolor{lred}\textbf{ 14 } \footnotesize exaltation-of-the-holy-cross & \cellcolor{lwhite}\textbf{ 15 } \footnotesize seven-sorrows-of-the-blessed-virgin-mary & \cellcolor{lred}\textbf{ 16 } \footnotesize sts-cornelius-cyprian & \cellcolor{lgreen}\textbf{ 17 } \footnotesize ef-time-after-pentecost-17-friday & \cellcolor{lwhite}\textbf{ 18 } \footnotesize joseph-of-cupertino \\ \hline
+\cellcolor{lgreen}\textbf{ 19 } \footnotesize ef-time-after-pentecost-sunday-18 & \cellcolor{lgreen}\textbf{ 20 } \footnotesize ef-time-after-pentecost-18-monday & \cellcolor{lred}\textbf{ 21 } \footnotesize matthew & \cellcolor{lviolet}\textbf{ 22 } \footnotesize ef-september-ember-wed & \cellcolor{lred}\textbf{ 23 } \footnotesize linus & \cellcolor{lviolet}\textbf{ 24 } \footnotesize ef-september-ember-fri & \cellcolor{lviolet}\textbf{ 25 } \footnotesize ef-september-ember-sat \\ \hline
+\cellcolor{lgreen}\textbf{ 26 } \footnotesize ef-time-after-pentecost-sunday-19 & \cellcolor{lred}\textbf{ 27 } \footnotesize sts-cosmas-damian & \cellcolor{lred}\textbf{ 28 } \footnotesize wenceslaus & \cellcolor{lwhite}\textbf{ 29 } \footnotesize dedication-of-st-michael-the-archangel & \cellcolor{lwhite}\textbf{ 30 } \footnotesize jerome & & \\ \hline
+
+\end{tabular}
+\newpage
+
+\section*{ October 2027 }
+\begin{tabular}{|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|}
+\hline Dom & Lun & Mar & Mer & Iov & Ven & Sab \\ \hline
+ & & & & & \cellcolor{lgreen}\textbf{ 1 } \footnotesize ef-time-after-pentecost-19-friday & \cellcolor{lwhite}\textbf{ 2 } \footnotesize holy-guardian-angels \\ \hline
+\cellcolor{lgreen}\textbf{ 3 } \footnotesize ef-time-after-pentecost-sunday-20 & \cellcolor{lwhite}\textbf{ 4 } \footnotesize francis-of-assisi & \cellcolor{lgreen}\textbf{ 5 } \footnotesize ef-time-after-pentecost-20-tuesday & \cellcolor{lwhite}\textbf{ 6 } \footnotesize bruno & \cellcolor{lwhite}\textbf{ 7 } \footnotesize our-lady-of-the-rosary & \cellcolor{lwhite}\textbf{ 8 } \footnotesize bridget-of-sweden & \cellcolor{lwhite}\textbf{ 9 } \footnotesize john-leonardi \\ \hline
+\cellcolor{lgreen}\textbf{ 10 } \footnotesize ef-time-after-pentecost-sunday-21 & \cellcolor{lwhite}\textbf{ 11 } \footnotesize maternity-of-the-blessed-virgin-mary & \cellcolor{lgreen}\textbf{ 12 } \footnotesize ef-time-after-pentecost-21-tuesday & \cellcolor{lwhite}\textbf{ 13 } \footnotesize edward & \cellcolor{lred}\textbf{ 14 } \footnotesize callistus-i & \cellcolor{lwhite}\textbf{ 15 } \footnotesize teresa-of-avila & \cellcolor{lwhite}\textbf{ 16 } \footnotesize hedwig \\ \hline
+\cellcolor{lgreen}\textbf{ 17 } \footnotesize ef-time-after-pentecost-sunday-22 & \cellcolor{lred}\textbf{ 18 } \footnotesize luke-the-evangelist & \cellcolor{lwhite}\textbf{ 19 } \footnotesize peter-of-alcantara & \cellcolor{lwhite}\textbf{ 20 } \footnotesize john-cantius & \cellcolor{lgreen}\textbf{ 21 } \footnotesize ef-time-after-pentecost-22-thursday & \cellcolor{lgreen}\textbf{ 22 } \footnotesize ef-time-after-pentecost-22-friday & \cellcolor{lwhite}\textbf{ 23 } \footnotesize anthony-mary-claret \\ \hline
+\cellcolor{lgreen}\textbf{ 24 } \footnotesize ef-time-after-pentecost-sunday-23 & \cellcolor{lgreen}\textbf{ 25 } \footnotesize ef-time-after-pentecost-23-monday & \cellcolor{lgreen}\textbf{ 26 } \footnotesize ef-time-after-pentecost-23-tuesday & \cellcolor{lgreen}\textbf{ 27 } \footnotesize ef-time-after-pentecost-23-wednesday & \cellcolor{lred}\textbf{ 28 } \footnotesize sts-simon-jude & \cellcolor{lgreen}\textbf{ 29 } \footnotesize ef-time-after-pentecost-23-friday & \cellcolor{lwhite}\textbf{ 30 } \footnotesize Officium sanctae Mariae in sabbato \\ \hline
+\cellcolor{lwhite}\textbf{ 31 } \footnotesize ef-christ-the-king & & & & & & \\ \hline
+
+\end{tabular}
+\newpage
+
+\section*{ November 2027 }
+\begin{tabular}{|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|}
+\hline Dom & Lun & Mar & Mer & Iov & Ven & Sab \\ \hline
+ & \cellcolor{lwhite}\textbf{ 1 } \footnotesize all-saints & \cellcolor{lblack}\textbf{ 2 } \footnotesize commemoration-of-all-souls & \cellcolor{lgreen}\textbf{ 3 } \footnotesize ef-time-after-pentecost-24-wednesday & \cellcolor{lwhite}\textbf{ 4 } \footnotesize charles-borromeo & \cellcolor{lgreen}\textbf{ 5 } \footnotesize ef-time-after-pentecost-24-friday & \cellcolor{lwhite}\textbf{ 6 } \footnotesize Officium sanctae Mariae in sabbato \\ \hline
+\cellcolor{lgreen}\textbf{ 7 } \footnotesize ef-time-after-epiphany-sunday-5 & \cellcolor{lgreen}\textbf{ 8 } \footnotesize ef-time-after-pentecost-25-monday & \cellcolor{lwhite}\textbf{ 9 } \footnotesize dedication-of-the-archbasilica-of-our-holy-savior & \cellcolor{lwhite}\textbf{ 10 } \footnotesize andrew-avellino & \cellcolor{lwhite}\textbf{ 11 } \footnotesize martin-of-tours & \cellcolor{lred}\textbf{ 12 } \footnotesize martin-i & \cellcolor{lwhite}\textbf{ 13 } \footnotesize didacus \\ \hline
+\cellcolor{lgreen}\textbf{ 14 } \footnotesize ef-time-after-epiphany-sunday-6 & \cellcolor{lwhite}\textbf{ 15 } \footnotesize albert-the-great & \cellcolor{lwhite}\textbf{ 16 } \footnotesize gertrude-the-great & \cellcolor{lwhite}\textbf{ 17 } \footnotesize gregory-the-wonderworker & \cellcolor{lwhite}\textbf{ 18 } \footnotesize dedication-of-the-basilicas-of-sts-peter-paul & \cellcolor{lwhite}\textbf{ 19 } \footnotesize elizabeth-of-hungary & \cellcolor{lwhite}\textbf{ 20 } \footnotesize felix-of-valois \\ \hline
+\cellcolor{lgreen}\textbf{ 21 } \footnotesize ef-time-after-pentecost-sunday-24 & \cellcolor{lred}\textbf{ 22 } \footnotesize cecilia & \cellcolor{lred}\textbf{ 23 } \footnotesize clement-i & \cellcolor{lwhite}\textbf{ 24 } \footnotesize john-of-the-cross & \cellcolor{lred}\textbf{ 25 } \footnotesize catherine-of-alexandria & \cellcolor{lwhite}\textbf{ 26 } \footnotesize sylvester & \cellcolor{lwhite}\textbf{ 27 } \footnotesize Officium sanctae Mariae in sabbato \\ \hline
+\cellcolor{lviolet}\textbf{ 28 } \footnotesize ef-advent-sunday-1 & \cellcolor{lviolet}\textbf{ 29 } \footnotesize ef-advent-1-monday & \cellcolor{lred}\textbf{ 30 } \footnotesize andrew & & & & \\ \hline
+
+\end{tabular}
+\newpage
+
+\section*{ December 2027 }
+\begin{tabular}{|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|p{2.6cm}|}
+\hline Dom & Lun & Mar & Mer & Iov & Ven & Sab \\ \hline
+ & & & \cellcolor{lviolet}\textbf{ 1 } \footnotesize ef-advent-1-wednesday & \cellcolor{lred}\textbf{ 2 } \footnotesize vivian & \cellcolor{lwhite}\textbf{ 3 } \footnotesize francis-xavier & \cellcolor{lwhite}\textbf{ 4 } \footnotesize peter-chrysologus \\ \hline
+\cellcolor{lviolet}\textbf{ 5 } \footnotesize ef-advent-sunday-2 & \cellcolor{lwhite}\textbf{ 6 } \footnotesize nicholas & \cellcolor{lwhite}\textbf{ 7 } \footnotesize ambrose & \cellcolor{lwhite}\textbf{ 8 } \footnotesize immaculate-conception-of-the-blessed-virgin-mary & \cellcolor{lviolet}\textbf{ 9 } \footnotesize ef-advent-2-thursday & \cellcolor{lviolet}\textbf{ 10 } \footnotesize ef-advent-2-friday & \cellcolor{lwhite}\textbf{ 11 } \footnotesize damasus-i \\ \hline
+\cellcolor{lrose}\textbf{ 12 } \footnotesize ef-advent-sunday-3 & \cellcolor{lred}\textbf{ 13 } \footnotesize lucy & \cellcolor{lviolet}\textbf{ 14 } \footnotesize ef-advent-3-tuesday & \cellcolor{lviolet}\textbf{ 15 } \footnotesize ef-advent-ember-wed & \cellcolor{lred}\textbf{ 16 } \footnotesize eusebius & \cellcolor{lviolet}\textbf{ 17 } \footnotesize ef-advent-ember-fri & \cellcolor{lviolet}\textbf{ 18 } \footnotesize ef-advent-ember-sat \\ \hline
+\cellcolor{lviolet}\textbf{ 19 } \footnotesize ef-advent-sunday-4 & \cellcolor{lviolet}\textbf{ 20 } \footnotesize ef-advent-4-monday & \cellcolor{lred}\textbf{ 21 } \footnotesize thomas & \cellcolor{lviolet}\textbf{ 22 } \footnotesize ef-advent-4-wednesday & \cellcolor{lviolet}\textbf{ 23 } \footnotesize ef-advent-4-thursday & \cellcolor{lviolet}\textbf{ 24 } \footnotesize ef-nativity-vigil & \cellcolor{lwhite}\textbf{ 25 } \footnotesize ef-nativity \\ \hline
+\cellcolor{lwhite}\textbf{ 26 } \footnotesize ef-christmas-sunday-0 & \cellcolor{lwhite}\textbf{ 27 } \footnotesize john-the-evangelist & \cellcolor{lred}\textbf{ 28 } \footnotesize holy-innocents & \cellcolor{lwhite}\textbf{ 29 } \footnotesize ef-nativity-octave-day-5 & \cellcolor{lwhite}\textbf{ 30 } \footnotesize ef-nativity-octave-day-6 & \cellcolor{lwhite}\textbf{ 31 } \footnotesize ef-nativity-octave-day-7 & \\ \hline
+
+\end{tabular}
+\newpage
+
+\end{document}
diff --git a/test/golden/ordo-2027.adoc b/test/golden/ordo-2027.adoc
new file mode 100644
index 0000000..5a8e2f5
--- /dev/null
+++ b/test/golden/ordo-2027.adoc
@@ -0,0 +1,2365 @@
+// colitur ordo booklet -- AsciiDoc. flavour: none (see man colitur-overlay)
+// AsciiDoc's own metacharacters (*, _, +, `, ...) are context-dependent, so
+// this template's flavour deliberately does NOT escape interpolated values.
+// A feast name containing `*` or `_` will render as emphasis. That is a
+// documented limitation, not a bug to fix.
+//
+// Day label falls back to the slug when the day carries no Latin name (most
+// temporal days, and most sanctoral entries, which are Latin-less in the
+// shipped data) -- see ordo.tex's own comment for why the fallback is
+// written as a name-section wrapping a plain var and its inverse, rather
+// than a single dotted lookup and its inverse.
+= Ordo 2027 · ef
+:toc:
+
+
+== Ianuarius
+
+
+*1* ef-circumcision +
+class-1 · white +
+Ep. Titus 2:11-15 Ev. Luke 2:21
+
+
+
+*2* Officium sanctae Mariae in sabbato +
+class-4 · white +
+Ep. Titus 3:4-7 Ev. Luke 2:15-20
+
+
+
+*3* Sanctissimi Nominis Iesu +
+class-2 · white +
+Ep. Acts 4:8-12 Ev. Luke 2:21
+
+
+
+*4* ef-christmas-1-monday +
+class-4 · white +
+Ep. Titus 2:11-15 Ev. Luke 2:21
+
+
+
+*5* ef-christmas-1-tuesday +
+class-4 · white +
+Ep. Titus 2:11-15 Ev. Luke 2:21
+ +
+Com. telesphorus-pope-and-martyr
+
+
+*6* ef-epiphany +
+class-1 · white +
+Ep. Isa 60:1-6 Ev. Matt 2:1-12
+
+
+
+*7* ef-christmas-2-thursday +
+class-4 · white +
+Ep. Isa 60:1-6 Ev. Matt 2:1-12
+
+
+
+*8* ef-christmas-2-friday +
+class-4 · white +
+Ep. Isa 60:1-6 Ev. Matt 2:1-12
+
+
+
+*9* Officium sanctae Mariae in sabbato +
+class-4 · white +
+Ep. Titus 3:4-7 Ev. Luke 2:15-20
+
+
+
+*10* Sanctae Familiae Iesu, Mariae, Ioseph +
+class-2 · white +
+Ep. Col 3:12-17 Ev. Luke 2:42-52
+
+
+
+*11* ef-time-after-epiphany-1-monday +
+class-4 · white +
+Ep. Rom 12:1-5 Ev. Luke 2:42-52
+ +
+Com. hyginus-pope-and-martyr
+
+
+*12* ef-time-after-epiphany-1-tuesday +
+class-4 · white +
+Ep. Rom 12:1-5 Ev. Luke 2:42-52
+
+
+
+*13* commemoration-of-the-baptism-of-the-lord +
+class-2 · white +
+Ep. Isa 60:1-6 Ev. John 1:29-34
+
+
+
+*14* hilary +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+ +
+Com. felicis
+
+
+*15* paul-the-first-hermit +
+class-3 · white +
+Ep. Phil 3:7-12 Ev. Matt 11:25-30
+ +
+Com. maur-abbot
+
+
+*16* marcellus-i +
+class-3 · red +
+Ep. 1 Pet 5:1-4; 5:10-11. Ev. Matt 16:13-19
+
+
+
+*17* ef-time-after-epiphany-sunday-2 +
+class-2 · green +
+Ep. Rom 12:6-16 Ev. John 2:1-11
+
+
+
+*18* ef-time-after-epiphany-2-monday +
+class-4 · green +
+Ep. Rom 12:6-16 Ev. John 2:1-11
+ +
+Com. prisca
+
+
+*19* ef-time-after-epiphany-2-tuesday +
+class-4 · green +
+Ep. Rom 12:6-16 Ev. John 2:1-11
+ +
+Com. canute-martyr +
+Com. sts-marius-martha-audifax-abachum
+
+
+*20* sts-fabian-sebastian +
+class-3 · red +
+Ep. Heb 11:33-39 Ev. Luke 6:17-23
+
+
+
+*21* agnes +
+class-3 · red +
+Ep. Sir 51:1-8; 51:12 Ev. Matt 25:1-13.
+
+
+
+*22* sts-vincent-anastasius +
+class-3 · red +
+Ep. Wis 3:1-8 Ev. Luke 21:9-19
+
+
+
+*23* raymond-of-pe-afort +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Luke 12:35-40
+ +
+Com. emerentiana
+
+
+*24* ef-septuagesima-sunday-1 +
+class-2 · violet +
+Ep. 1 Cor. 9:24-27; 10:1-5 Ev. Matt 20:1-16
+
+
+
+*25* conversion-of-st-paul +
+class-3 · white +
+Ep. Acts 9:1-22 Ev. Matt 19:27-29.
+ +
+Com. peter
+
+
+*26* polycarp +
+class-3 · red +
+Ep. 1 John 3:10-16 Ev. Matt 10:26-32.
+
+
+
+*27* john-chrysostom +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+
+
+
+*28* peter-nolasco +
+class-3 · white +
+Ep. 1 Cor. 4:9-14 Ev. Luke 12:32-34
+ +
+Com. agnes-secundo
+
+
+*29* francis-de-sales +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+
+
+
+*30* martina +
+class-3 · red +
+Ep. Sir 51:1-8; 51:12 Ev. Matt 25:1-13.
+
+
+
+*31* ef-septuagesima-sunday-2 +
+class-2 · violet +
+Ep. 2 Cor. 11:19-33; 12:1-9 Ev. Luke 8:4-15
+
+
+
+== Februarius
+
+
+*1* ignatius-of-antioch +
+class-3 · red +
+Ep. Rom 8:35-39 Ev. John 12:24-26
+
+
+
+*2* purification-of-the-blessed-virgin-mary +
+class-2 · white +
+Ep. Mal 3:1-4 Ev. Luke 2:22-32
+
+
+
+*3* ef-septuagesima-2-wednesday +
+class-4 · violet +
+Ep. 2 Cor. 11:19-33; 12:1-9 Ev. Luke 8:4-15
+ +
+Com. blaise
+
+
+*4* andrew-corsini +
+class-3 · white +
+Ep. Sir 44:16-27; 45:3-20 Ev. Matt 25:14-23
+
+
+
+*5* agatha +
+class-3 · red +
+Ep. 1 Cor. 1:26-31 Ev. Matt 19:3-12.
+
+
+
+*6* titus +
+class-3 · white +
+Ep. Sir 44:16-27; 45:3-20 Ev. Luke 10:1-9
+ +
+Com. dorothy
+
+
+*7* ef-septuagesima-sunday-3 +
+class-2 · violet +
+Ep. 1 Cor. 13:1-13 Ev. Luke 18:31-43
+
+
+
+*8* john-of-matha +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Luke 12:35-40
+
+
+
+*9* cyril-of-alexandria +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+ +
+Com. appollonia
+
+
+*10* ef-ash-wednesday +
+class-1 · violet +
+Ep. Joel 2:12-19 Ev. Matt 6:16-21
+
+
+
+*11* ef-lent-after-ashes-thursday +
+class-3 · violet +
+Ep. Isa 38:1-6 Ev. Matt 8:5-13
+ +
+Com. our-lady-of-lourdes
+
+
+*12* ef-lent-after-ashes-friday +
+class-3 · violet +
+Ep. Isa 58:1-9 Ev. Matt 5:43-48; 6:1-4
+ +
+Com. seven-holy-servite-founders
+
+
+*13* ef-lent-after-ashes-saturday +
+class-3 · violet +
+Ep. Isa 58:9-14 Ev. Mark 6:47-56
+
+
+
+*14* ef-lent-sunday-1 +
+class-1 · violet +
+Ep. 2 Cor. 6:1-10 Ev. Matt 4:1-11
+
+
+
+*15* ef-lent-1-monday +
+class-3 · violet +
+Ep. Ezech 34:11-16 Ev. Matt 25:31-46
+ +
+Com. sts-faustinus-jovita
+
+
+*16* ef-lent-1-tuesday +
+class-3 · violet +
+Ep. Isa 55:6-11 Ev. Matt 21:10-17
+
+
+
+*17* ef-lent-ember-wed +
+class-2 · violet +
+Ep. 3 Kgs. 19:3-8 Ev. Matt 12:38-50
+
+
+
+*18* ef-lent-1-thursday +
+class-3 · violet +
+Ep. Ezech 18:1-9 Ev. Matt 15:21-28
+ +
+Com. simeon
+
+
+*19* ef-lent-ember-fri +
+class-2 · violet +
+Ep. Ezech 18:20-28 Ev. John 5:1-15
+
+
+
+*20* ef-lent-ember-sat +
+class-2 · violet +
+Ep. 1 Thess. 5:14-23 Ev. Matt 17:1-9
+
+
+
+*21* ef-lent-sunday-2 +
+class-1 · violet +
+Ep. 1 Thess. 4:1-7 Ev. Matt 17:1-9
+
+
+
+*22* chair-of-st-peter +
+class-2 · white +
+Ep. 1 Pet 1:1-7 Ev. Matt 16:13-19
+ +
+Com. ef-lent-2-monday +
+Com. paul
+
+
+*23* ef-lent-2-tuesday +
+class-3 · violet +
+Ep. 3 Kings 17:8-16 Ev. Matt 23:1-12
+ +
+Com. peter-damien
+
+
+*24* matthias +
+class-2 · red +
+Ep. Acts 1:15-26 Ev. Matt 11:25-30
+ +
+Com. ef-lent-2-wednesday
+
+
+*25* ef-lent-2-thursday +
+class-3 · violet +
+Ep. Jer 17:5-10 Ev. Luke 16:19-31
+
+
+
+*26* ef-lent-2-friday +
+class-3 · violet +
+Ep. Gen 37:6-22 Ev. Matt 21:33-46
+
+
+
+*27* ef-lent-2-saturday +
+class-3 · violet +
+Ep. Gen 27:6-40 Ev. Luke 15:11-32
+ +
+Com. gabriel-of-our-lady-of-sorrows
+
+
+*28* ef-lent-sunday-3 +
+class-1 · violet +
+Ep. Eph 5:1-9 Ev. Luke 11:14-28
+
+
+
+== Martius
+
+
+*1* ef-lent-3-monday +
+class-3 · violet +
+Ep. 4 Kings 5:1-15 Ev. Luke 4:23-30
+
+
+
+*2* ef-lent-3-tuesday +
+class-3 · violet +
+Ep. 4 Kings 4:1-7 Ev. Matt 18:15-22
+
+
+
+*3* ef-lent-3-wednesday +
+class-3 · violet +
+Ep. Ex 20:12-24 Ev. Matt 15:1-20
+
+
+
+*4* ef-lent-3-thursday +
+class-3 · violet +
+Ep. Jer 7:1-7 Ev. Luke 4:38-44.
+ +
+Com. casimir +
+Com. lucius
+
+
+*5* ef-lent-3-friday +
+class-3 · violet +
+Ep. Num 20:1, 3; 6-13. Ev. John 4:5-42
+
+
+
+*6* ef-lent-3-saturday +
+class-3 · violet +
+Ep. Dan 13:1-9, 15-17, 19-30, 33-62. Ev. John 8:1-11
+ +
+Com. sts-felicitas-perpetua
+
+
+*7* ef-lent-sunday-4 +
+class-1 · rose +
+Ep. Gal 4:22-31 Ev. John 6:1-15
+
+
+
+*8* ef-lent-4-monday +
+class-3 · violet +
+Ep. 3 Kings 3:16-28 Ev. John 2:13-25
+ +
+Com. john-of-god
+
+
+*9* ef-lent-4-tuesday +
+class-3 · violet +
+Ep. Ex 32:7-14 Ev. John 7:14-31
+ +
+Com. frances-rome
+
+
+*10* ef-lent-4-wednesday +
+class-3 · violet +
+Ep. Isa. 1:16-19 Ev. John 9:1-38
+ +
+Com. forty-holy-martyrs-of-sebaste
+
+
+*11* ef-lent-4-thursday +
+class-3 · violet +
+Ep. 4 Kings 4:25-38 Ev. Luke 7:11-16
+
+
+
+*12* ef-lent-4-friday +
+class-3 · violet +
+Ep. 3 Kings 17:17-24 Ev. John 11:1-45
+ +
+Com. gregory-the-great
+
+
+*13* ef-lent-4-saturday +
+class-3 · violet +
+Ep. Isa 49:8-15 Ev. John 8:12-20
+
+
+
+*14* ef-passion-sunday +
+class-1 · violet +
+Ep. Heb 9:11-15. Ev. John 8:46-59.
+
+
+
+*15* ef-passiontide-1-monday +
+class-3 · violet +
+Ep. Jonas 3:1-10 Ev. John 7:32-39
+
+
+
+*16* ef-passiontide-1-tuesday +
+class-3 · violet +
+Ep. Dan 14:27, 28-42 Ev. John 7:1-13
+
+
+
+*17* ef-passiontide-1-wednesday +
+class-3 · violet +
+Ep. Lev 19:1-2, 11-19, 25 Ev. John 10:22-38
+ +
+Com. patrick
+
+
+*18* ef-passiontide-1-thursday +
+class-3 · violet +
+Ep. Dan 3:25, 34-45. Ev. Luke 7:36-50
+ +
+Com. cyril-of-jerusalem
+
+
+*19* joseph-spouse-of-the-bl-virgin-mary +
+class-1 · white +
+Ep. Ecclus 45:1-6 Ev. Matt 1:18-21
+ +
+Com. ef-passiontide-1-friday
+
+
+*20* ef-passiontide-1-saturday +
+class-3 · violet +
+Ep. Jer 18:18-23 Ev. John 12:10-36
+
+
+
+*21* ef-palm-sunday +
+class-1 · violet +
+Ep. Phil 2:5-11 Ev. Matt. 26:36-75; 27:1-60.
+
+
+
+*22* ef-passiontide-2-monday +
+class-1 · violet +
+Ep. Isa 50:5-10 Ev. John 12:1-9
+
+
+
+*23* ef-passiontide-2-tuesday +
+class-1 · violet +
+Ep. Jer 11:18-20 Ev. Mark 14:32-72; 15, 1-46
+
+
+
+*24* ef-passiontide-2-wednesday +
+class-1 · violet +
+Ep. Isa 53:1-12 Ev. Luke 22:39-71; 23:1-53
+
+
+
+*25* Feria V in Cena Domini +
+class-1 · white +
+Ep. 1 Cor 11:20-32 Ev. John 13:1-15
+
+
+
+*26* Feria VI in Passione et Morte Domini +
+class-1 · black +
+Ep. Ex 12:1-11 Ev. John 18:1-40; 19:1-42
+
+
+
+*27* Sabbato sancto +
+class-1 · violet +
+Ep. Col 3:1-4 Ev. Matt 28:1-7
+
+
+
+*28* ef-easter-sunday +
+class-1 · white +
+Ep. 1 Cor 5:7-8 Ev. Mark 16:1-7
+
+
+
+*29* ef-easter-1-monday +
+class-1 · white +
+Ep. Acts 10:37-43. Ev. Luke 24:13-35
+
+
+
+*30* ef-easter-1-tuesday +
+class-1 · white +
+Ep. Acts 13:16; 13:26-33 Ev. Luke 24:36-47
+
+
+
+*31* ef-easter-1-wednesday +
+class-1 · white +
+Ep. Acts 3:13-15; 3:17-19 Ev. John 21:1-14
+
+
+
+== Aprilis
+
+
+*1* ef-easter-1-thursday +
+class-1 · white +
+Ep. Acts 8:26-40 Ev. John 20:11-18
+
+
+
+*2* ef-easter-1-friday +
+class-1 · white +
+Ep. 1 Pet 3:18-22 Ev. Matt 28:16-20
+
+
+
+*3* ef-easter-1-saturday +
+class-1 · white +
+Ep. 1 Pet 2:1-10 Ev. John 20:1-9
+
+
+
+*4* ef-low-sunday +
+class-1 · white +
+Ep. 1 John 5:4-10 Ev. John 20:19-31
+
+
+
+*5* annunciation-of-the-blessed-virgin-mary +
+class-1 · white +
+Ep. Isa 7:10-15 Ev. Luke 1:26-38
+
+
+
+*6* ef-easter-2-tuesday +
+class-4 · white +
+Ep. 1 John 5:4-10 Ev. John 20:19-31
+
+
+
+*7* ef-easter-2-wednesday +
+class-4 · white +
+Ep. 1 John 5:4-10 Ev. John 20:19-31
+
+
+
+*8* ef-easter-2-thursday +
+class-4 · white +
+Ep. 1 John 5:4-10 Ev. John 20:19-31
+
+
+
+*9* ef-easter-2-friday +
+class-4 · white +
+Ep. 1 John 5:4-10 Ev. John 20:19-31
+
+
+
+*10* Officium sanctae Mariae in sabbato +
+class-4 · white +
+Ep. Ecclus 24:14-16 Ev. John 19:25-27
+
+
+
+*11* ef-easter-sunday-3 +
+class-2 · white +
+Ep. 1 Pet 2:21-25 Ev. John 10:11-16
+
+
+
+*12* ef-easter-3-monday +
+class-4 · white +
+Ep. 1 Pet 2:21-25 Ev. John 10:11-16
+
+
+
+*13* hermenegild +
+class-3 · red +
+Ep. Wis 10:10-14 Ev. Luke 14:26-33.
+
+
+
+*14* justin +
+class-3 · red +
+Ep. 1 Cor 1:18-25; 1:30; Ev. Luke 12:2-8
+ +
+Com. sts-tiburtius-valerian-et-maximus-martyrs
+
+
+*15* ef-easter-3-thursday +
+class-4 · white +
+Ep. 1 Pet 2:21-25 Ev. John 10:11-16
+
+
+
+*16* ef-easter-3-friday +
+class-4 · white +
+Ep. 1 Pet 2:21-25 Ev. John 10:11-16
+
+
+
+*17* Officium sanctae Mariae in sabbato +
+class-4 · white +
+Ep. Ecclus 24:14-16 Ev. John 19:25-27
+ +
+Com. anicetus
+
+
+*18* ef-easter-sunday-4 +
+class-2 · white +
+Ep. 1 Pet 2:11-19 Ev. John 16:16-22
+
+
+
+*19* ef-easter-4-monday +
+class-4 · white +
+Ep. 1 Pet 2:11-19 Ev. John 16:16-22
+
+
+
+*20* ef-easter-4-tuesday +
+class-4 · white +
+Ep. 1 Pet 2:11-19 Ev. John 16:16-22
+
+
+
+*21* anselm +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+
+
+
+*22* sts-soter-caius +
+class-3 · red +
+Ep. 1 Pet 5:1-4; 5:10-11. Ev. Matt 16:13-19
+
+
+
+*23* ef-easter-4-friday +
+class-4 · white +
+Ep. 1 Pet 2:11-19 Ev. John 16:16-22
+ +
+Com. george
+
+
+*24* fidelis-of-sigmaringen +
+class-3 · red +
+Ep. Wis 5:1-5 Ev. John 15:1-7
+
+
+
+*25* ef-easter-sunday-5 +
+class-2 · white +
+Ep. Jas 1:17-21 Ev. John 16:5-14
+ +
+Com. major-litanies
+
+
+*26* sts-cletus-marcellinus +
+class-3 · red +
+Ep. 1 Pet 5:1-4; 5:10-11. Ev. Matt 16:13-19
+
+
+
+*27* peter-canisius +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+
+
+
+*28* paul-of-the-cross +
+class-3 · white +
+Ep. 1 Cor 1:17-25. Ev. Luke 10:1-9
+
+
+
+*29* peter-of-verona +
+class-3 · red +
+Ep. 2 Tim. 2:8-10; 3:10-12. Ev. Matt 10:34-42
+
+
+
+*30* catherine-of-siena +
+class-3 · white +
+Ep. 2 Cor 10:17-18; 11:1-2 Ev. Matt 25:1-13.
+
+
+
+== Maius
+
+
+*1* joseph-the-workman +
+class-1 · white +
+Ep. Col. 3:14-15, 17, 23-24 Ev. Matt 13:54-58
+
+
+
+*2* ef-easter-sunday-6 +
+class-2 · white +
+Ep. Jas 1:22-27 Ev. John 16:23-30
+
+
+
+*3* ef-rogation-monday +
+class-4 · violet +
+Ep. Jas 1:22-27 Ev. John 16:23-30
+ +
+Com. sts-alexander-companions
+
+
+*4* monica +
+class-3 · white +
+Ep. 1 Tim. 5:3-10. Ev. Luke 7:11-16
+
+
+
+*5* ef-ascension-vigil +
+class-2 · white +
+Ep. Eph. 4:7-13. Ev. John 17:1-11.
+ +
+Com. pius-v
+
+
+*6* ef-ascension +
+class-1 · white +
+Ep. Acts 1:1-11 Ev. Mark 16:14-20
+
+
+
+*7* stanislaus +
+class-3 · red +
+Ep. Wis 5:1-5 Ev. John 15:1-7
+
+
+
+*8* Officium sanctae Mariae in sabbato +
+class-4 · white +
+Ep. Ecclus 24:14-16 Ev. John 19:25-27
+
+
+
+*9* ef-easter-sunday-7 +
+class-2 · white +
+Ep. 1 Pet 4:7-11. Ev. John 15:26-27; 16:1-4.
+
+
+
+*10* antoninus +
+class-3 · white +
+Ep. Sir 44:16-27; 45:3-20 Ev. Matt 25:14-23
+ +
+Com. gordiano-and-epimacho
+
+
+*11* sts-philip-james +
+class-2 · red +
+Ep. Wis. 5:1-5 Ev. John 14:1-13
+
+
+
+*12* sts-nereus-achilleus-domitilla-pancras +
+class-3 · red +
+Ep. Wis. 5:1-5 Ev. John 4:46-53
+
+
+
+*13* robert-bellarmine +
+class-3 · white +
+Ep. Wis 7:7-14. Ev. Matt 5:13-19
+
+
+
+*14* ef-easter-7-friday +
+class-4 · white +
+Ep. 1 Pet 4:7-11. Ev. John 15:26-27; 16:1-4.
+ +
+Com. boniface-martyr
+
+
+*15* ef-pentecost-vigil +
+class-1 · red +
+Ep. Acts 19:1-8. Ev. John 14:15-21.
+
+
+
+*16* ef-pentecost +
+class-1 · red +
+Ep. Acts 2:1-11. Ev. John 14:23-31.
+
+
+
+*17* ef-easter-8-monday +
+class-1 · red +
+Ep. Acts 10:34, 42-48 Ev. John 3:16-21
+
+
+
+*18* ef-easter-8-tuesday +
+class-1 · red +
+Ep. Acts 8:14-17. Ev. John 10:1-10.
+
+
+
+*19* ef-pentecost-ember-wed +
+class-1 · red +
+Ep. Acts 5:12-16 Ev. John 6:44-52.
+
+
+
+*20* ef-easter-8-thursday +
+class-1 · red +
+Ep. Acts 8:5-8 Ev. Luke 9:1-6
+
+
+
+*21* ef-pentecost-ember-fri +
+class-1 · red +
+Ep. Joel 2:23-24; 26-27 Ev. Luke 5:17-26
+
+
+
+*22* ef-pentecost-ember-sat +
+class-1 · red +
+Ep. Rom 5:1-5. Ev. Luke 4:38-44.
+
+
+
+*23* ef-trinity +
+class-1 · white +
+Ep. Rom 11:33-36. Ev. Matt 28:18-20
+
+
+
+*24* ef-time-after-pentecost-1-monday +
+class-4 · green +
+Ep. 1 John 4:8-21 Ev. Luke 6:36-42
+
+
+
+*25* gregory-vii +
+class-3 · white +
+Ep. 1 Pet 5:1-4; 5:10-11. Ev. Matt 16:13-19
+ +
+Com. urban-pope-and-martyr
+
+
+*26* philip-neri +
+class-3 · white +
+Ep. Wis 7:7-14. Ev. Luke 12:35-40
+ +
+Com. eleutherius
+
+
+*27* ef-corpus-christi +
+class-1 · white +
+Ep. 1 Cor 11:23-29 Ev. John 6:56-59
+
+
+
+*28* augustine-of-canterbury +
+class-3 · white +
+Ep. 1 Thess 2:2-9 Ev. Luke 10:1-9
+
+
+
+*29* mary-magdalene-de-pazzi +
+class-3 · white +
+Ep. 2 Cor 10:17-18; 11:1-2 Ev. Matt 25:1-13.
+
+
+
+*30* ef-time-after-pentecost-sunday-2 +
+class-2 · green +
+Ep. 1 John 3:13-18. Ev. Luke 14:16-24.
+
+
+
+*31* queenship-of-the-blessed-virgin-mary +
+class-2 · white +
+Ep. Eccli 24:5; 14:7; 14:9-11; 24:30-31 Ev. Luke 1:26-33
+ +
+Com. petronilla
+
+
+== Iunius
+
+
+*1* angela-merici +
+class-3 · white +
+Ep. 2 Cor 10:17-18; 11:1-2 Ev. Matt 25:1-13.
+
+
+
+*2* ef-time-after-pentecost-2-wednesday +
+class-4 · green +
+Ep. 1 John 3:13-18. Ev. Luke 14:16-24.
+ +
+Com. sts-marcellinus-peter-erasmus
+
+
+*3* ef-time-after-pentecost-2-thursday +
+class-4 · green +
+Ep. 1 John 3:13-18. Ev. Luke 14:16-24.
+
+
+
+*4* ef-sacred-heart +
+class-1 · white +
+Ep. Eph 3:8-12, 14-19 Ev. John 19:31-37
+
+
+
+*5* boniface +
+class-3 · red +
+Ep. Ecclus 44:1-15 Ev. Matt 5:1-12
+
+
+
+*6* ef-time-after-pentecost-sunday-3 +
+class-2 · green +
+Ep. 1 Pet. 5:6-11 Ev. Luke 15:1-10
+
+
+
+*7* ef-time-after-pentecost-3-monday +
+class-4 · green +
+Ep. 1 Pet. 5:6-11 Ev. Luke 15:1-10
+
+
+
+*8* ef-time-after-pentecost-3-tuesday +
+class-4 · green +
+Ep. 1 Pet. 5:6-11 Ev. Luke 15:1-10
+
+
+
+*9* ef-time-after-pentecost-3-wednesday +
+class-4 · green +
+Ep. 1 Pet. 5:6-11 Ev. Luke 15:1-10
+ +
+Com. sts-primus-felicianus
+
+
+*10* margaret-of-scotland +
+class-3 · white +
+Ep. Prov 31:10-31 Ev. Matt 13:44-52.
+
+
+
+*11* barnabas +
+class-3 · red +
+Ep. Acts 11:21-26; 13:1-3 Ev. Matt 10:16-22
+
+
+
+*12* john-of-san-fecundo +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Luke 12:35-40
+ +
+Com. basilidus
+
+
+*13* ef-time-after-pentecost-sunday-4 +
+class-2 · green +
+Ep. Rom 8:18-23 Ev. Luke 5:1-11
+
+
+
+*14* basil-the-great +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Luke 14:26-35
+
+
+
+*15* ef-time-after-pentecost-4-tuesday +
+class-4 · green +
+Ep. Rom 8:18-23 Ev. Luke 5:1-11
+ +
+Com. vitus
+
+
+*16* ef-time-after-pentecost-4-wednesday +
+class-4 · green +
+Ep. Rom 8:18-23 Ev. Luke 5:1-11
+
+
+
+*17* gregory-barbarigo +
+class-3 · white +
+Ep. Sir 44:16-27; 45:3-20 Ev. Matt 25:14-23
+
+
+
+*18* ephrem-of-syria +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+ +
+Com. marcus-and-marcellianus
+
+
+*19* julia-of-falconieri +
+class-3 · white +
+Ep. 2 Cor 10:17-18; 11:1-2 Ev. Matt 25:1-13.
+ +
+Com. sts-gervasius-and-protasius
+
+
+*20* ef-time-after-pentecost-sunday-5 +
+class-2 · green +
+Ep. 1 Pet 3:8-15. Ev. Matt 5:20-24.
+
+
+
+*21* aloysius-gongzaga +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Matt 22:29-40
+
+
+
+*22* paulinus-of-nola +
+class-3 · white +
+Ep. 2 Cor. 8:9-15 Ev. Luke 12:32-34
+
+
+
+*23* vigil-of-the-nativity-of-st-john-the-baptist +
+class-2 · violet +
+Ep. Jer 1:4-10 Ev. Luke 1:5-17
+
+
+
+*24* nativity-of-st-john-the-baptist +
+class-1 · white +
+Ep. Isa 49:1-3, 5-7. Ev. Luke 1:57-68
+
+
+
+*25* william +
+class-3 · white +
+Ep. Ecclus 45:1-6 Ev. Matt 19:27-29.
+
+
+
+*26* sts-john-paul +
+class-3 · red +
+Ep. Eccli 44:10-15 Ev. Luke 12:1-8
+
+
+
+*27* ef-time-after-pentecost-sunday-6 +
+class-2 · green +
+Ep. Rom 6:3-11. Ev. Mark 8:1-9
+
+
+
+*28* vigil-of-sts-peter-paul +
+class-2 · violet +
+Ep. Acts 3:1-10 Ev. John 21:15-19
+
+
+
+*29* sts-peter-paul +
+class-1 · red +
+Ep. Acts 12:1-11 Ev. Matt 16:13-19
+
+
+
+*30* in-commemoratione-sancti-pauli-apostoli +
+class-3 · red +
+Ep. Gal 1:11-20 Ev. Matt 10:16-22
+ +
+Com. commemoration-of-st-peter
+
+
+== Iulius
+
+
+*1* precious-blood-of-our-lord-jesus-christ +
+class-1 · red +
+Ep. Heb 9:11-15. Ev. John 19:30-35
+
+
+
+*2* visitation-of-the-blessed-virgin-mary +
+class-2 · white +
+Ep. Song 2:8-14 Ev. Luke 1:39-47
+ +
+Com. processus-and-martinian
+
+
+*3* irenaeus +
+class-3 · red +
+Ep. 2 Tim. 3:14-17; 4:1-5 Ev. Matt 10:28-33
+
+
+
+*4* ef-time-after-pentecost-sunday-7 +
+class-2 · green +
+Ep. Rom 6:19-23 Ev. Matt 7:15-21
+
+
+
+*5* anthony-mary-zaccariah +
+class-3 · white +
+Ep. 1 Tim. 4:8-16 Ev. Mark 10:15-21
+
+
+
+*6* ef-time-after-pentecost-7-tuesday +
+class-4 · green +
+Ep. Rom 6:19-23 Ev. Matt 7:15-21
+
+
+
+*7* sts-cyril-methodius +
+class-3 · white +
+Ep. Heb 7:23-27 Ev. Luke 10:1-9
+
+
+
+*8* elizabeth-of-portugal +
+class-3 · white +
+Ep. Prov 31:10-31 Ev. Matt 13:44-52.
+
+
+
+*9* ef-time-after-pentecost-7-friday +
+class-4 · green +
+Ep. Rom 6:19-23 Ev. Matt 7:15-21
+
+
+
+*10* seven-holy-brothers-and-sts-rufina-secunda +
+class-3 · red +
+Ep. Prov 31:10-31 Ev. Matt 12:46-50
+
+
+
+*11* ef-time-after-pentecost-sunday-8 +
+class-2 · green +
+Ep. Rom 8:12-17 Ev. Luke 16:1-9
+
+
+
+*12* john-gualbert +
+class-3 · white +
+Ep. Ecclus 45:1-6 Ev. Matt 5:43-48
+ +
+Com. naboris-et-felicis
+
+
+*13* ef-time-after-pentecost-8-tuesday +
+class-4 · green +
+Ep. Rom 8:12-17 Ev. Luke 16:1-9
+
+
+
+*14* bonaventure +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+
+
+
+*15* henry-the-emperor +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Luke 12:35-40
+
+
+
+*16* ef-time-after-pentecost-8-friday +
+class-4 · green +
+Ep. Rom 8:12-17 Ev. Luke 16:1-9
+ +
+Com. our-lady-of-mt-carmel
+
+
+*17* Officium sanctae Mariae in sabbato +
+class-4 · white +
+Ep. Ecclus 24:14-16 Ev. Luke 11:27-28
+ +
+Com. alexis
+
+
+*18* ef-time-after-pentecost-sunday-9 +
+class-2 · green +
+Ep. 1 Cor. 10:6-13 Ev. Luke 19:41-47
+
+
+
+*19* vincent-de-paul +
+class-3 · white +
+Ep. 1 Cor. 4:9-14 Ev. Luke 10:1-9
+
+
+
+*20* jerome-emiliani +
+class-3 · white +
+Ep. Isa 58:7-11 Ev. Matt 19:13-21
+ +
+Com. margaret
+
+
+*21* laurence-of-brindisi +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+ +
+Com. praxedis-virginis
+
+
+*22* mary-magdalene +
+class-3 · white +
+Ep. Song 3:2-5; 8:6-7 Ev. Luke 7:36-50
+
+
+
+*23* apollinaris +
+class-3 · red +
+Ep. 1 Pet. 5:1-11 Ev. Luke 22:24-30
+ +
+Com. liborii
+
+
+*24* Officium sanctae Mariae in sabbato +
+class-4 · white +
+Ep. Ecclus 24:14-16 Ev. Luke 11:27-28
+ +
+Com. christina
+
+
+*25* ef-time-after-pentecost-sunday-10 +
+class-2 · green +
+Ep. 1 Cor. 12:2-11 Ev. Luke 18:9-14
+ +
+Com. james-the-greater
+
+
+*26* anne-mother-of-the-blessed-virgin +
+class-2 · white +
+Ep. Prov 31:10-31 Ev. Matt 13:44-52.
+
+
+
+*27* ef-time-after-pentecost-10-tuesday +
+class-4 · green +
+Ep. 1 Cor. 12:2-11 Ev. Luke 18:9-14
+ +
+Com. pantaleon
+
+
+*28* sts-nazarius-celsus-st-victor-i-st-innocent-i +
+class-3 · red +
+Ep. Wis 10:17-20 Ev. Luke 21:9-19
+
+
+
+*29* martha +
+class-3 · white +
+Ep. 2 Cor 10:17-18; 11:1-2 Ev. Luke 10:38-42
+ +
+Com. felicis-simplicii-faustini-et-beatricis
+
+
+*30* ef-time-after-pentecost-10-friday +
+class-4 · green +
+Ep. 1 Cor. 12:2-11 Ev. Luke 18:9-14
+ +
+Com. sts-abdon-sennen
+
+
+*31* ignatius-loyola +
+class-3 · white +
+Ep. 2 Tim. 2:8-10; 3:10-12. Ev. Luke 10:1-9
+
+
+
+== Augustus
+
+
+*1* ef-time-after-pentecost-sunday-11 +
+class-2 · green +
+Ep. 1 Cor. 15:1-10 Ev. Mark 7:31-37
+
+
+
+*2* alphonsus-liguori +
+class-3 · white +
+Ep. 2 Tim. 2:1-7 Ev. Luke 10:1-9
+ +
+Com. stephen-i-pope-and-martyr
+
+
+*3* ef-time-after-pentecost-11-tuesday +
+class-4 · green +
+Ep. 1 Cor. 15:1-10 Ev. Mark 7:31-37
+
+
+
+*4* dominic +
+class-3 · white +
+Ep. 2 Tim. 4:1-8 Ev. Luke 12:35-40
+
+
+
+*5* dedication-of-the-basilica-of-st-mary-major +
+class-3 · white +
+Ep. Ecclus 24:14-16 Ev. Luke 11:27-28
+
+
+
+*6* transfiguration-of-our-lord +
+class-2 · white +
+Ep. 2 Pet. 1:16-19 Ev. Matt 17:1-9
+ +
+Com. pope-sixtus-ii-felicissimus-and-agapitus-martyrs
+
+
+*7* cajetan +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Matt 6:24-33
+ +
+Com. donatus
+
+
+*8* ef-time-after-pentecost-sunday-12 +
+class-2 · green +
+Ep. 2 Cor. 3:4-9 Ev. Luke 10:23-37
+
+
+
+*9* vigil-of-st-lawrence +
+class-3 · violet +
+Ep. Ecclus 51:1-8, 12 Ev. Matt 16:24-27
+ +
+Com. romanus
+
+
+*10* lawrence +
+class-2 · red +
+Ep. 2 Cor. 9:6-10 Ev. John 12:24-26
+
+
+
+*11* ef-time-after-pentecost-12-wednesday +
+class-4 · green +
+Ep. 2 Cor. 3:4-9 Ev. Luke 10:23-37
+ +
+Com. sts-tiburtius-susanna
+
+
+*12* clare +
+class-3 · white +
+Ep. 2 Cor 10:17-18; 11:1-2 Ev. Matt 25:1-13.
+
+
+
+*13* ef-time-after-pentecost-12-friday +
+class-4 · green +
+Ep. 2 Cor. 3:4-9 Ev. Luke 10:23-37
+ +
+Com. sts-hippolytus-cassian
+
+
+*14* vigil-of-the-assumption +
+class-2 · violet +
+Ep. Sir 24:23-31 Ev. Luke 11:27-28
+ +
+Com. eusebius-confessor
+
+
+*15* assumption-of-the-blessed-virgin-mary +
+class-1 · white +
+Ep. Judith 13:22-25; 15:10 Ev. Luke 1:41-50
+ +
+Com. ef-time-after-pentecost-sunday-13
+
+
+*16* joachim-father-of-the-blessed-virgin +
+class-2 · white +
+Ep. Sir 31:8-11 Ev. Matt 1:1-16
+
+
+
+*17* hyacinth +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Luke 12:35-40
+
+
+
+*18* ef-time-after-pentecost-13-wednesday +
+class-4 · green +
+Ep. Gal 3:16-22 Ev. Luke 17:11-19
+ +
+Com. agapitus
+
+
+*19* john-eudes +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Luke 12:35-40
+
+
+
+*20* bernard-of-clairvaux +
+class-3 · white +
+Ep. Ecclus 39:6-14 Ev. Matt 5:13-19
+
+
+
+*21* jane-frances-de-chantal +
+class-3 · white +
+Ep. Prov 31:10-31 Ev. Matt 13:44-52.
+
+
+
+*22* ef-time-after-pentecost-sunday-14 +
+class-2 · green +
+Ep. Gal 5:16-24 Ev. Matt 6:24-33
+ +
+Com. immaculate-heart-of-mary
+
+
+*23* philip-benizi +
+class-3 · white +
+Ep. 1 Cor. 4:9-14 Ev. Luke 12:32-34
+
+
+
+*24* bartholomew +
+class-2 · red +
+Ep. 1 Cor. 12:27-31 Ev. Luke 6:12-19
+
+
+
+*25* louis-ix +
+class-3 · white +
+Ep. Wis 10:10-14 Ev. Luke 19:12-26
+
+
+
+*26* ef-time-after-pentecost-14-thursday +
+class-4 · green +
+Ep. Gal 5:16-24 Ev. Matt 6:24-33
+ +
+Com. zephyrinus
+
+
+*27* joseph-calasance +
+class-3 · white +
+Ep. Wis 10:10-14 Ev. Matt 18:1-5
+
+
+
+*28* augustine +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+ +
+Com. hermes
+
+
+*29* ef-time-after-pentecost-sunday-15 +
+class-2 · green +
+Ep. Gal 5:25-26; 6:1-10 Ev. Luke 7:11-16
+
+
+
+*30* rose-of-lima +
+class-3 · white +
+Ep. 2 Cor 10:17-18; 11:1-2 Ev. Matt 25:1-13.
+ +
+Com. sts-felix-and-adauctus
+
+
+*31* raymond-nonnatus +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Luke 12:35-40
+
+
+
+== September
+
+
+*1* ef-time-after-pentecost-15-wednesday +
+class-4 · green +
+Ep. Gal 5:25-26; 6:1-10 Ev. Luke 7:11-16
+ +
+Com. giles +
+Com. twelve-holy-brothers-martyrs
+
+
+*2* stephen-of-hungary +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Luke 19:12-26
+
+
+
+*3* pius-x +
+class-3 · white +
+Ep. 1 Thess. 2:2-8 Ev. John 21:15-17
+
+
+
+*4* Officium sanctae Mariae in sabbato +
+class-4 · white +
+Ep. Ecclus 24:14-16 Ev. Luke 11:27-28
+
+
+
+*5* ef-time-after-pentecost-sunday-16 +
+class-2 · green +
+Ep. Eph 3:13-21 Ev. Luke 14:1-11
+
+
+
+*6* ef-time-after-pentecost-16-monday +
+class-4 · green +
+Ep. Eph 3:13-21 Ev. Luke 14:1-11
+
+
+
+*7* ef-time-after-pentecost-16-tuesday +
+class-4 · green +
+Ep. Eph 3:13-21 Ev. Luke 14:1-11
+
+
+
+*8* nativity-of-the-blessed-virgin-mary +
+class-2 · white +
+Ep. Prov 8:22-35 Ev. Matt 1:1-16
+ +
+Com. hadriani
+
+
+*9* ef-time-after-pentecost-16-thursday +
+class-4 · green +
+Ep. Eph 3:13-21 Ev. Luke 14:1-11
+ +
+Com. gorgonius
+
+
+*10* nicholas-of-tolentino +
+class-3 · white +
+Ep. 1 Cor. 4:9-14 Ev. Luke 12:32-34
+
+
+
+*11* Officium sanctae Mariae in sabbato +
+class-4 · white +
+Ep. Ecclus 24:14-16 Ev. Luke 11:27-28
+ +
+Com. sts-protus-hyacinth
+
+
+*12* ef-time-after-pentecost-sunday-17 +
+class-2 · green +
+Ep. Eph 4:1-6 Ev. Matt 22:34-46
+
+
+
+*13* ef-time-after-pentecost-17-monday +
+class-4 · green +
+Ep. Eph 4:1-6 Ev. Matt 22:34-46
+
+
+
+*14* exaltation-of-the-holy-cross +
+class-2 · red +
+Ep. Phil 2:5-11 Ev. John 12:31-36
+
+
+
+*15* seven-sorrows-of-the-blessed-virgin-mary +
+class-2 · white +
+Ep. Judith 13:22; 13:23-25 Ev. John 19:25-27
+ +
+Com. nicomedes
+
+
+*16* sts-cornelius-cyprian +
+class-3 · red +
+Ep. Wis 3:1-8 Ev. Luke 21:9-19
+ +
+Com. sts-euphemia-lucy-and-geminianus
+
+
+*17* ef-time-after-pentecost-17-friday +
+class-4 · green +
+Ep. Eph 4:1-6 Ev. Matt 22:34-46
+ +
+Com. stigmata-of-st-francis
+
+
+*18* joseph-of-cupertino +
+class-3 · white +
+Ep. 1 Cor 13:1-8 Ev. Matt 22:1-14
+
+
+
+*19* ef-time-after-pentecost-sunday-18 +
+class-2 · green +
+Ep. 1 Cor. 1:4-8 Ev. Matt 9:1-8
+
+
+
+*20* ef-time-after-pentecost-18-monday +
+class-4 · green +
+Ep. 1 Cor. 1:4-8 Ev. Matt 9:1-8
+ +
+Com. sts-eustace-companions
+
+
+*21* matthew +
+class-2 · red +
+Ep. Ezek 1:10-14 Ev. Matt 9:9-13
+
+
+
+*22* ef-september-ember-wed +
+class-2 · violet +
+Ep. 2 Esd. 8:1-10 Ev. Mark 9:16-28
+ +
+Com. thomas-of-villanova
+
+
+*23* linus +
+class-3 · red +
+Ep. 1 Pet 5:1-4; 5:10-11. Ev. Matt 16:13-19
+ +
+Com. thecla
+
+
+*24* ef-september-ember-fri +
+class-2 · violet +
+Ep. Osee 14:2-10 Ev. Luke 7:36-50
+ +
+Com. our-lady-of-ransom
+
+
+*25* ef-september-ember-sat +
+class-2 · violet +
+Ep. Heb 9:2-12 Ev. Luke 13:6-17
+
+
+
+*26* ef-time-after-pentecost-sunday-19 +
+class-2 · green +
+Ep. Eph 4:23-28 Ev. Matt 22:1-14
+
+
+
+*27* sts-cosmas-damian +
+class-3 · red +
+Ep. Wis 5:16-20 Ev. Luke 6:17-23
+
+
+
+*28* wenceslaus +
+class-3 · red +
+Ep. Wis 10:10-14 Ev. Matt 10:34-42
+
+
+
+*29* dedication-of-st-michael-the-archangel +
+class-1 · white +
+Ep. Rev 1:1-5 Ev. Matt 18:1-10
+
+
+
+*30* jerome +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+
+
+
+== October
+
+
+*1* ef-time-after-pentecost-19-friday +
+class-4 · green +
+Ep. Eph 4:23-28 Ev. Matt 22:1-14
+ +
+Com. remigius
+
+
+*2* holy-guardian-angels +
+class-3 · white +
+Ep. Exod 23:20-23 Ev. Matt 18:1-10
+
+
+
+*3* ef-time-after-pentecost-sunday-20 +
+class-2 · green +
+Ep. Eph 5:15-21 Ev. John 4:46-53
+
+
+
+*4* francis-of-assisi +
+class-3 · white +
+Ep. Gal 6:14-18 Ev. Matt 11:25-30
+
+
+
+*5* ef-time-after-pentecost-20-tuesday +
+class-4 · green +
+Ep. Eph 5:15-21 Ev. John 4:46-53
+ +
+Com. placid-companions
+
+
+*6* bruno +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Luke 12:35-40
+
+
+
+*7* our-lady-of-the-rosary +
+class-2 · white +
+Ep. Prov 8:22-24, 32-35. Ev. Luke 1:26-38
+ +
+Com. mark-i
+
+
+*8* bridget-of-sweden +
+class-3 · white +
+Ep. 1 Tim. 5:3-10. Ev. Matt 13:44-52.
+ +
+Com. sergio-baccho-marcello-and-apulejo-martyrs
+
+
+*9* john-leonardi +
+class-3 · white +
+Ep. 2 Cor 4:1-6; 4:15-18 Ev. Luke 10:1-9
+ +
+Com. dionysius-and-companions
+
+
+*10* ef-time-after-pentecost-sunday-21 +
+class-2 · green +
+Ep. Eph 6:10-17 Ev. Matt 18:23-35
+
+
+
+*11* maternity-of-the-blessed-virgin-mary +
+class-2 · white +
+Ep. Sir 24:23-31 Ev. Luke 2:43-51
+
+
+
+*12* ef-time-after-pentecost-21-tuesday +
+class-4 · green +
+Ep. Eph 6:10-17 Ev. Matt 18:23-35
+
+
+
+*13* edward +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Luke 12:35-40
+
+
+
+*14* callistus-i +
+class-3 · red +
+Ep. 1 Pet 5:1-4; 5:10-11. Ev. Matt 16:13-19
+
+
+
+*15* teresa-of-avila +
+class-3 · white +
+Ep. 2 Cor 10:17-18; 11:1-2 Ev. Matt 25:1-13.
+
+
+
+*16* hedwig +
+class-3 · white +
+Ep. Prov 31:10-31 Ev. Matt 13:44-52.
+
+
+
+*17* ef-time-after-pentecost-sunday-22 +
+class-2 · green +
+Ep. Phil 1:6-11 Ev. Matt 22:15-21
+
+
+
+*18* luke-the-evangelist +
+class-2 · red +
+Ep. 2 Cor. 8:16-24 Ev. Luke 10:1-9
+
+
+
+*19* peter-of-alcantara +
+class-3 · white +
+Ep. Phil 3:7-12 Ev. Luke 12:32-34
+
+
+
+*20* john-cantius +
+class-3 · white +
+Ep. James 2:12-17 Ev. Luke 12:35-40
+
+
+
+*21* ef-time-after-pentecost-22-thursday +
+class-4 · green +
+Ep. Phil 1:6-11 Ev. Matt 22:15-21
+ +
+Com. hilarion +
+Com. ursula-and-companions
+
+
+*22* ef-time-after-pentecost-22-friday +
+class-4 · green +
+Ep. Phil 1:6-11 Ev. Matt 22:15-21
+
+
+
+*23* anthony-mary-claret +
+class-3 · white +
+Ep. Heb 7:23-27 Ev. Matt 24:42-47
+
+
+
+*24* ef-time-after-pentecost-sunday-23 +
+class-2 · green +
+Ep. Phil 3:17-21; 4:1-3 Ev. Matt 9:18-26
+
+
+
+*25* ef-time-after-pentecost-23-monday +
+class-4 · green +
+Ep. Phil 3:17-21; 4:1-3 Ev. Matt 9:18-26
+ +
+Com. sts-chrysanthus-daria
+
+
+*26* ef-time-after-pentecost-23-tuesday +
+class-4 · green +
+Ep. Phil 3:17-21; 4:1-3 Ev. Matt 9:18-26
+ +
+Com. evaristus
+
+
+*27* ef-time-after-pentecost-23-wednesday +
+class-4 · green +
+Ep. Phil 3:17-21; 4:1-3 Ev. Matt 9:18-26
+
+
+
+*28* sts-simon-jude +
+class-2 · red +
+Ep. Eph. 4:7-13. Ev. John 15:17-25
+
+
+
+*29* ef-time-after-pentecost-23-friday +
+class-4 · green +
+Ep. Phil 3:17-21; 4:1-3 Ev. Matt 9:18-26
+
+
+
+*30* Officium sanctae Mariae in sabbato +
+class-4 · white +
+Ep. Ecclus 24:14-16 Ev. Luke 11:27-28
+
+
+
+*31* ef-christ-the-king +
+class-1 · white +
+Ep. Col 1:12-20. Ev. John 18:33-37
+
+
+
+== November
+
+
+*1* all-saints +
+class-1 · white +
+Ep. Apoc 7:2-12 Ev. Matt 5:1-12
+
+
+
+*2* commemoration-of-all-souls +
+class-1 · black +
+Ep. 1 Cor. 15:51-57 Ev. John 5:25-29
+
+
+
+*3* ef-time-after-pentecost-24-wednesday +
+class-4 · green +
+Ep. Col 1:12-20. Ev. John 18:33-37
+
+
+
+*4* charles-borromeo +
+class-3 · white +
+Ep. Sir 44:16-27; 45:3-20 Ev. Matt 25:14-23
+ +
+Com. sts-vitalis-and-agricola-martyrs
+
+
+*5* ef-time-after-pentecost-24-friday +
+class-4 · green +
+Ep. Col 1:12-20. Ev. John 18:33-37
+
+
+
+*6* Officium sanctae Mariae in sabbato +
+class-4 · white +
+Ep. Ecclus 24:14-16 Ev. Luke 11:27-28
+
+
+
+*7* ef-time-after-epiphany-sunday-5 +
+class-2 · green +
+Ep. Col 3:12-17 Ev. Matt 13:24-30
+
+
+
+*8* ef-time-after-pentecost-25-monday +
+class-4 · green +
+Ep. Col 3:12-17 Ev. Matt 13:24-30
+ +
+Com. four-holy-crowned-martyrs
+
+
+*9* dedication-of-the-archbasilica-of-our-holy-savior +
+class-2 · white +
+Ep. Rev 21:2-5 Ev. Luke 19:1-10
+ +
+Com. theodore
+
+
+*10* andrew-avellino +
+class-3 · white +
+Ep. Sir 31:8-11 Ev. Luke 12:35-40
+ +
+Com. sts-tryphonis-respicii-et-nymphae
+
+
+*11* martin-of-tours +
+class-3 · white +
+Ep. Sir 44:16-27; 45:3-20 Ev. Luke 11:33-36
+ +
+Com. menna
+
+
+*12* martin-i +
+class-3 · red +
+Ep. 1 Pet 5:1-4; 5:10-11. Ev. Matt 16:13-19
+
+
+
+*13* didacus +
+class-3 · white +
+Ep. 1 Cor 4:9-14 Ev. Luke 12:32-34
+
+
+
+*14* ef-time-after-epiphany-sunday-6 +
+class-2 · green +
+Ep. 1 Thess 1:2-10 Ev. Matt 13:31-35
+
+
+
+*15* albert-the-great +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+
+
+
+*16* gertrude-the-great +
+class-3 · white +
+Ep. 2 Cor 10:17-18; 11:1-2 Ev. Matt 25:1-13.
+
+
+
+*17* gregory-the-wonderworker +
+class-3 · white +
+Ep. Sir 44:16-27; 45:3-20 Ev. Mark 11:22-24
+
+
+
+*18* dedication-of-the-basilicas-of-sts-peter-paul +
+class-3 · white +
+Ep. Rev 21:2-5 Ev. Luke 19:1-10
+
+
+
+*19* elizabeth-of-hungary +
+class-3 · white +
+Ep. Prov 31:10-31 Ev. Matt 13:44-52.
+ +
+Com. pontian
+
+
+*20* felix-of-valois +
+class-3 · white +
+Ep. 1 Cor. 4:9-14 Ev. Luke 12:32-34
+
+
+
+*21* ef-time-after-pentecost-sunday-24 +
+class-2 · green +
+Ep. Col 1:9-14 Ev. Matt 24:15-35
+
+
+
+*22* cecilia +
+class-3 · red +
+Ep. Sir 51:13-17. Ev. Matt 25:1-13.
+
+
+
+*23* clement-i +
+class-3 · red +
+Ep. Phil 3:17-21; 4:1-3 Ev. Matt 16:13-19
+ +
+Com. felicity
+
+
+*24* john-of-the-cross +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+ +
+Com. chrysogonus
+
+
+*25* catherine-of-alexandria +
+class-3 · red +
+Ep. Sir 51:1-8; 51:12 Ev. Matt 25:1-13.
+
+
+
+*26* sylvester +
+class-3 · white +
+Ep. Ecclus 45:1-6 Ev. Matt 19:27-29.
+ +
+Com. peter-of-alexandria
+
+
+*27* Officium sanctae Mariae in sabbato +
+class-4 · white +
+Ep. Ecclus 24:14-16 Ev. Luke 11:27-28
+
+
+
+*28* ef-advent-sunday-1 +
+class-1 · violet +
+Ep. Rom 13:11-14 Ev. Luke 21:25-33
+
+
+
+*29* ef-advent-1-monday +
+class-3 · violet +
+Ep. Rom 13:11-14 Ev. Luke 21:25-33
+ +
+Com. saturninus
+
+
+*30* andrew +
+class-2 · red +
+Ep. Rom 10:10-18 Ev. Matt 4:18-22
+ +
+Com. ef-advent-1-tuesday
+
+
+== December
+
+
+*1* ef-advent-1-wednesday +
+class-3 · violet +
+Ep. Rom 13:11-14 Ev. Luke 21:25-33
+
+
+
+*2* vivian +
+class-3 · red +
+Ep. Sir 51:13-17. Ev. Matt 13:44-52.
+ +
+Com. ef-advent-1-thursday
+
+
+*3* francis-xavier +
+class-3 · white +
+Ep. Rom 10:10-18 Ev. Mark 16:15-18
+ +
+Com. ef-advent-1-friday
+
+
+*4* peter-chrysologus +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+ +
+Com. ef-advent-1-saturday +
+Com. barbara
+
+
+*5* ef-advent-sunday-2 +
+class-1 · violet +
+Ep. Rom 15:4-13 Ev. Matt 11:2-10
+
+
+
+*6* nicholas +
+class-3 · white +
+Ep. Heb 13:7-17 Ev. Matt 25:14-23
+ +
+Com. ef-advent-2-monday
+
+
+*7* ambrose +
+class-3 · white +
+Ep. 2 Tim 4:1-8 Ev. Matt 5:13-19
+ +
+Com. ef-advent-2-tuesday
+
+
+*8* immaculate-conception-of-the-blessed-virgin-mary +
+class-1 · white +
+Ep. Prov 8:22-35 Ev. Luke 1:26-28
+ +
+Com. ef-advent-2-wednesday
+
+
+*9* ef-advent-2-thursday +
+class-3 · violet +
+Ep. Rom 15:4-13 Ev. Matt 11:2-10
+
+
+
+*10* ef-advent-2-friday +
+class-3 · violet +
+Ep. Rom 15:4-13 Ev. Matt 11:2-10
+ +
+Com. melchiades
+
+
+*11* damasus-i +
+class-3 · white +
+Ep. 1 Pet 5:1-4; 5:10-11. Ev. Matt 16:13-19
+ +
+Com. ef-advent-2-saturday
+
+
+*12* ef-advent-sunday-3 +
+class-1 · rose +
+Ep. Phil 4:4-7 Ev. John 1:19-28
+
+
+
+*13* lucy +
+class-3 · red +
+Ep. 2 Cor 10:17-18; 11:1-2 Ev. Matt 13:44-52.
+ +
+Com. ef-advent-3-monday
+
+
+*14* ef-advent-3-tuesday +
+class-3 · violet +
+Ep. Phil 4:4-7 Ev. John 1:19-28
+
+
+
+*15* ef-advent-ember-wed +
+class-2 · violet +
+Ep. Isa 7:10-15 Ev. Luke 1:26-38
+
+
+
+*16* eusebius +
+class-3 · red +
+Ep. 2 Cor. 1:3-7 Ev. Matt 16:24-27.
+ +
+Com. ef-advent-3-thursday
+
+
+*17* ef-advent-ember-fri +
+class-2 · violet +
+Ep. Isa 11:1-5 Ev. Luke 1:39-47
+
+
+
+*18* ef-advent-ember-sat +
+class-2 · violet +
+Ep. 2 Thess 2:1-8 Ev. Luke 3:1-6
+
+
+
+*19* ef-advent-sunday-4 +
+class-1 · violet +
+Ep. 1 Cor. 4:1-5 Ev. Luke 3:1-6
+
+
+
+*20* ef-advent-4-monday +
+class-2 · violet +
+Ep. 1 Cor. 4:1-5 Ev. Luke 3:1-6
+
+
+
+*21* thomas +
+class-2 · red +
+Ep. Eph 2:19-22 Ev. John 20:24-29
+ +
+Com. ef-advent-4-tuesday
+
+
+*22* ef-advent-4-wednesday +
+class-2 · violet +
+Ep. 1 Cor. 4:1-5 Ev. Luke 3:1-6
+
+
+
+*23* ef-advent-4-thursday +
+class-2 · violet +
+Ep. 1 Cor. 4:1-5 Ev. Luke 3:1-6
+
+
+
+*24* ef-nativity-vigil +
+class-1 · violet +
+Ep. Rom 1:1-6 Ev. Matt 1:18-21
+
+
+
+*25* ef-nativity +
+class-1 · white +
+Ep. Heb 1:1-12 Ev. John 1:1-14
+
+
+
+*26* ef-christmas-sunday-0 +
+class-2 · white +
+Ep. Gal 4:1-7 Ev. Luke 2:33-40
+ +
+Com. stephen
+
+
+*27* john-the-evangelist +
+class-2 · white +
+Ep. Ecclus 15:1-6 Ev. John 21:19-24
+ +
+Com. ef-nativity-octave-day-3
+
+
+*28* holy-innocents +
+class-2 · red +
+Ep. Apoc 14:1-5 Ev. Matt 2:13-18
+ +
+Com. ef-nativity-octave-day-4
+
+
+*29* ef-nativity-octave-day-5 +
+class-2 · white +
+Ep. Titus 3:4-7 Ev. Luke 2:15-20
+ +
+Com. thomas-becket
+
+
+*30* ef-nativity-octave-day-6 +
+class-2 · white +
+Ep. Titus 3:4-7 Ev. Luke 2:15-20
+
+
+
+*31* ef-nativity-octave-day-7 +
+class-2 · white +
+Ep. Titus 3:4-7 Ev. Luke 2:15-20
+ +
+Com. silvester
+
+
diff --git a/test/golden/ordo-2027.html b/test/golden/ordo-2027.html
new file mode 100644
index 0000000..2f597c4
--- /dev/null
+++ b/test/golden/ordo-2027.html
@@ -0,0 +1,1859 @@
+<!-- colitur ordo booklet -- HTML. flavour: html -->
+<!-- Day label falls back to the slug when the day carries no Latin name
+ (most temporal days, and most sanctoral entries, which are Latin-less
+ in the shipped data) -- see ordo.tex's own comment for why the fallback
+ is written as a name-section wrapping a plain var and its inverse,
+ rather than a single dotted lookup and its inverse. -->
+<!doctype html>
+<html lang="la"><head><meta charset="utf-8">
+<title>Ordo 2027</title>
+<style>
+ body{font-family:serif;max-width:40em;margin:2em auto;line-height:1.4}
+ .day{margin:.6em 0;padding-left:2.5em;text-indent:-2.5em}
+ .dom{display:inline-block;width:2em;font-weight:bold}
+ .meta{font-size:.85em;color:#555}
+ .white{border-left:4px solid #ccc} .red{border-left:4px solid #b00}
+ .green{border-left:4px solid #070} .violet{border-left:4px solid #609}
+ .rose{border-left:4px solid #e7a} .black{border-left:4px solid #000}
+ @media print{body{margin:0}}
+</style></head><body>
+<h1>Ordo 2027 &middot; ef</h1>
+<h2>Ianuarius</h2>
+<div class="day white">
+ <span class="dom">1</span>ef-circumcision
+ <div class="meta">class-1 &middot; white &middot; Ep. Titus 2:11-15 &middot; Ev. Luke 2:21</div>
+
+</div>
+<div class="day white">
+ <span class="dom">2</span>Officium sanctae Mariae in sabbato
+ <div class="meta">class-4 &middot; white &middot; Ep. Titus 3:4-7 &middot; Ev. Luke 2:15-20</div>
+
+</div>
+<div class="day white">
+ <span class="dom">3</span>Sanctissimi Nominis Iesu
+ <div class="meta">class-2 &middot; white &middot; Ep. Acts 4:8-12 &middot; Ev. Luke 2:21</div>
+
+</div>
+<div class="day white">
+ <span class="dom">4</span>ef-christmas-1-monday
+ <div class="meta">class-4 &middot; white &middot; Ep. Titus 2:11-15 &middot; Ev. Luke 2:21</div>
+
+</div>
+<div class="day white">
+ <span class="dom">5</span>ef-christmas-1-tuesday
+ <div class="meta">class-4 &middot; white &middot; Ep. Titus 2:11-15 &middot; Ev. Luke 2:21</div>
+ <div class="meta">Com. telesphorus-pope-and-martyr</div>
+</div>
+<div class="day white">
+ <span class="dom">6</span>ef-epiphany
+ <div class="meta">class-1 &middot; white &middot; Ep. Isa 60:1-6 &middot; Ev. Matt 2:1-12</div>
+
+</div>
+<div class="day white">
+ <span class="dom">7</span>ef-christmas-2-thursday
+ <div class="meta">class-4 &middot; white &middot; Ep. Isa 60:1-6 &middot; Ev. Matt 2:1-12</div>
+
+</div>
+<div class="day white">
+ <span class="dom">8</span>ef-christmas-2-friday
+ <div class="meta">class-4 &middot; white &middot; Ep. Isa 60:1-6 &middot; Ev. Matt 2:1-12</div>
+
+</div>
+<div class="day white">
+ <span class="dom">9</span>Officium sanctae Mariae in sabbato
+ <div class="meta">class-4 &middot; white &middot; Ep. Titus 3:4-7 &middot; Ev. Luke 2:15-20</div>
+
+</div>
+<div class="day white">
+ <span class="dom">10</span>Sanctae Familiae Iesu, Mariae, Ioseph
+ <div class="meta">class-2 &middot; white &middot; Ep. Col 3:12-17 &middot; Ev. Luke 2:42-52</div>
+
+</div>
+<div class="day white">
+ <span class="dom">11</span>ef-time-after-epiphany-1-monday
+ <div class="meta">class-4 &middot; white &middot; Ep. Rom 12:1-5 &middot; Ev. Luke 2:42-52</div>
+ <div class="meta">Com. hyginus-pope-and-martyr</div>
+</div>
+<div class="day white">
+ <span class="dom">12</span>ef-time-after-epiphany-1-tuesday
+ <div class="meta">class-4 &middot; white &middot; Ep. Rom 12:1-5 &middot; Ev. Luke 2:42-52</div>
+
+</div>
+<div class="day white">
+ <span class="dom">13</span>commemoration-of-the-baptism-of-the-lord
+ <div class="meta">class-2 &middot; white &middot; Ep. Isa 60:1-6 &middot; Ev. John 1:29-34</div>
+
+</div>
+<div class="day white">
+ <span class="dom">14</span>hilary
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+ <div class="meta">Com. felicis</div>
+</div>
+<div class="day white">
+ <span class="dom">15</span>paul-the-first-hermit
+ <div class="meta">class-3 &middot; white &middot; Ep. Phil 3:7-12 &middot; Ev. Matt 11:25-30</div>
+ <div class="meta">Com. maur-abbot</div>
+</div>
+<div class="day red">
+ <span class="dom">16</span>marcellus-i
+ <div class="meta">class-3 &middot; red &middot; Ep. 1 Pet 5:1-4; 5:10-11. &middot; Ev. Matt 16:13-19</div>
+
+</div>
+<div class="day green">
+ <span class="dom">17</span>ef-time-after-epiphany-sunday-2
+ <div class="meta">class-2 &middot; green &middot; Ep. Rom 12:6-16 &middot; Ev. John 2:1-11</div>
+
+</div>
+<div class="day green">
+ <span class="dom">18</span>ef-time-after-epiphany-2-monday
+ <div class="meta">class-4 &middot; green &middot; Ep. Rom 12:6-16 &middot; Ev. John 2:1-11</div>
+ <div class="meta">Com. prisca</div>
+</div>
+<div class="day green">
+ <span class="dom">19</span>ef-time-after-epiphany-2-tuesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Rom 12:6-16 &middot; Ev. John 2:1-11</div>
+ <div class="meta">Com. canute-martyr</div><div class="meta">Com. sts-marius-martha-audifax-abachum</div>
+</div>
+<div class="day red">
+ <span class="dom">20</span>sts-fabian-sebastian
+ <div class="meta">class-3 &middot; red &middot; Ep. Heb 11:33-39 &middot; Ev. Luke 6:17-23</div>
+
+</div>
+<div class="day red">
+ <span class="dom">21</span>agnes
+ <div class="meta">class-3 &middot; red &middot; Ep. Sir 51:1-8; 51:12 &middot; Ev. Matt 25:1-13.</div>
+
+</div>
+<div class="day red">
+ <span class="dom">22</span>sts-vincent-anastasius
+ <div class="meta">class-3 &middot; red &middot; Ep. Wis 3:1-8 &middot; Ev. Luke 21:9-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">23</span>raymond-of-pe-afort
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Luke 12:35-40</div>
+ <div class="meta">Com. emerentiana</div>
+</div>
+<div class="day violet">
+ <span class="dom">24</span>ef-septuagesima-sunday-1
+ <div class="meta">class-2 &middot; violet &middot; Ep. 1 Cor. 9:24-27; 10:1-5 &middot; Ev. Matt 20:1-16</div>
+
+</div>
+<div class="day white">
+ <span class="dom">25</span>conversion-of-st-paul
+ <div class="meta">class-3 &middot; white &middot; Ep. Acts 9:1-22 &middot; Ev. Matt 19:27-29.</div>
+ <div class="meta">Com. peter</div>
+</div>
+<div class="day red">
+ <span class="dom">26</span>polycarp
+ <div class="meta">class-3 &middot; red &middot; Ep. 1 John 3:10-16 &middot; Ev. Matt 10:26-32.</div>
+
+</div>
+<div class="day white">
+ <span class="dom">27</span>john-chrysostom
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">28</span>peter-nolasco
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Cor. 4:9-14 &middot; Ev. Luke 12:32-34</div>
+ <div class="meta">Com. agnes-secundo</div>
+</div>
+<div class="day white">
+ <span class="dom">29</span>francis-de-sales
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+
+</div>
+<div class="day red">
+ <span class="dom">30</span>martina
+ <div class="meta">class-3 &middot; red &middot; Ep. Sir 51:1-8; 51:12 &middot; Ev. Matt 25:1-13.</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">31</span>ef-septuagesima-sunday-2
+ <div class="meta">class-2 &middot; violet &middot; Ep. 2 Cor. 11:19-33; 12:1-9 &middot; Ev. Luke 8:4-15</div>
+
+</div>
+<h2>Februarius</h2>
+<div class="day red">
+ <span class="dom">1</span>ignatius-of-antioch
+ <div class="meta">class-3 &middot; red &middot; Ep. Rom 8:35-39 &middot; Ev. John 12:24-26</div>
+
+</div>
+<div class="day white">
+ <span class="dom">2</span>purification-of-the-blessed-virgin-mary
+ <div class="meta">class-2 &middot; white &middot; Ep. Mal 3:1-4 &middot; Ev. Luke 2:22-32</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">3</span>ef-septuagesima-2-wednesday
+ <div class="meta">class-4 &middot; violet &middot; Ep. 2 Cor. 11:19-33; 12:1-9 &middot; Ev. Luke 8:4-15</div>
+ <div class="meta">Com. blaise</div>
+</div>
+<div class="day white">
+ <span class="dom">4</span>andrew-corsini
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 44:16-27; 45:3-20 &middot; Ev. Matt 25:14-23</div>
+
+</div>
+<div class="day red">
+ <span class="dom">5</span>agatha
+ <div class="meta">class-3 &middot; red &middot; Ep. 1 Cor. 1:26-31 &middot; Ev. Matt 19:3-12.</div>
+
+</div>
+<div class="day white">
+ <span class="dom">6</span>titus
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 44:16-27; 45:3-20 &middot; Ev. Luke 10:1-9</div>
+ <div class="meta">Com. dorothy</div>
+</div>
+<div class="day violet">
+ <span class="dom">7</span>ef-septuagesima-sunday-3
+ <div class="meta">class-2 &middot; violet &middot; Ep. 1 Cor. 13:1-13 &middot; Ev. Luke 18:31-43</div>
+
+</div>
+<div class="day white">
+ <span class="dom">8</span>john-of-matha
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Luke 12:35-40</div>
+
+</div>
+<div class="day white">
+ <span class="dom">9</span>cyril-of-alexandria
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+ <div class="meta">Com. appollonia</div>
+</div>
+<div class="day violet">
+ <span class="dom">10</span>ef-ash-wednesday
+ <div class="meta">class-1 &middot; violet &middot; Ep. Joel 2:12-19 &middot; Ev. Matt 6:16-21</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">11</span>ef-lent-after-ashes-thursday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Isa 38:1-6 &middot; Ev. Matt 8:5-13</div>
+ <div class="meta">Com. our-lady-of-lourdes</div>
+</div>
+<div class="day violet">
+ <span class="dom">12</span>ef-lent-after-ashes-friday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Isa 58:1-9 &middot; Ev. Matt 5:43-48; 6:1-4</div>
+ <div class="meta">Com. seven-holy-servite-founders</div>
+</div>
+<div class="day violet">
+ <span class="dom">13</span>ef-lent-after-ashes-saturday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Isa 58:9-14 &middot; Ev. Mark 6:47-56</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">14</span>ef-lent-sunday-1
+ <div class="meta">class-1 &middot; violet &middot; Ep. 2 Cor. 6:1-10 &middot; Ev. Matt 4:1-11</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">15</span>ef-lent-1-monday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Ezech 34:11-16 &middot; Ev. Matt 25:31-46</div>
+ <div class="meta">Com. sts-faustinus-jovita</div>
+</div>
+<div class="day violet">
+ <span class="dom">16</span>ef-lent-1-tuesday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Isa 55:6-11 &middot; Ev. Matt 21:10-17</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">17</span>ef-lent-ember-wed
+ <div class="meta">class-2 &middot; violet &middot; Ep. 3 Kgs. 19:3-8 &middot; Ev. Matt 12:38-50</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">18</span>ef-lent-1-thursday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Ezech 18:1-9 &middot; Ev. Matt 15:21-28</div>
+ <div class="meta">Com. simeon</div>
+</div>
+<div class="day violet">
+ <span class="dom">19</span>ef-lent-ember-fri
+ <div class="meta">class-2 &middot; violet &middot; Ep. Ezech 18:20-28 &middot; Ev. John 5:1-15</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">20</span>ef-lent-ember-sat
+ <div class="meta">class-2 &middot; violet &middot; Ep. 1 Thess. 5:14-23 &middot; Ev. Matt 17:1-9</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">21</span>ef-lent-sunday-2
+ <div class="meta">class-1 &middot; violet &middot; Ep. 1 Thess. 4:1-7 &middot; Ev. Matt 17:1-9</div>
+
+</div>
+<div class="day white">
+ <span class="dom">22</span>chair-of-st-peter
+ <div class="meta">class-2 &middot; white &middot; Ep. 1 Pet 1:1-7 &middot; Ev. Matt 16:13-19</div>
+ <div class="meta">Com. ef-lent-2-monday</div><div class="meta">Com. paul</div>
+</div>
+<div class="day violet">
+ <span class="dom">23</span>ef-lent-2-tuesday
+ <div class="meta">class-3 &middot; violet &middot; Ep. 3 Kings 17:8-16 &middot; Ev. Matt 23:1-12</div>
+ <div class="meta">Com. peter-damien</div>
+</div>
+<div class="day red">
+ <span class="dom">24</span>matthias
+ <div class="meta">class-2 &middot; red &middot; Ep. Acts 1:15-26 &middot; Ev. Matt 11:25-30</div>
+ <div class="meta">Com. ef-lent-2-wednesday</div>
+</div>
+<div class="day violet">
+ <span class="dom">25</span>ef-lent-2-thursday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Jer 17:5-10 &middot; Ev. Luke 16:19-31</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">26</span>ef-lent-2-friday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Gen 37:6-22 &middot; Ev. Matt 21:33-46</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">27</span>ef-lent-2-saturday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Gen 27:6-40 &middot; Ev. Luke 15:11-32</div>
+ <div class="meta">Com. gabriel-of-our-lady-of-sorrows</div>
+</div>
+<div class="day violet">
+ <span class="dom">28</span>ef-lent-sunday-3
+ <div class="meta">class-1 &middot; violet &middot; Ep. Eph 5:1-9 &middot; Ev. Luke 11:14-28</div>
+
+</div>
+<h2>Martius</h2>
+<div class="day violet">
+ <span class="dom">1</span>ef-lent-3-monday
+ <div class="meta">class-3 &middot; violet &middot; Ep. 4 Kings 5:1-15 &middot; Ev. Luke 4:23-30</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">2</span>ef-lent-3-tuesday
+ <div class="meta">class-3 &middot; violet &middot; Ep. 4 Kings 4:1-7 &middot; Ev. Matt 18:15-22</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">3</span>ef-lent-3-wednesday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Ex 20:12-24 &middot; Ev. Matt 15:1-20</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">4</span>ef-lent-3-thursday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Jer 7:1-7 &middot; Ev. Luke 4:38-44.</div>
+ <div class="meta">Com. casimir</div><div class="meta">Com. lucius</div>
+</div>
+<div class="day violet">
+ <span class="dom">5</span>ef-lent-3-friday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Num 20:1, 3; 6-13. &middot; Ev. John 4:5-42</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">6</span>ef-lent-3-saturday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Dan 13:1-9, 15-17, 19-30, 33-62. &middot; Ev. John 8:1-11</div>
+ <div class="meta">Com. sts-felicitas-perpetua</div>
+</div>
+<div class="day rose">
+ <span class="dom">7</span>ef-lent-sunday-4
+ <div class="meta">class-1 &middot; rose &middot; Ep. Gal 4:22-31 &middot; Ev. John 6:1-15</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">8</span>ef-lent-4-monday
+ <div class="meta">class-3 &middot; violet &middot; Ep. 3 Kings 3:16-28 &middot; Ev. John 2:13-25</div>
+ <div class="meta">Com. john-of-god</div>
+</div>
+<div class="day violet">
+ <span class="dom">9</span>ef-lent-4-tuesday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Ex 32:7-14 &middot; Ev. John 7:14-31</div>
+ <div class="meta">Com. frances-rome</div>
+</div>
+<div class="day violet">
+ <span class="dom">10</span>ef-lent-4-wednesday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Isa. 1:16-19 &middot; Ev. John 9:1-38</div>
+ <div class="meta">Com. forty-holy-martyrs-of-sebaste</div>
+</div>
+<div class="day violet">
+ <span class="dom">11</span>ef-lent-4-thursday
+ <div class="meta">class-3 &middot; violet &middot; Ep. 4 Kings 4:25-38 &middot; Ev. Luke 7:11-16</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">12</span>ef-lent-4-friday
+ <div class="meta">class-3 &middot; violet &middot; Ep. 3 Kings 17:17-24 &middot; Ev. John 11:1-45</div>
+ <div class="meta">Com. gregory-the-great</div>
+</div>
+<div class="day violet">
+ <span class="dom">13</span>ef-lent-4-saturday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Isa 49:8-15 &middot; Ev. John 8:12-20</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">14</span>ef-passion-sunday
+ <div class="meta">class-1 &middot; violet &middot; Ep. Heb 9:11-15. &middot; Ev. John 8:46-59.</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">15</span>ef-passiontide-1-monday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Jonas 3:1-10 &middot; Ev. John 7:32-39</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">16</span>ef-passiontide-1-tuesday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Dan 14:27, 28-42 &middot; Ev. John 7:1-13</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">17</span>ef-passiontide-1-wednesday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Lev 19:1-2, 11-19, 25 &middot; Ev. John 10:22-38</div>
+ <div class="meta">Com. patrick</div>
+</div>
+<div class="day violet">
+ <span class="dom">18</span>ef-passiontide-1-thursday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Dan 3:25, 34-45. &middot; Ev. Luke 7:36-50</div>
+ <div class="meta">Com. cyril-of-jerusalem</div>
+</div>
+<div class="day white">
+ <span class="dom">19</span>joseph-spouse-of-the-bl-virgin-mary
+ <div class="meta">class-1 &middot; white &middot; Ep. Ecclus 45:1-6 &middot; Ev. Matt 1:18-21</div>
+ <div class="meta">Com. ef-passiontide-1-friday</div>
+</div>
+<div class="day violet">
+ <span class="dom">20</span>ef-passiontide-1-saturday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Jer 18:18-23 &middot; Ev. John 12:10-36</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">21</span>ef-palm-sunday
+ <div class="meta">class-1 &middot; violet &middot; Ep. Phil 2:5-11 &middot; Ev. Matt. 26:36-75; 27:1-60.</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">22</span>ef-passiontide-2-monday
+ <div class="meta">class-1 &middot; violet &middot; Ep. Isa 50:5-10 &middot; Ev. John 12:1-9</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">23</span>ef-passiontide-2-tuesday
+ <div class="meta">class-1 &middot; violet &middot; Ep. Jer 11:18-20 &middot; Ev. Mark 14:32-72; 15, 1-46</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">24</span>ef-passiontide-2-wednesday
+ <div class="meta">class-1 &middot; violet &middot; Ep. Isa 53:1-12 &middot; Ev. Luke 22:39-71; 23:1-53</div>
+
+</div>
+<div class="day white">
+ <span class="dom">25</span>Feria V in Cena Domini
+ <div class="meta">class-1 &middot; white &middot; Ep. 1 Cor 11:20-32 &middot; Ev. John 13:1-15</div>
+
+</div>
+<div class="day black">
+ <span class="dom">26</span>Feria VI in Passione et Morte Domini
+ <div class="meta">class-1 &middot; black &middot; Ep. Ex 12:1-11 &middot; Ev. John 18:1-40; 19:1-42</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">27</span>Sabbato sancto
+ <div class="meta">class-1 &middot; violet &middot; Ep. Col 3:1-4 &middot; Ev. Matt 28:1-7</div>
+
+</div>
+<div class="day white">
+ <span class="dom">28</span>ef-easter-sunday
+ <div class="meta">class-1 &middot; white &middot; Ep. 1 Cor 5:7-8 &middot; Ev. Mark 16:1-7</div>
+
+</div>
+<div class="day white">
+ <span class="dom">29</span>ef-easter-1-monday
+ <div class="meta">class-1 &middot; white &middot; Ep. Acts 10:37-43. &middot; Ev. Luke 24:13-35</div>
+
+</div>
+<div class="day white">
+ <span class="dom">30</span>ef-easter-1-tuesday
+ <div class="meta">class-1 &middot; white &middot; Ep. Acts 13:16; 13:26-33 &middot; Ev. Luke 24:36-47</div>
+
+</div>
+<div class="day white">
+ <span class="dom">31</span>ef-easter-1-wednesday
+ <div class="meta">class-1 &middot; white &middot; Ep. Acts 3:13-15; 3:17-19 &middot; Ev. John 21:1-14</div>
+
+</div>
+<h2>Aprilis</h2>
+<div class="day white">
+ <span class="dom">1</span>ef-easter-1-thursday
+ <div class="meta">class-1 &middot; white &middot; Ep. Acts 8:26-40 &middot; Ev. John 20:11-18</div>
+
+</div>
+<div class="day white">
+ <span class="dom">2</span>ef-easter-1-friday
+ <div class="meta">class-1 &middot; white &middot; Ep. 1 Pet 3:18-22 &middot; Ev. Matt 28:16-20</div>
+
+</div>
+<div class="day white">
+ <span class="dom">3</span>ef-easter-1-saturday
+ <div class="meta">class-1 &middot; white &middot; Ep. 1 Pet 2:1-10 &middot; Ev. John 20:1-9</div>
+
+</div>
+<div class="day white">
+ <span class="dom">4</span>ef-low-sunday
+ <div class="meta">class-1 &middot; white &middot; Ep. 1 John 5:4-10 &middot; Ev. John 20:19-31</div>
+
+</div>
+<div class="day white">
+ <span class="dom">5</span>annunciation-of-the-blessed-virgin-mary
+ <div class="meta">class-1 &middot; white &middot; Ep. Isa 7:10-15 &middot; Ev. Luke 1:26-38</div>
+
+</div>
+<div class="day white">
+ <span class="dom">6</span>ef-easter-2-tuesday
+ <div class="meta">class-4 &middot; white &middot; Ep. 1 John 5:4-10 &middot; Ev. John 20:19-31</div>
+
+</div>
+<div class="day white">
+ <span class="dom">7</span>ef-easter-2-wednesday
+ <div class="meta">class-4 &middot; white &middot; Ep. 1 John 5:4-10 &middot; Ev. John 20:19-31</div>
+
+</div>
+<div class="day white">
+ <span class="dom">8</span>ef-easter-2-thursday
+ <div class="meta">class-4 &middot; white &middot; Ep. 1 John 5:4-10 &middot; Ev. John 20:19-31</div>
+
+</div>
+<div class="day white">
+ <span class="dom">9</span>ef-easter-2-friday
+ <div class="meta">class-4 &middot; white &middot; Ep. 1 John 5:4-10 &middot; Ev. John 20:19-31</div>
+
+</div>
+<div class="day white">
+ <span class="dom">10</span>Officium sanctae Mariae in sabbato
+ <div class="meta">class-4 &middot; white &middot; Ep. Ecclus 24:14-16 &middot; Ev. John 19:25-27</div>
+
+</div>
+<div class="day white">
+ <span class="dom">11</span>ef-easter-sunday-3
+ <div class="meta">class-2 &middot; white &middot; Ep. 1 Pet 2:21-25 &middot; Ev. John 10:11-16</div>
+
+</div>
+<div class="day white">
+ <span class="dom">12</span>ef-easter-3-monday
+ <div class="meta">class-4 &middot; white &middot; Ep. 1 Pet 2:21-25 &middot; Ev. John 10:11-16</div>
+
+</div>
+<div class="day red">
+ <span class="dom">13</span>hermenegild
+ <div class="meta">class-3 &middot; red &middot; Ep. Wis 10:10-14 &middot; Ev. Luke 14:26-33.</div>
+
+</div>
+<div class="day red">
+ <span class="dom">14</span>justin
+ <div class="meta">class-3 &middot; red &middot; Ep. 1 Cor 1:18-25; 1:30; &middot; Ev. Luke 12:2-8</div>
+ <div class="meta">Com. sts-tiburtius-valerian-et-maximus-martyrs</div>
+</div>
+<div class="day white">
+ <span class="dom">15</span>ef-easter-3-thursday
+ <div class="meta">class-4 &middot; white &middot; Ep. 1 Pet 2:21-25 &middot; Ev. John 10:11-16</div>
+
+</div>
+<div class="day white">
+ <span class="dom">16</span>ef-easter-3-friday
+ <div class="meta">class-4 &middot; white &middot; Ep. 1 Pet 2:21-25 &middot; Ev. John 10:11-16</div>
+
+</div>
+<div class="day white">
+ <span class="dom">17</span>Officium sanctae Mariae in sabbato
+ <div class="meta">class-4 &middot; white &middot; Ep. Ecclus 24:14-16 &middot; Ev. John 19:25-27</div>
+ <div class="meta">Com. anicetus</div>
+</div>
+<div class="day white">
+ <span class="dom">18</span>ef-easter-sunday-4
+ <div class="meta">class-2 &middot; white &middot; Ep. 1 Pet 2:11-19 &middot; Ev. John 16:16-22</div>
+
+</div>
+<div class="day white">
+ <span class="dom">19</span>ef-easter-4-monday
+ <div class="meta">class-4 &middot; white &middot; Ep. 1 Pet 2:11-19 &middot; Ev. John 16:16-22</div>
+
+</div>
+<div class="day white">
+ <span class="dom">20</span>ef-easter-4-tuesday
+ <div class="meta">class-4 &middot; white &middot; Ep. 1 Pet 2:11-19 &middot; Ev. John 16:16-22</div>
+
+</div>
+<div class="day white">
+ <span class="dom">21</span>anselm
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+
+</div>
+<div class="day red">
+ <span class="dom">22</span>sts-soter-caius
+ <div class="meta">class-3 &middot; red &middot; Ep. 1 Pet 5:1-4; 5:10-11. &middot; Ev. Matt 16:13-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">23</span>ef-easter-4-friday
+ <div class="meta">class-4 &middot; white &middot; Ep. 1 Pet 2:11-19 &middot; Ev. John 16:16-22</div>
+ <div class="meta">Com. george</div>
+</div>
+<div class="day red">
+ <span class="dom">24</span>fidelis-of-sigmaringen
+ <div class="meta">class-3 &middot; red &middot; Ep. Wis 5:1-5 &middot; Ev. John 15:1-7</div>
+
+</div>
+<div class="day white">
+ <span class="dom">25</span>ef-easter-sunday-5
+ <div class="meta">class-2 &middot; white &middot; Ep. Jas 1:17-21 &middot; Ev. John 16:5-14</div>
+ <div class="meta">Com. major-litanies</div>
+</div>
+<div class="day red">
+ <span class="dom">26</span>sts-cletus-marcellinus
+ <div class="meta">class-3 &middot; red &middot; Ep. 1 Pet 5:1-4; 5:10-11. &middot; Ev. Matt 16:13-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">27</span>peter-canisius
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">28</span>paul-of-the-cross
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Cor 1:17-25. &middot; Ev. Luke 10:1-9</div>
+
+</div>
+<div class="day red">
+ <span class="dom">29</span>peter-of-verona
+ <div class="meta">class-3 &middot; red &middot; Ep. 2 Tim. 2:8-10; 3:10-12. &middot; Ev. Matt 10:34-42</div>
+
+</div>
+<div class="day white">
+ <span class="dom">30</span>catherine-of-siena
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Cor 10:17-18; 11:1-2 &middot; Ev. Matt 25:1-13.</div>
+
+</div>
+<h2>Maius</h2>
+<div class="day white">
+ <span class="dom">1</span>joseph-the-workman
+ <div class="meta">class-1 &middot; white &middot; Ep. Col. 3:14-15, 17, 23-24 &middot; Ev. Matt 13:54-58</div>
+
+</div>
+<div class="day white">
+ <span class="dom">2</span>ef-easter-sunday-6
+ <div class="meta">class-2 &middot; white &middot; Ep. Jas 1:22-27 &middot; Ev. John 16:23-30</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">3</span>ef-rogation-monday
+ <div class="meta">class-4 &middot; violet &middot; Ep. Jas 1:22-27 &middot; Ev. John 16:23-30</div>
+ <div class="meta">Com. sts-alexander-companions</div>
+</div>
+<div class="day white">
+ <span class="dom">4</span>monica
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Tim. 5:3-10. &middot; Ev. Luke 7:11-16</div>
+
+</div>
+<div class="day white">
+ <span class="dom">5</span>ef-ascension-vigil
+ <div class="meta">class-2 &middot; white &middot; Ep. Eph. 4:7-13. &middot; Ev. John 17:1-11.</div>
+ <div class="meta">Com. pius-v</div>
+</div>
+<div class="day white">
+ <span class="dom">6</span>ef-ascension
+ <div class="meta">class-1 &middot; white &middot; Ep. Acts 1:1-11 &middot; Ev. Mark 16:14-20</div>
+
+</div>
+<div class="day red">
+ <span class="dom">7</span>stanislaus
+ <div class="meta">class-3 &middot; red &middot; Ep. Wis 5:1-5 &middot; Ev. John 15:1-7</div>
+
+</div>
+<div class="day white">
+ <span class="dom">8</span>Officium sanctae Mariae in sabbato
+ <div class="meta">class-4 &middot; white &middot; Ep. Ecclus 24:14-16 &middot; Ev. John 19:25-27</div>
+
+</div>
+<div class="day white">
+ <span class="dom">9</span>ef-easter-sunday-7
+ <div class="meta">class-2 &middot; white &middot; Ep. 1 Pet 4:7-11. &middot; Ev. John 15:26-27; 16:1-4.</div>
+
+</div>
+<div class="day white">
+ <span class="dom">10</span>antoninus
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 44:16-27; 45:3-20 &middot; Ev. Matt 25:14-23</div>
+ <div class="meta">Com. gordiano-and-epimacho</div>
+</div>
+<div class="day red">
+ <span class="dom">11</span>sts-philip-james
+ <div class="meta">class-2 &middot; red &middot; Ep. Wis. 5:1-5 &middot; Ev. John 14:1-13</div>
+
+</div>
+<div class="day red">
+ <span class="dom">12</span>sts-nereus-achilleus-domitilla-pancras
+ <div class="meta">class-3 &middot; red &middot; Ep. Wis. 5:1-5 &middot; Ev. John 4:46-53</div>
+
+</div>
+<div class="day white">
+ <span class="dom">13</span>robert-bellarmine
+ <div class="meta">class-3 &middot; white &middot; Ep. Wis 7:7-14. &middot; Ev. Matt 5:13-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">14</span>ef-easter-7-friday
+ <div class="meta">class-4 &middot; white &middot; Ep. 1 Pet 4:7-11. &middot; Ev. John 15:26-27; 16:1-4.</div>
+ <div class="meta">Com. boniface-martyr</div>
+</div>
+<div class="day red">
+ <span class="dom">15</span>ef-pentecost-vigil
+ <div class="meta">class-1 &middot; red &middot; Ep. Acts 19:1-8. &middot; Ev. John 14:15-21.</div>
+
+</div>
+<div class="day red">
+ <span class="dom">16</span>ef-pentecost
+ <div class="meta">class-1 &middot; red &middot; Ep. Acts 2:1-11. &middot; Ev. John 14:23-31.</div>
+
+</div>
+<div class="day red">
+ <span class="dom">17</span>ef-easter-8-monday
+ <div class="meta">class-1 &middot; red &middot; Ep. Acts 10:34, 42-48 &middot; Ev. John 3:16-21</div>
+
+</div>
+<div class="day red">
+ <span class="dom">18</span>ef-easter-8-tuesday
+ <div class="meta">class-1 &middot; red &middot; Ep. Acts 8:14-17. &middot; Ev. John 10:1-10.</div>
+
+</div>
+<div class="day red">
+ <span class="dom">19</span>ef-pentecost-ember-wed
+ <div class="meta">class-1 &middot; red &middot; Ep. Acts 5:12-16 &middot; Ev. John 6:44-52.</div>
+
+</div>
+<div class="day red">
+ <span class="dom">20</span>ef-easter-8-thursday
+ <div class="meta">class-1 &middot; red &middot; Ep. Acts 8:5-8 &middot; Ev. Luke 9:1-6</div>
+
+</div>
+<div class="day red">
+ <span class="dom">21</span>ef-pentecost-ember-fri
+ <div class="meta">class-1 &middot; red &middot; Ep. Joel 2:23-24; 26-27 &middot; Ev. Luke 5:17-26</div>
+
+</div>
+<div class="day red">
+ <span class="dom">22</span>ef-pentecost-ember-sat
+ <div class="meta">class-1 &middot; red &middot; Ep. Rom 5:1-5. &middot; Ev. Luke 4:38-44.</div>
+
+</div>
+<div class="day white">
+ <span class="dom">23</span>ef-trinity
+ <div class="meta">class-1 &middot; white &middot; Ep. Rom 11:33-36. &middot; Ev. Matt 28:18-20</div>
+
+</div>
+<div class="day green">
+ <span class="dom">24</span>ef-time-after-pentecost-1-monday
+ <div class="meta">class-4 &middot; green &middot; Ep. 1 John 4:8-21 &middot; Ev. Luke 6:36-42</div>
+
+</div>
+<div class="day white">
+ <span class="dom">25</span>gregory-vii
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Pet 5:1-4; 5:10-11. &middot; Ev. Matt 16:13-19</div>
+ <div class="meta">Com. urban-pope-and-martyr</div>
+</div>
+<div class="day white">
+ <span class="dom">26</span>philip-neri
+ <div class="meta">class-3 &middot; white &middot; Ep. Wis 7:7-14. &middot; Ev. Luke 12:35-40</div>
+ <div class="meta">Com. eleutherius</div>
+</div>
+<div class="day white">
+ <span class="dom">27</span>ef-corpus-christi
+ <div class="meta">class-1 &middot; white &middot; Ep. 1 Cor 11:23-29 &middot; Ev. John 6:56-59</div>
+
+</div>
+<div class="day white">
+ <span class="dom">28</span>augustine-of-canterbury
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Thess 2:2-9 &middot; Ev. Luke 10:1-9</div>
+
+</div>
+<div class="day white">
+ <span class="dom">29</span>mary-magdalene-de-pazzi
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Cor 10:17-18; 11:1-2 &middot; Ev. Matt 25:1-13.</div>
+
+</div>
+<div class="day green">
+ <span class="dom">30</span>ef-time-after-pentecost-sunday-2
+ <div class="meta">class-2 &middot; green &middot; Ep. 1 John 3:13-18. &middot; Ev. Luke 14:16-24.</div>
+
+</div>
+<div class="day white">
+ <span class="dom">31</span>queenship-of-the-blessed-virgin-mary
+ <div class="meta">class-2 &middot; white &middot; Ep. Eccli 24:5; 14:7; 14:9-11; 24:30-31 &middot; Ev. Luke 1:26-33</div>
+ <div class="meta">Com. petronilla</div>
+</div>
+<h2>Iunius</h2>
+<div class="day white">
+ <span class="dom">1</span>angela-merici
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Cor 10:17-18; 11:1-2 &middot; Ev. Matt 25:1-13.</div>
+
+</div>
+<div class="day green">
+ <span class="dom">2</span>ef-time-after-pentecost-2-wednesday
+ <div class="meta">class-4 &middot; green &middot; Ep. 1 John 3:13-18. &middot; Ev. Luke 14:16-24.</div>
+ <div class="meta">Com. sts-marcellinus-peter-erasmus</div>
+</div>
+<div class="day green">
+ <span class="dom">3</span>ef-time-after-pentecost-2-thursday
+ <div class="meta">class-4 &middot; green &middot; Ep. 1 John 3:13-18. &middot; Ev. Luke 14:16-24.</div>
+
+</div>
+<div class="day white">
+ <span class="dom">4</span>ef-sacred-heart
+ <div class="meta">class-1 &middot; white &middot; Ep. Eph 3:8-12, 14-19 &middot; Ev. John 19:31-37</div>
+
+</div>
+<div class="day red">
+ <span class="dom">5</span>boniface
+ <div class="meta">class-3 &middot; red &middot; Ep. Ecclus 44:1-15 &middot; Ev. Matt 5:1-12</div>
+
+</div>
+<div class="day green">
+ <span class="dom">6</span>ef-time-after-pentecost-sunday-3
+ <div class="meta">class-2 &middot; green &middot; Ep. 1 Pet. 5:6-11 &middot; Ev. Luke 15:1-10</div>
+
+</div>
+<div class="day green">
+ <span class="dom">7</span>ef-time-after-pentecost-3-monday
+ <div class="meta">class-4 &middot; green &middot; Ep. 1 Pet. 5:6-11 &middot; Ev. Luke 15:1-10</div>
+
+</div>
+<div class="day green">
+ <span class="dom">8</span>ef-time-after-pentecost-3-tuesday
+ <div class="meta">class-4 &middot; green &middot; Ep. 1 Pet. 5:6-11 &middot; Ev. Luke 15:1-10</div>
+
+</div>
+<div class="day green">
+ <span class="dom">9</span>ef-time-after-pentecost-3-wednesday
+ <div class="meta">class-4 &middot; green &middot; Ep. 1 Pet. 5:6-11 &middot; Ev. Luke 15:1-10</div>
+ <div class="meta">Com. sts-primus-felicianus</div>
+</div>
+<div class="day white">
+ <span class="dom">10</span>margaret-of-scotland
+ <div class="meta">class-3 &middot; white &middot; Ep. Prov 31:10-31 &middot; Ev. Matt 13:44-52.</div>
+
+</div>
+<div class="day red">
+ <span class="dom">11</span>barnabas
+ <div class="meta">class-3 &middot; red &middot; Ep. Acts 11:21-26; 13:1-3 &middot; Ev. Matt 10:16-22</div>
+
+</div>
+<div class="day white">
+ <span class="dom">12</span>john-of-san-fecundo
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Luke 12:35-40</div>
+ <div class="meta">Com. basilidus</div>
+</div>
+<div class="day green">
+ <span class="dom">13</span>ef-time-after-pentecost-sunday-4
+ <div class="meta">class-2 &middot; green &middot; Ep. Rom 8:18-23 &middot; Ev. Luke 5:1-11</div>
+
+</div>
+<div class="day white">
+ <span class="dom">14</span>basil-the-great
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Luke 14:26-35</div>
+
+</div>
+<div class="day green">
+ <span class="dom">15</span>ef-time-after-pentecost-4-tuesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Rom 8:18-23 &middot; Ev. Luke 5:1-11</div>
+ <div class="meta">Com. vitus</div>
+</div>
+<div class="day green">
+ <span class="dom">16</span>ef-time-after-pentecost-4-wednesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Rom 8:18-23 &middot; Ev. Luke 5:1-11</div>
+
+</div>
+<div class="day white">
+ <span class="dom">17</span>gregory-barbarigo
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 44:16-27; 45:3-20 &middot; Ev. Matt 25:14-23</div>
+
+</div>
+<div class="day white">
+ <span class="dom">18</span>ephrem-of-syria
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+ <div class="meta">Com. marcus-and-marcellianus</div>
+</div>
+<div class="day white">
+ <span class="dom">19</span>julia-of-falconieri
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Cor 10:17-18; 11:1-2 &middot; Ev. Matt 25:1-13.</div>
+ <div class="meta">Com. sts-gervasius-and-protasius</div>
+</div>
+<div class="day green">
+ <span class="dom">20</span>ef-time-after-pentecost-sunday-5
+ <div class="meta">class-2 &middot; green &middot; Ep. 1 Pet 3:8-15. &middot; Ev. Matt 5:20-24.</div>
+
+</div>
+<div class="day white">
+ <span class="dom">21</span>aloysius-gongzaga
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Matt 22:29-40</div>
+
+</div>
+<div class="day white">
+ <span class="dom">22</span>paulinus-of-nola
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Cor. 8:9-15 &middot; Ev. Luke 12:32-34</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">23</span>vigil-of-the-nativity-of-st-john-the-baptist
+ <div class="meta">class-2 &middot; violet &middot; Ep. Jer 1:4-10 &middot; Ev. Luke 1:5-17</div>
+
+</div>
+<div class="day white">
+ <span class="dom">24</span>nativity-of-st-john-the-baptist
+ <div class="meta">class-1 &middot; white &middot; Ep. Isa 49:1-3, 5-7. &middot; Ev. Luke 1:57-68</div>
+
+</div>
+<div class="day white">
+ <span class="dom">25</span>william
+ <div class="meta">class-3 &middot; white &middot; Ep. Ecclus 45:1-6 &middot; Ev. Matt 19:27-29.</div>
+
+</div>
+<div class="day red">
+ <span class="dom">26</span>sts-john-paul
+ <div class="meta">class-3 &middot; red &middot; Ep. Eccli 44:10-15 &middot; Ev. Luke 12:1-8</div>
+
+</div>
+<div class="day green">
+ <span class="dom">27</span>ef-time-after-pentecost-sunday-6
+ <div class="meta">class-2 &middot; green &middot; Ep. Rom 6:3-11. &middot; Ev. Mark 8:1-9</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">28</span>vigil-of-sts-peter-paul
+ <div class="meta">class-2 &middot; violet &middot; Ep. Acts 3:1-10 &middot; Ev. John 21:15-19</div>
+
+</div>
+<div class="day red">
+ <span class="dom">29</span>sts-peter-paul
+ <div class="meta">class-1 &middot; red &middot; Ep. Acts 12:1-11 &middot; Ev. Matt 16:13-19</div>
+
+</div>
+<div class="day red">
+ <span class="dom">30</span>in-commemoratione-sancti-pauli-apostoli
+ <div class="meta">class-3 &middot; red &middot; Ep. Gal 1:11-20 &middot; Ev. Matt 10:16-22</div>
+ <div class="meta">Com. commemoration-of-st-peter</div>
+</div>
+<h2>Iulius</h2>
+<div class="day red">
+ <span class="dom">1</span>precious-blood-of-our-lord-jesus-christ
+ <div class="meta">class-1 &middot; red &middot; Ep. Heb 9:11-15. &middot; Ev. John 19:30-35</div>
+
+</div>
+<div class="day white">
+ <span class="dom">2</span>visitation-of-the-blessed-virgin-mary
+ <div class="meta">class-2 &middot; white &middot; Ep. Song 2:8-14 &middot; Ev. Luke 1:39-47</div>
+ <div class="meta">Com. processus-and-martinian</div>
+</div>
+<div class="day red">
+ <span class="dom">3</span>irenaeus
+ <div class="meta">class-3 &middot; red &middot; Ep. 2 Tim. 3:14-17; 4:1-5 &middot; Ev. Matt 10:28-33</div>
+
+</div>
+<div class="day green">
+ <span class="dom">4</span>ef-time-after-pentecost-sunday-7
+ <div class="meta">class-2 &middot; green &middot; Ep. Rom 6:19-23 &middot; Ev. Matt 7:15-21</div>
+
+</div>
+<div class="day white">
+ <span class="dom">5</span>anthony-mary-zaccariah
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Tim. 4:8-16 &middot; Ev. Mark 10:15-21</div>
+
+</div>
+<div class="day green">
+ <span class="dom">6</span>ef-time-after-pentecost-7-tuesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Rom 6:19-23 &middot; Ev. Matt 7:15-21</div>
+
+</div>
+<div class="day white">
+ <span class="dom">7</span>sts-cyril-methodius
+ <div class="meta">class-3 &middot; white &middot; Ep. Heb 7:23-27 &middot; Ev. Luke 10:1-9</div>
+
+</div>
+<div class="day white">
+ <span class="dom">8</span>elizabeth-of-portugal
+ <div class="meta">class-3 &middot; white &middot; Ep. Prov 31:10-31 &middot; Ev. Matt 13:44-52.</div>
+
+</div>
+<div class="day green">
+ <span class="dom">9</span>ef-time-after-pentecost-7-friday
+ <div class="meta">class-4 &middot; green &middot; Ep. Rom 6:19-23 &middot; Ev. Matt 7:15-21</div>
+
+</div>
+<div class="day red">
+ <span class="dom">10</span>seven-holy-brothers-and-sts-rufina-secunda
+ <div class="meta">class-3 &middot; red &middot; Ep. Prov 31:10-31 &middot; Ev. Matt 12:46-50</div>
+
+</div>
+<div class="day green">
+ <span class="dom">11</span>ef-time-after-pentecost-sunday-8
+ <div class="meta">class-2 &middot; green &middot; Ep. Rom 8:12-17 &middot; Ev. Luke 16:1-9</div>
+
+</div>
+<div class="day white">
+ <span class="dom">12</span>john-gualbert
+ <div class="meta">class-3 &middot; white &middot; Ep. Ecclus 45:1-6 &middot; Ev. Matt 5:43-48</div>
+ <div class="meta">Com. naboris-et-felicis</div>
+</div>
+<div class="day green">
+ <span class="dom">13</span>ef-time-after-pentecost-8-tuesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Rom 8:12-17 &middot; Ev. Luke 16:1-9</div>
+
+</div>
+<div class="day white">
+ <span class="dom">14</span>bonaventure
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">15</span>henry-the-emperor
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Luke 12:35-40</div>
+
+</div>
+<div class="day green">
+ <span class="dom">16</span>ef-time-after-pentecost-8-friday
+ <div class="meta">class-4 &middot; green &middot; Ep. Rom 8:12-17 &middot; Ev. Luke 16:1-9</div>
+ <div class="meta">Com. our-lady-of-mt-carmel</div>
+</div>
+<div class="day white">
+ <span class="dom">17</span>Officium sanctae Mariae in sabbato
+ <div class="meta">class-4 &middot; white &middot; Ep. Ecclus 24:14-16 &middot; Ev. Luke 11:27-28</div>
+ <div class="meta">Com. alexis</div>
+</div>
+<div class="day green">
+ <span class="dom">18</span>ef-time-after-pentecost-sunday-9
+ <div class="meta">class-2 &middot; green &middot; Ep. 1 Cor. 10:6-13 &middot; Ev. Luke 19:41-47</div>
+
+</div>
+<div class="day white">
+ <span class="dom">19</span>vincent-de-paul
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Cor. 4:9-14 &middot; Ev. Luke 10:1-9</div>
+
+</div>
+<div class="day white">
+ <span class="dom">20</span>jerome-emiliani
+ <div class="meta">class-3 &middot; white &middot; Ep. Isa 58:7-11 &middot; Ev. Matt 19:13-21</div>
+ <div class="meta">Com. margaret</div>
+</div>
+<div class="day white">
+ <span class="dom">21</span>laurence-of-brindisi
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+ <div class="meta">Com. praxedis-virginis</div>
+</div>
+<div class="day white">
+ <span class="dom">22</span>mary-magdalene
+ <div class="meta">class-3 &middot; white &middot; Ep. Song 3:2-5; 8:6-7 &middot; Ev. Luke 7:36-50</div>
+
+</div>
+<div class="day red">
+ <span class="dom">23</span>apollinaris
+ <div class="meta">class-3 &middot; red &middot; Ep. 1 Pet. 5:1-11 &middot; Ev. Luke 22:24-30</div>
+ <div class="meta">Com. liborii</div>
+</div>
+<div class="day white">
+ <span class="dom">24</span>Officium sanctae Mariae in sabbato
+ <div class="meta">class-4 &middot; white &middot; Ep. Ecclus 24:14-16 &middot; Ev. Luke 11:27-28</div>
+ <div class="meta">Com. christina</div>
+</div>
+<div class="day green">
+ <span class="dom">25</span>ef-time-after-pentecost-sunday-10
+ <div class="meta">class-2 &middot; green &middot; Ep. 1 Cor. 12:2-11 &middot; Ev. Luke 18:9-14</div>
+ <div class="meta">Com. james-the-greater</div>
+</div>
+<div class="day white">
+ <span class="dom">26</span>anne-mother-of-the-blessed-virgin
+ <div class="meta">class-2 &middot; white &middot; Ep. Prov 31:10-31 &middot; Ev. Matt 13:44-52.</div>
+
+</div>
+<div class="day green">
+ <span class="dom">27</span>ef-time-after-pentecost-10-tuesday
+ <div class="meta">class-4 &middot; green &middot; Ep. 1 Cor. 12:2-11 &middot; Ev. Luke 18:9-14</div>
+ <div class="meta">Com. pantaleon</div>
+</div>
+<div class="day red">
+ <span class="dom">28</span>sts-nazarius-celsus-st-victor-i-st-innocent-i
+ <div class="meta">class-3 &middot; red &middot; Ep. Wis 10:17-20 &middot; Ev. Luke 21:9-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">29</span>martha
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Cor 10:17-18; 11:1-2 &middot; Ev. Luke 10:38-42</div>
+ <div class="meta">Com. felicis-simplicii-faustini-et-beatricis</div>
+</div>
+<div class="day green">
+ <span class="dom">30</span>ef-time-after-pentecost-10-friday
+ <div class="meta">class-4 &middot; green &middot; Ep. 1 Cor. 12:2-11 &middot; Ev. Luke 18:9-14</div>
+ <div class="meta">Com. sts-abdon-sennen</div>
+</div>
+<div class="day white">
+ <span class="dom">31</span>ignatius-loyola
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim. 2:8-10; 3:10-12. &middot; Ev. Luke 10:1-9</div>
+
+</div>
+<h2>Augustus</h2>
+<div class="day green">
+ <span class="dom">1</span>ef-time-after-pentecost-sunday-11
+ <div class="meta">class-2 &middot; green &middot; Ep. 1 Cor. 15:1-10 &middot; Ev. Mark 7:31-37</div>
+
+</div>
+<div class="day white">
+ <span class="dom">2</span>alphonsus-liguori
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim. 2:1-7 &middot; Ev. Luke 10:1-9</div>
+ <div class="meta">Com. stephen-i-pope-and-martyr</div>
+</div>
+<div class="day green">
+ <span class="dom">3</span>ef-time-after-pentecost-11-tuesday
+ <div class="meta">class-4 &middot; green &middot; Ep. 1 Cor. 15:1-10 &middot; Ev. Mark 7:31-37</div>
+
+</div>
+<div class="day white">
+ <span class="dom">4</span>dominic
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim. 4:1-8 &middot; Ev. Luke 12:35-40</div>
+
+</div>
+<div class="day white">
+ <span class="dom">5</span>dedication-of-the-basilica-of-st-mary-major
+ <div class="meta">class-3 &middot; white &middot; Ep. Ecclus 24:14-16 &middot; Ev. Luke 11:27-28</div>
+
+</div>
+<div class="day white">
+ <span class="dom">6</span>transfiguration-of-our-lord
+ <div class="meta">class-2 &middot; white &middot; Ep. 2 Pet. 1:16-19 &middot; Ev. Matt 17:1-9</div>
+ <div class="meta">Com. pope-sixtus-ii-felicissimus-and-agapitus-martyrs</div>
+</div>
+<div class="day white">
+ <span class="dom">7</span>cajetan
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Matt 6:24-33</div>
+ <div class="meta">Com. donatus</div>
+</div>
+<div class="day green">
+ <span class="dom">8</span>ef-time-after-pentecost-sunday-12
+ <div class="meta">class-2 &middot; green &middot; Ep. 2 Cor. 3:4-9 &middot; Ev. Luke 10:23-37</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">9</span>vigil-of-st-lawrence
+ <div class="meta">class-3 &middot; violet &middot; Ep. Ecclus 51:1-8, 12 &middot; Ev. Matt 16:24-27</div>
+ <div class="meta">Com. romanus</div>
+</div>
+<div class="day red">
+ <span class="dom">10</span>lawrence
+ <div class="meta">class-2 &middot; red &middot; Ep. 2 Cor. 9:6-10 &middot; Ev. John 12:24-26</div>
+
+</div>
+<div class="day green">
+ <span class="dom">11</span>ef-time-after-pentecost-12-wednesday
+ <div class="meta">class-4 &middot; green &middot; Ep. 2 Cor. 3:4-9 &middot; Ev. Luke 10:23-37</div>
+ <div class="meta">Com. sts-tiburtius-susanna</div>
+</div>
+<div class="day white">
+ <span class="dom">12</span>clare
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Cor 10:17-18; 11:1-2 &middot; Ev. Matt 25:1-13.</div>
+
+</div>
+<div class="day green">
+ <span class="dom">13</span>ef-time-after-pentecost-12-friday
+ <div class="meta">class-4 &middot; green &middot; Ep. 2 Cor. 3:4-9 &middot; Ev. Luke 10:23-37</div>
+ <div class="meta">Com. sts-hippolytus-cassian</div>
+</div>
+<div class="day violet">
+ <span class="dom">14</span>vigil-of-the-assumption
+ <div class="meta">class-2 &middot; violet &middot; Ep. Sir 24:23-31 &middot; Ev. Luke 11:27-28</div>
+ <div class="meta">Com. eusebius-confessor</div>
+</div>
+<div class="day white">
+ <span class="dom">15</span>assumption-of-the-blessed-virgin-mary
+ <div class="meta">class-1 &middot; white &middot; Ep. Judith 13:22-25; 15:10 &middot; Ev. Luke 1:41-50</div>
+ <div class="meta">Com. ef-time-after-pentecost-sunday-13</div>
+</div>
+<div class="day white">
+ <span class="dom">16</span>joachim-father-of-the-blessed-virgin
+ <div class="meta">class-2 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Matt 1:1-16</div>
+
+</div>
+<div class="day white">
+ <span class="dom">17</span>hyacinth
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Luke 12:35-40</div>
+
+</div>
+<div class="day green">
+ <span class="dom">18</span>ef-time-after-pentecost-13-wednesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Gal 3:16-22 &middot; Ev. Luke 17:11-19</div>
+ <div class="meta">Com. agapitus</div>
+</div>
+<div class="day white">
+ <span class="dom">19</span>john-eudes
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Luke 12:35-40</div>
+
+</div>
+<div class="day white">
+ <span class="dom">20</span>bernard-of-clairvaux
+ <div class="meta">class-3 &middot; white &middot; Ep. Ecclus 39:6-14 &middot; Ev. Matt 5:13-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">21</span>jane-frances-de-chantal
+ <div class="meta">class-3 &middot; white &middot; Ep. Prov 31:10-31 &middot; Ev. Matt 13:44-52.</div>
+
+</div>
+<div class="day green">
+ <span class="dom">22</span>ef-time-after-pentecost-sunday-14
+ <div class="meta">class-2 &middot; green &middot; Ep. Gal 5:16-24 &middot; Ev. Matt 6:24-33</div>
+ <div class="meta">Com. immaculate-heart-of-mary</div>
+</div>
+<div class="day white">
+ <span class="dom">23</span>philip-benizi
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Cor. 4:9-14 &middot; Ev. Luke 12:32-34</div>
+
+</div>
+<div class="day red">
+ <span class="dom">24</span>bartholomew
+ <div class="meta">class-2 &middot; red &middot; Ep. 1 Cor. 12:27-31 &middot; Ev. Luke 6:12-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">25</span>louis-ix
+ <div class="meta">class-3 &middot; white &middot; Ep. Wis 10:10-14 &middot; Ev. Luke 19:12-26</div>
+
+</div>
+<div class="day green">
+ <span class="dom">26</span>ef-time-after-pentecost-14-thursday
+ <div class="meta">class-4 &middot; green &middot; Ep. Gal 5:16-24 &middot; Ev. Matt 6:24-33</div>
+ <div class="meta">Com. zephyrinus</div>
+</div>
+<div class="day white">
+ <span class="dom">27</span>joseph-calasance
+ <div class="meta">class-3 &middot; white &middot; Ep. Wis 10:10-14 &middot; Ev. Matt 18:1-5</div>
+
+</div>
+<div class="day white">
+ <span class="dom">28</span>augustine
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+ <div class="meta">Com. hermes</div>
+</div>
+<div class="day green">
+ <span class="dom">29</span>ef-time-after-pentecost-sunday-15
+ <div class="meta">class-2 &middot; green &middot; Ep. Gal 5:25-26; 6:1-10 &middot; Ev. Luke 7:11-16</div>
+
+</div>
+<div class="day white">
+ <span class="dom">30</span>rose-of-lima
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Cor 10:17-18; 11:1-2 &middot; Ev. Matt 25:1-13.</div>
+ <div class="meta">Com. sts-felix-and-adauctus</div>
+</div>
+<div class="day white">
+ <span class="dom">31</span>raymond-nonnatus
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Luke 12:35-40</div>
+
+</div>
+<h2>September</h2>
+<div class="day green">
+ <span class="dom">1</span>ef-time-after-pentecost-15-wednesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Gal 5:25-26; 6:1-10 &middot; Ev. Luke 7:11-16</div>
+ <div class="meta">Com. giles</div><div class="meta">Com. twelve-holy-brothers-martyrs</div>
+</div>
+<div class="day white">
+ <span class="dom">2</span>stephen-of-hungary
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Luke 19:12-26</div>
+
+</div>
+<div class="day white">
+ <span class="dom">3</span>pius-x
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Thess. 2:2-8 &middot; Ev. John 21:15-17</div>
+
+</div>
+<div class="day white">
+ <span class="dom">4</span>Officium sanctae Mariae in sabbato
+ <div class="meta">class-4 &middot; white &middot; Ep. Ecclus 24:14-16 &middot; Ev. Luke 11:27-28</div>
+
+</div>
+<div class="day green">
+ <span class="dom">5</span>ef-time-after-pentecost-sunday-16
+ <div class="meta">class-2 &middot; green &middot; Ep. Eph 3:13-21 &middot; Ev. Luke 14:1-11</div>
+
+</div>
+<div class="day green">
+ <span class="dom">6</span>ef-time-after-pentecost-16-monday
+ <div class="meta">class-4 &middot; green &middot; Ep. Eph 3:13-21 &middot; Ev. Luke 14:1-11</div>
+
+</div>
+<div class="day green">
+ <span class="dom">7</span>ef-time-after-pentecost-16-tuesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Eph 3:13-21 &middot; Ev. Luke 14:1-11</div>
+
+</div>
+<div class="day white">
+ <span class="dom">8</span>nativity-of-the-blessed-virgin-mary
+ <div class="meta">class-2 &middot; white &middot; Ep. Prov 8:22-35 &middot; Ev. Matt 1:1-16</div>
+ <div class="meta">Com. hadriani</div>
+</div>
+<div class="day green">
+ <span class="dom">9</span>ef-time-after-pentecost-16-thursday
+ <div class="meta">class-4 &middot; green &middot; Ep. Eph 3:13-21 &middot; Ev. Luke 14:1-11</div>
+ <div class="meta">Com. gorgonius</div>
+</div>
+<div class="day white">
+ <span class="dom">10</span>nicholas-of-tolentino
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Cor. 4:9-14 &middot; Ev. Luke 12:32-34</div>
+
+</div>
+<div class="day white">
+ <span class="dom">11</span>Officium sanctae Mariae in sabbato
+ <div class="meta">class-4 &middot; white &middot; Ep. Ecclus 24:14-16 &middot; Ev. Luke 11:27-28</div>
+ <div class="meta">Com. sts-protus-hyacinth</div>
+</div>
+<div class="day green">
+ <span class="dom">12</span>ef-time-after-pentecost-sunday-17
+ <div class="meta">class-2 &middot; green &middot; Ep. Eph 4:1-6 &middot; Ev. Matt 22:34-46</div>
+
+</div>
+<div class="day green">
+ <span class="dom">13</span>ef-time-after-pentecost-17-monday
+ <div class="meta">class-4 &middot; green &middot; Ep. Eph 4:1-6 &middot; Ev. Matt 22:34-46</div>
+
+</div>
+<div class="day red">
+ <span class="dom">14</span>exaltation-of-the-holy-cross
+ <div class="meta">class-2 &middot; red &middot; Ep. Phil 2:5-11 &middot; Ev. John 12:31-36</div>
+
+</div>
+<div class="day white">
+ <span class="dom">15</span>seven-sorrows-of-the-blessed-virgin-mary
+ <div class="meta">class-2 &middot; white &middot; Ep. Judith 13:22; 13:23-25 &middot; Ev. John 19:25-27</div>
+ <div class="meta">Com. nicomedes</div>
+</div>
+<div class="day red">
+ <span class="dom">16</span>sts-cornelius-cyprian
+ <div class="meta">class-3 &middot; red &middot; Ep. Wis 3:1-8 &middot; Ev. Luke 21:9-19</div>
+ <div class="meta">Com. sts-euphemia-lucy-and-geminianus</div>
+</div>
+<div class="day green">
+ <span class="dom">17</span>ef-time-after-pentecost-17-friday
+ <div class="meta">class-4 &middot; green &middot; Ep. Eph 4:1-6 &middot; Ev. Matt 22:34-46</div>
+ <div class="meta">Com. stigmata-of-st-francis</div>
+</div>
+<div class="day white">
+ <span class="dom">18</span>joseph-of-cupertino
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Cor 13:1-8 &middot; Ev. Matt 22:1-14</div>
+
+</div>
+<div class="day green">
+ <span class="dom">19</span>ef-time-after-pentecost-sunday-18
+ <div class="meta">class-2 &middot; green &middot; Ep. 1 Cor. 1:4-8 &middot; Ev. Matt 9:1-8</div>
+
+</div>
+<div class="day green">
+ <span class="dom">20</span>ef-time-after-pentecost-18-monday
+ <div class="meta">class-4 &middot; green &middot; Ep. 1 Cor. 1:4-8 &middot; Ev. Matt 9:1-8</div>
+ <div class="meta">Com. sts-eustace-companions</div>
+</div>
+<div class="day red">
+ <span class="dom">21</span>matthew
+ <div class="meta">class-2 &middot; red &middot; Ep. Ezek 1:10-14 &middot; Ev. Matt 9:9-13</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">22</span>ef-september-ember-wed
+ <div class="meta">class-2 &middot; violet &middot; Ep. 2 Esd. 8:1-10 &middot; Ev. Mark 9:16-28</div>
+ <div class="meta">Com. thomas-of-villanova</div>
+</div>
+<div class="day red">
+ <span class="dom">23</span>linus
+ <div class="meta">class-3 &middot; red &middot; Ep. 1 Pet 5:1-4; 5:10-11. &middot; Ev. Matt 16:13-19</div>
+ <div class="meta">Com. thecla</div>
+</div>
+<div class="day violet">
+ <span class="dom">24</span>ef-september-ember-fri
+ <div class="meta">class-2 &middot; violet &middot; Ep. Osee 14:2-10 &middot; Ev. Luke 7:36-50</div>
+ <div class="meta">Com. our-lady-of-ransom</div>
+</div>
+<div class="day violet">
+ <span class="dom">25</span>ef-september-ember-sat
+ <div class="meta">class-2 &middot; violet &middot; Ep. Heb 9:2-12 &middot; Ev. Luke 13:6-17</div>
+
+</div>
+<div class="day green">
+ <span class="dom">26</span>ef-time-after-pentecost-sunday-19
+ <div class="meta">class-2 &middot; green &middot; Ep. Eph 4:23-28 &middot; Ev. Matt 22:1-14</div>
+
+</div>
+<div class="day red">
+ <span class="dom">27</span>sts-cosmas-damian
+ <div class="meta">class-3 &middot; red &middot; Ep. Wis 5:16-20 &middot; Ev. Luke 6:17-23</div>
+
+</div>
+<div class="day red">
+ <span class="dom">28</span>wenceslaus
+ <div class="meta">class-3 &middot; red &middot; Ep. Wis 10:10-14 &middot; Ev. Matt 10:34-42</div>
+
+</div>
+<div class="day white">
+ <span class="dom">29</span>dedication-of-st-michael-the-archangel
+ <div class="meta">class-1 &middot; white &middot; Ep. Rev 1:1-5 &middot; Ev. Matt 18:1-10</div>
+
+</div>
+<div class="day white">
+ <span class="dom">30</span>jerome
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+
+</div>
+<h2>October</h2>
+<div class="day green">
+ <span class="dom">1</span>ef-time-after-pentecost-19-friday
+ <div class="meta">class-4 &middot; green &middot; Ep. Eph 4:23-28 &middot; Ev. Matt 22:1-14</div>
+ <div class="meta">Com. remigius</div>
+</div>
+<div class="day white">
+ <span class="dom">2</span>holy-guardian-angels
+ <div class="meta">class-3 &middot; white &middot; Ep. Exod 23:20-23 &middot; Ev. Matt 18:1-10</div>
+
+</div>
+<div class="day green">
+ <span class="dom">3</span>ef-time-after-pentecost-sunday-20
+ <div class="meta">class-2 &middot; green &middot; Ep. Eph 5:15-21 &middot; Ev. John 4:46-53</div>
+
+</div>
+<div class="day white">
+ <span class="dom">4</span>francis-of-assisi
+ <div class="meta">class-3 &middot; white &middot; Ep. Gal 6:14-18 &middot; Ev. Matt 11:25-30</div>
+
+</div>
+<div class="day green">
+ <span class="dom">5</span>ef-time-after-pentecost-20-tuesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Eph 5:15-21 &middot; Ev. John 4:46-53</div>
+ <div class="meta">Com. placid-companions</div>
+</div>
+<div class="day white">
+ <span class="dom">6</span>bruno
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Luke 12:35-40</div>
+
+</div>
+<div class="day white">
+ <span class="dom">7</span>our-lady-of-the-rosary
+ <div class="meta">class-2 &middot; white &middot; Ep. Prov 8:22-24, 32-35. &middot; Ev. Luke 1:26-38</div>
+ <div class="meta">Com. mark-i</div>
+</div>
+<div class="day white">
+ <span class="dom">8</span>bridget-of-sweden
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Tim. 5:3-10. &middot; Ev. Matt 13:44-52.</div>
+ <div class="meta">Com. sergio-baccho-marcello-and-apulejo-martyrs</div>
+</div>
+<div class="day white">
+ <span class="dom">9</span>john-leonardi
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Cor 4:1-6; 4:15-18 &middot; Ev. Luke 10:1-9</div>
+ <div class="meta">Com. dionysius-and-companions</div>
+</div>
+<div class="day green">
+ <span class="dom">10</span>ef-time-after-pentecost-sunday-21
+ <div class="meta">class-2 &middot; green &middot; Ep. Eph 6:10-17 &middot; Ev. Matt 18:23-35</div>
+
+</div>
+<div class="day white">
+ <span class="dom">11</span>maternity-of-the-blessed-virgin-mary
+ <div class="meta">class-2 &middot; white &middot; Ep. Sir 24:23-31 &middot; Ev. Luke 2:43-51</div>
+
+</div>
+<div class="day green">
+ <span class="dom">12</span>ef-time-after-pentecost-21-tuesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Eph 6:10-17 &middot; Ev. Matt 18:23-35</div>
+
+</div>
+<div class="day white">
+ <span class="dom">13</span>edward
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Luke 12:35-40</div>
+
+</div>
+<div class="day red">
+ <span class="dom">14</span>callistus-i
+ <div class="meta">class-3 &middot; red &middot; Ep. 1 Pet 5:1-4; 5:10-11. &middot; Ev. Matt 16:13-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">15</span>teresa-of-avila
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Cor 10:17-18; 11:1-2 &middot; Ev. Matt 25:1-13.</div>
+
+</div>
+<div class="day white">
+ <span class="dom">16</span>hedwig
+ <div class="meta">class-3 &middot; white &middot; Ep. Prov 31:10-31 &middot; Ev. Matt 13:44-52.</div>
+
+</div>
+<div class="day green">
+ <span class="dom">17</span>ef-time-after-pentecost-sunday-22
+ <div class="meta">class-2 &middot; green &middot; Ep. Phil 1:6-11 &middot; Ev. Matt 22:15-21</div>
+
+</div>
+<div class="day red">
+ <span class="dom">18</span>luke-the-evangelist
+ <div class="meta">class-2 &middot; red &middot; Ep. 2 Cor. 8:16-24 &middot; Ev. Luke 10:1-9</div>
+
+</div>
+<div class="day white">
+ <span class="dom">19</span>peter-of-alcantara
+ <div class="meta">class-3 &middot; white &middot; Ep. Phil 3:7-12 &middot; Ev. Luke 12:32-34</div>
+
+</div>
+<div class="day white">
+ <span class="dom">20</span>john-cantius
+ <div class="meta">class-3 &middot; white &middot; Ep. James 2:12-17 &middot; Ev. Luke 12:35-40</div>
+
+</div>
+<div class="day green">
+ <span class="dom">21</span>ef-time-after-pentecost-22-thursday
+ <div class="meta">class-4 &middot; green &middot; Ep. Phil 1:6-11 &middot; Ev. Matt 22:15-21</div>
+ <div class="meta">Com. hilarion</div><div class="meta">Com. ursula-and-companions</div>
+</div>
+<div class="day green">
+ <span class="dom">22</span>ef-time-after-pentecost-22-friday
+ <div class="meta">class-4 &middot; green &middot; Ep. Phil 1:6-11 &middot; Ev. Matt 22:15-21</div>
+
+</div>
+<div class="day white">
+ <span class="dom">23</span>anthony-mary-claret
+ <div class="meta">class-3 &middot; white &middot; Ep. Heb 7:23-27 &middot; Ev. Matt 24:42-47</div>
+
+</div>
+<div class="day green">
+ <span class="dom">24</span>ef-time-after-pentecost-sunday-23
+ <div class="meta">class-2 &middot; green &middot; Ep. Phil 3:17-21; 4:1-3 &middot; Ev. Matt 9:18-26</div>
+
+</div>
+<div class="day green">
+ <span class="dom">25</span>ef-time-after-pentecost-23-monday
+ <div class="meta">class-4 &middot; green &middot; Ep. Phil 3:17-21; 4:1-3 &middot; Ev. Matt 9:18-26</div>
+ <div class="meta">Com. sts-chrysanthus-daria</div>
+</div>
+<div class="day green">
+ <span class="dom">26</span>ef-time-after-pentecost-23-tuesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Phil 3:17-21; 4:1-3 &middot; Ev. Matt 9:18-26</div>
+ <div class="meta">Com. evaristus</div>
+</div>
+<div class="day green">
+ <span class="dom">27</span>ef-time-after-pentecost-23-wednesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Phil 3:17-21; 4:1-3 &middot; Ev. Matt 9:18-26</div>
+
+</div>
+<div class="day red">
+ <span class="dom">28</span>sts-simon-jude
+ <div class="meta">class-2 &middot; red &middot; Ep. Eph. 4:7-13. &middot; Ev. John 15:17-25</div>
+
+</div>
+<div class="day green">
+ <span class="dom">29</span>ef-time-after-pentecost-23-friday
+ <div class="meta">class-4 &middot; green &middot; Ep. Phil 3:17-21; 4:1-3 &middot; Ev. Matt 9:18-26</div>
+
+</div>
+<div class="day white">
+ <span class="dom">30</span>Officium sanctae Mariae in sabbato
+ <div class="meta">class-4 &middot; white &middot; Ep. Ecclus 24:14-16 &middot; Ev. Luke 11:27-28</div>
+
+</div>
+<div class="day white">
+ <span class="dom">31</span>ef-christ-the-king
+ <div class="meta">class-1 &middot; white &middot; Ep. Col 1:12-20. &middot; Ev. John 18:33-37</div>
+
+</div>
+<h2>November</h2>
+<div class="day white">
+ <span class="dom">1</span>all-saints
+ <div class="meta">class-1 &middot; white &middot; Ep. Apoc 7:2-12 &middot; Ev. Matt 5:1-12</div>
+
+</div>
+<div class="day black">
+ <span class="dom">2</span>commemoration-of-all-souls
+ <div class="meta">class-1 &middot; black &middot; Ep. 1 Cor. 15:51-57 &middot; Ev. John 5:25-29</div>
+
+</div>
+<div class="day green">
+ <span class="dom">3</span>ef-time-after-pentecost-24-wednesday
+ <div class="meta">class-4 &middot; green &middot; Ep. Col 1:12-20. &middot; Ev. John 18:33-37</div>
+
+</div>
+<div class="day white">
+ <span class="dom">4</span>charles-borromeo
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 44:16-27; 45:3-20 &middot; Ev. Matt 25:14-23</div>
+ <div class="meta">Com. sts-vitalis-and-agricola-martyrs</div>
+</div>
+<div class="day green">
+ <span class="dom">5</span>ef-time-after-pentecost-24-friday
+ <div class="meta">class-4 &middot; green &middot; Ep. Col 1:12-20. &middot; Ev. John 18:33-37</div>
+
+</div>
+<div class="day white">
+ <span class="dom">6</span>Officium sanctae Mariae in sabbato
+ <div class="meta">class-4 &middot; white &middot; Ep. Ecclus 24:14-16 &middot; Ev. Luke 11:27-28</div>
+
+</div>
+<div class="day green">
+ <span class="dom">7</span>ef-time-after-epiphany-sunday-5
+ <div class="meta">class-2 &middot; green &middot; Ep. Col 3:12-17 &middot; Ev. Matt 13:24-30</div>
+
+</div>
+<div class="day green">
+ <span class="dom">8</span>ef-time-after-pentecost-25-monday
+ <div class="meta">class-4 &middot; green &middot; Ep. Col 3:12-17 &middot; Ev. Matt 13:24-30</div>
+ <div class="meta">Com. four-holy-crowned-martyrs</div>
+</div>
+<div class="day white">
+ <span class="dom">9</span>dedication-of-the-archbasilica-of-our-holy-savior
+ <div class="meta">class-2 &middot; white &middot; Ep. Rev 21:2-5 &middot; Ev. Luke 19:1-10</div>
+ <div class="meta">Com. theodore</div>
+</div>
+<div class="day white">
+ <span class="dom">10</span>andrew-avellino
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 31:8-11 &middot; Ev. Luke 12:35-40</div>
+ <div class="meta">Com. sts-tryphonis-respicii-et-nymphae</div>
+</div>
+<div class="day white">
+ <span class="dom">11</span>martin-of-tours
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 44:16-27; 45:3-20 &middot; Ev. Luke 11:33-36</div>
+ <div class="meta">Com. menna</div>
+</div>
+<div class="day red">
+ <span class="dom">12</span>martin-i
+ <div class="meta">class-3 &middot; red &middot; Ep. 1 Pet 5:1-4; 5:10-11. &middot; Ev. Matt 16:13-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">13</span>didacus
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Cor 4:9-14 &middot; Ev. Luke 12:32-34</div>
+
+</div>
+<div class="day green">
+ <span class="dom">14</span>ef-time-after-epiphany-sunday-6
+ <div class="meta">class-2 &middot; green &middot; Ep. 1 Thess 1:2-10 &middot; Ev. Matt 13:31-35</div>
+
+</div>
+<div class="day white">
+ <span class="dom">15</span>albert-the-great
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+
+</div>
+<div class="day white">
+ <span class="dom">16</span>gertrude-the-great
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Cor 10:17-18; 11:1-2 &middot; Ev. Matt 25:1-13.</div>
+
+</div>
+<div class="day white">
+ <span class="dom">17</span>gregory-the-wonderworker
+ <div class="meta">class-3 &middot; white &middot; Ep. Sir 44:16-27; 45:3-20 &middot; Ev. Mark 11:22-24</div>
+
+</div>
+<div class="day white">
+ <span class="dom">18</span>dedication-of-the-basilicas-of-sts-peter-paul
+ <div class="meta">class-3 &middot; white &middot; Ep. Rev 21:2-5 &middot; Ev. Luke 19:1-10</div>
+
+</div>
+<div class="day white">
+ <span class="dom">19</span>elizabeth-of-hungary
+ <div class="meta">class-3 &middot; white &middot; Ep. Prov 31:10-31 &middot; Ev. Matt 13:44-52.</div>
+ <div class="meta">Com. pontian</div>
+</div>
+<div class="day white">
+ <span class="dom">20</span>felix-of-valois
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Cor. 4:9-14 &middot; Ev. Luke 12:32-34</div>
+
+</div>
+<div class="day green">
+ <span class="dom">21</span>ef-time-after-pentecost-sunday-24
+ <div class="meta">class-2 &middot; green &middot; Ep. Col 1:9-14 &middot; Ev. Matt 24:15-35</div>
+
+</div>
+<div class="day red">
+ <span class="dom">22</span>cecilia
+ <div class="meta">class-3 &middot; red &middot; Ep. Sir 51:13-17. &middot; Ev. Matt 25:1-13.</div>
+
+</div>
+<div class="day red">
+ <span class="dom">23</span>clement-i
+ <div class="meta">class-3 &middot; red &middot; Ep. Phil 3:17-21; 4:1-3 &middot; Ev. Matt 16:13-19</div>
+ <div class="meta">Com. felicity</div>
+</div>
+<div class="day white">
+ <span class="dom">24</span>john-of-the-cross
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+ <div class="meta">Com. chrysogonus</div>
+</div>
+<div class="day red">
+ <span class="dom">25</span>catherine-of-alexandria
+ <div class="meta">class-3 &middot; red &middot; Ep. Sir 51:1-8; 51:12 &middot; Ev. Matt 25:1-13.</div>
+
+</div>
+<div class="day white">
+ <span class="dom">26</span>sylvester
+ <div class="meta">class-3 &middot; white &middot; Ep. Ecclus 45:1-6 &middot; Ev. Matt 19:27-29.</div>
+ <div class="meta">Com. peter-of-alexandria</div>
+</div>
+<div class="day white">
+ <span class="dom">27</span>Officium sanctae Mariae in sabbato
+ <div class="meta">class-4 &middot; white &middot; Ep. Ecclus 24:14-16 &middot; Ev. Luke 11:27-28</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">28</span>ef-advent-sunday-1
+ <div class="meta">class-1 &middot; violet &middot; Ep. Rom 13:11-14 &middot; Ev. Luke 21:25-33</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">29</span>ef-advent-1-monday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Rom 13:11-14 &middot; Ev. Luke 21:25-33</div>
+ <div class="meta">Com. saturninus</div>
+</div>
+<div class="day red">
+ <span class="dom">30</span>andrew
+ <div class="meta">class-2 &middot; red &middot; Ep. Rom 10:10-18 &middot; Ev. Matt 4:18-22</div>
+ <div class="meta">Com. ef-advent-1-tuesday</div>
+</div>
+<h2>December</h2>
+<div class="day violet">
+ <span class="dom">1</span>ef-advent-1-wednesday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Rom 13:11-14 &middot; Ev. Luke 21:25-33</div>
+
+</div>
+<div class="day red">
+ <span class="dom">2</span>vivian
+ <div class="meta">class-3 &middot; red &middot; Ep. Sir 51:13-17. &middot; Ev. Matt 13:44-52.</div>
+ <div class="meta">Com. ef-advent-1-thursday</div>
+</div>
+<div class="day white">
+ <span class="dom">3</span>francis-xavier
+ <div class="meta">class-3 &middot; white &middot; Ep. Rom 10:10-18 &middot; Ev. Mark 16:15-18</div>
+ <div class="meta">Com. ef-advent-1-friday</div>
+</div>
+<div class="day white">
+ <span class="dom">4</span>peter-chrysologus
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+ <div class="meta">Com. ef-advent-1-saturday</div><div class="meta">Com. barbara</div>
+</div>
+<div class="day violet">
+ <span class="dom">5</span>ef-advent-sunday-2
+ <div class="meta">class-1 &middot; violet &middot; Ep. Rom 15:4-13 &middot; Ev. Matt 11:2-10</div>
+
+</div>
+<div class="day white">
+ <span class="dom">6</span>nicholas
+ <div class="meta">class-3 &middot; white &middot; Ep. Heb 13:7-17 &middot; Ev. Matt 25:14-23</div>
+ <div class="meta">Com. ef-advent-2-monday</div>
+</div>
+<div class="day white">
+ <span class="dom">7</span>ambrose
+ <div class="meta">class-3 &middot; white &middot; Ep. 2 Tim 4:1-8 &middot; Ev. Matt 5:13-19</div>
+ <div class="meta">Com. ef-advent-2-tuesday</div>
+</div>
+<div class="day white">
+ <span class="dom">8</span>immaculate-conception-of-the-blessed-virgin-mary
+ <div class="meta">class-1 &middot; white &middot; Ep. Prov 8:22-35 &middot; Ev. Luke 1:26-28</div>
+ <div class="meta">Com. ef-advent-2-wednesday</div>
+</div>
+<div class="day violet">
+ <span class="dom">9</span>ef-advent-2-thursday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Rom 15:4-13 &middot; Ev. Matt 11:2-10</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">10</span>ef-advent-2-friday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Rom 15:4-13 &middot; Ev. Matt 11:2-10</div>
+ <div class="meta">Com. melchiades</div>
+</div>
+<div class="day white">
+ <span class="dom">11</span>damasus-i
+ <div class="meta">class-3 &middot; white &middot; Ep. 1 Pet 5:1-4; 5:10-11. &middot; Ev. Matt 16:13-19</div>
+ <div class="meta">Com. ef-advent-2-saturday</div>
+</div>
+<div class="day rose">
+ <span class="dom">12</span>ef-advent-sunday-3
+ <div class="meta">class-1 &middot; rose &middot; Ep. Phil 4:4-7 &middot; Ev. John 1:19-28</div>
+
+</div>
+<div class="day red">
+ <span class="dom">13</span>lucy
+ <div class="meta">class-3 &middot; red &middot; Ep. 2 Cor 10:17-18; 11:1-2 &middot; Ev. Matt 13:44-52.</div>
+ <div class="meta">Com. ef-advent-3-monday</div>
+</div>
+<div class="day violet">
+ <span class="dom">14</span>ef-advent-3-tuesday
+ <div class="meta">class-3 &middot; violet &middot; Ep. Phil 4:4-7 &middot; Ev. John 1:19-28</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">15</span>ef-advent-ember-wed
+ <div class="meta">class-2 &middot; violet &middot; Ep. Isa 7:10-15 &middot; Ev. Luke 1:26-38</div>
+
+</div>
+<div class="day red">
+ <span class="dom">16</span>eusebius
+ <div class="meta">class-3 &middot; red &middot; Ep. 2 Cor. 1:3-7 &middot; Ev. Matt 16:24-27.</div>
+ <div class="meta">Com. ef-advent-3-thursday</div>
+</div>
+<div class="day violet">
+ <span class="dom">17</span>ef-advent-ember-fri
+ <div class="meta">class-2 &middot; violet &middot; Ep. Isa 11:1-5 &middot; Ev. Luke 1:39-47</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">18</span>ef-advent-ember-sat
+ <div class="meta">class-2 &middot; violet &middot; Ep. 2 Thess 2:1-8 &middot; Ev. Luke 3:1-6</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">19</span>ef-advent-sunday-4
+ <div class="meta">class-1 &middot; violet &middot; Ep. 1 Cor. 4:1-5 &middot; Ev. Luke 3:1-6</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">20</span>ef-advent-4-monday
+ <div class="meta">class-2 &middot; violet &middot; Ep. 1 Cor. 4:1-5 &middot; Ev. Luke 3:1-6</div>
+
+</div>
+<div class="day red">
+ <span class="dom">21</span>thomas
+ <div class="meta">class-2 &middot; red &middot; Ep. Eph 2:19-22 &middot; Ev. John 20:24-29</div>
+ <div class="meta">Com. ef-advent-4-tuesday</div>
+</div>
+<div class="day violet">
+ <span class="dom">22</span>ef-advent-4-wednesday
+ <div class="meta">class-2 &middot; violet &middot; Ep. 1 Cor. 4:1-5 &middot; Ev. Luke 3:1-6</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">23</span>ef-advent-4-thursday
+ <div class="meta">class-2 &middot; violet &middot; Ep. 1 Cor. 4:1-5 &middot; Ev. Luke 3:1-6</div>
+
+</div>
+<div class="day violet">
+ <span class="dom">24</span>ef-nativity-vigil
+ <div class="meta">class-1 &middot; violet &middot; Ep. Rom 1:1-6 &middot; Ev. Matt 1:18-21</div>
+
+</div>
+<div class="day white">
+ <span class="dom">25</span>ef-nativity
+ <div class="meta">class-1 &middot; white &middot; Ep. Heb 1:1-12 &middot; Ev. John 1:1-14</div>
+
+</div>
+<div class="day white">
+ <span class="dom">26</span>ef-christmas-sunday-0
+ <div class="meta">class-2 &middot; white &middot; Ep. Gal 4:1-7 &middot; Ev. Luke 2:33-40</div>
+ <div class="meta">Com. stephen</div>
+</div>
+<div class="day white">
+ <span class="dom">27</span>john-the-evangelist
+ <div class="meta">class-2 &middot; white &middot; Ep. Ecclus 15:1-6 &middot; Ev. John 21:19-24</div>
+ <div class="meta">Com. ef-nativity-octave-day-3</div>
+</div>
+<div class="day red">
+ <span class="dom">28</span>holy-innocents
+ <div class="meta">class-2 &middot; red &middot; Ep. Apoc 14:1-5 &middot; Ev. Matt 2:13-18</div>
+ <div class="meta">Com. ef-nativity-octave-day-4</div>
+</div>
+<div class="day white">
+ <span class="dom">29</span>ef-nativity-octave-day-5
+ <div class="meta">class-2 &middot; white &middot; Ep. Titus 3:4-7 &middot; Ev. Luke 2:15-20</div>
+ <div class="meta">Com. thomas-becket</div>
+</div>
+<div class="day white">
+ <span class="dom">30</span>ef-nativity-octave-day-6
+ <div class="meta">class-2 &middot; white &middot; Ep. Titus 3:4-7 &middot; Ev. Luke 2:15-20</div>
+
+</div>
+<div class="day white">
+ <span class="dom">31</span>ef-nativity-octave-day-7
+ <div class="meta">class-2 &middot; white &middot; Ep. Titus 3:4-7 &middot; Ev. Luke 2:15-20</div>
+ <div class="meta">Com. silvester</div>
+</div>
+
+</body></html>
diff --git a/test/golden/ordo-2027.md b/test/golden/ordo-2027.md
new file mode 100644
index 0000000..4980cb6
--- /dev/null
+++ b/test/golden/ordo-2027.md
@@ -0,0 +1,2122 @@
+<!-- colitur ordo booklet -- Markdown. flavour: none -->
+<!-- Markdown's own metacharacters (*, _, `, [, ...) are context-dependent,
+ so this template's flavour deliberately does NOT escape interpolated
+ values. A feast name containing `*` or `_` will render as emphasis.
+ That is a documented limitation, not a bug to fix. -->
+<!-- Day label falls back to the slug when the day carries no Latin name
+ (most temporal days, and most sanctoral entries, which are Latin-less
+ in the shipped data) -- see ordo.tex's own comment for why the fallback
+ is written as a name-section wrapping a plain var and its inverse,
+ rather than a single dotted lookup and its inverse. -->
+# Ordo 2027 · ef
+
+
+## Ianuarius
+
+
+**1** ef-circumcision
+`class-1` · white · Ep. Titus 2:11-15 · Ev. Luke 2:21
+
+
+
+**2** Officium sanctae Mariae in sabbato
+`class-4` · white · Ep. Titus 3:4-7 · Ev. Luke 2:15-20
+
+
+
+**3** Sanctissimi Nominis Iesu
+`class-2` · white · Ep. Acts 4:8-12 · Ev. Luke 2:21
+
+
+
+**4** ef-christmas-1-monday
+`class-4` · white · Ep. Titus 2:11-15 · Ev. Luke 2:21
+
+
+
+**5** ef-christmas-1-tuesday
+`class-4` · white · Ep. Titus 2:11-15 · Ev. Luke 2:21
+
+- Com. telesphorus-pope-and-martyr
+
+
+
+**6** ef-epiphany
+`class-1` · white · Ep. Isa 60:1-6 · Ev. Matt 2:1-12
+
+
+
+**7** ef-christmas-2-thursday
+`class-4` · white · Ep. Isa 60:1-6 · Ev. Matt 2:1-12
+
+
+
+**8** ef-christmas-2-friday
+`class-4` · white · Ep. Isa 60:1-6 · Ev. Matt 2:1-12
+
+
+
+**9** Officium sanctae Mariae in sabbato
+`class-4` · white · Ep. Titus 3:4-7 · Ev. Luke 2:15-20
+
+
+
+**10** Sanctae Familiae Iesu, Mariae, Ioseph
+`class-2` · white · Ep. Col 3:12-17 · Ev. Luke 2:42-52
+
+
+
+**11** ef-time-after-epiphany-1-monday
+`class-4` · white · Ep. Rom 12:1-5 · Ev. Luke 2:42-52
+
+- Com. hyginus-pope-and-martyr
+
+
+
+**12** ef-time-after-epiphany-1-tuesday
+`class-4` · white · Ep. Rom 12:1-5 · Ev. Luke 2:42-52
+
+
+
+**13** commemoration-of-the-baptism-of-the-lord
+`class-2` · white · Ep. Isa 60:1-6 · Ev. John 1:29-34
+
+
+
+**14** hilary
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+- Com. felicis
+
+
+
+**15** paul-the-first-hermit
+`class-3` · white · Ep. Phil 3:7-12 · Ev. Matt 11:25-30
+
+- Com. maur-abbot
+
+
+
+**16** marcellus-i
+`class-3` · red · Ep. 1 Pet 5:1-4; 5:10-11. · Ev. Matt 16:13-19
+
+
+
+**17** ef-time-after-epiphany-sunday-2
+`class-2` · green · Ep. Rom 12:6-16 · Ev. John 2:1-11
+
+
+
+**18** ef-time-after-epiphany-2-monday
+`class-4` · green · Ep. Rom 12:6-16 · Ev. John 2:1-11
+
+- Com. prisca
+
+
+
+**19** ef-time-after-epiphany-2-tuesday
+`class-4` · green · Ep. Rom 12:6-16 · Ev. John 2:1-11
+
+- Com. canute-martyr
+
+- Com. sts-marius-martha-audifax-abachum
+
+
+
+**20** sts-fabian-sebastian
+`class-3` · red · Ep. Heb 11:33-39 · Ev. Luke 6:17-23
+
+
+
+**21** agnes
+`class-3` · red · Ep. Sir 51:1-8; 51:12 · Ev. Matt 25:1-13.
+
+
+
+**22** sts-vincent-anastasius
+`class-3` · red · Ep. Wis 3:1-8 · Ev. Luke 21:9-19
+
+
+
+**23** raymond-of-pe-afort
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Luke 12:35-40
+
+- Com. emerentiana
+
+
+
+**24** ef-septuagesima-sunday-1
+`class-2` · violet · Ep. 1 Cor. 9:24-27; 10:1-5 · Ev. Matt 20:1-16
+
+
+
+**25** conversion-of-st-paul
+`class-3` · white · Ep. Acts 9:1-22 · Ev. Matt 19:27-29.
+
+- Com. peter
+
+
+
+**26** polycarp
+`class-3` · red · Ep. 1 John 3:10-16 · Ev. Matt 10:26-32.
+
+
+
+**27** john-chrysostom
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+
+
+**28** peter-nolasco
+`class-3` · white · Ep. 1 Cor. 4:9-14 · Ev. Luke 12:32-34
+
+- Com. agnes-secundo
+
+
+
+**29** francis-de-sales
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+
+
+**30** martina
+`class-3` · red · Ep. Sir 51:1-8; 51:12 · Ev. Matt 25:1-13.
+
+
+
+**31** ef-septuagesima-sunday-2
+`class-2` · violet · Ep. 2 Cor. 11:19-33; 12:1-9 · Ev. Luke 8:4-15
+
+
+
+## Februarius
+
+
+**1** ignatius-of-antioch
+`class-3` · red · Ep. Rom 8:35-39 · Ev. John 12:24-26
+
+
+
+**2** purification-of-the-blessed-virgin-mary
+`class-2` · white · Ep. Mal 3:1-4 · Ev. Luke 2:22-32
+
+
+
+**3** ef-septuagesima-2-wednesday
+`class-4` · violet · Ep. 2 Cor. 11:19-33; 12:1-9 · Ev. Luke 8:4-15
+
+- Com. blaise
+
+
+
+**4** andrew-corsini
+`class-3` · white · Ep. Sir 44:16-27; 45:3-20 · Ev. Matt 25:14-23
+
+
+
+**5** agatha
+`class-3` · red · Ep. 1 Cor. 1:26-31 · Ev. Matt 19:3-12.
+
+
+
+**6** titus
+`class-3` · white · Ep. Sir 44:16-27; 45:3-20 · Ev. Luke 10:1-9
+
+- Com. dorothy
+
+
+
+**7** ef-septuagesima-sunday-3
+`class-2` · violet · Ep. 1 Cor. 13:1-13 · Ev. Luke 18:31-43
+
+
+
+**8** john-of-matha
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Luke 12:35-40
+
+
+
+**9** cyril-of-alexandria
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+- Com. appollonia
+
+
+
+**10** ef-ash-wednesday
+`class-1` · violet · Ep. Joel 2:12-19 · Ev. Matt 6:16-21
+
+
+
+**11** ef-lent-after-ashes-thursday
+`class-3` · violet · Ep. Isa 38:1-6 · Ev. Matt 8:5-13
+
+- Com. our-lady-of-lourdes
+
+
+
+**12** ef-lent-after-ashes-friday
+`class-3` · violet · Ep. Isa 58:1-9 · Ev. Matt 5:43-48; 6:1-4
+
+- Com. seven-holy-servite-founders
+
+
+
+**13** ef-lent-after-ashes-saturday
+`class-3` · violet · Ep. Isa 58:9-14 · Ev. Mark 6:47-56
+
+
+
+**14** ef-lent-sunday-1
+`class-1` · violet · Ep. 2 Cor. 6:1-10 · Ev. Matt 4:1-11
+
+
+
+**15** ef-lent-1-monday
+`class-3` · violet · Ep. Ezech 34:11-16 · Ev. Matt 25:31-46
+
+- Com. sts-faustinus-jovita
+
+
+
+**16** ef-lent-1-tuesday
+`class-3` · violet · Ep. Isa 55:6-11 · Ev. Matt 21:10-17
+
+
+
+**17** ef-lent-ember-wed
+`class-2` · violet · Ep. 3 Kgs. 19:3-8 · Ev. Matt 12:38-50
+
+
+
+**18** ef-lent-1-thursday
+`class-3` · violet · Ep. Ezech 18:1-9 · Ev. Matt 15:21-28
+
+- Com. simeon
+
+
+
+**19** ef-lent-ember-fri
+`class-2` · violet · Ep. Ezech 18:20-28 · Ev. John 5:1-15
+
+
+
+**20** ef-lent-ember-sat
+`class-2` · violet · Ep. 1 Thess. 5:14-23 · Ev. Matt 17:1-9
+
+
+
+**21** ef-lent-sunday-2
+`class-1` · violet · Ep. 1 Thess. 4:1-7 · Ev. Matt 17:1-9
+
+
+
+**22** chair-of-st-peter
+`class-2` · white · Ep. 1 Pet 1:1-7 · Ev. Matt 16:13-19
+
+- Com. ef-lent-2-monday
+
+- Com. paul
+
+
+
+**23** ef-lent-2-tuesday
+`class-3` · violet · Ep. 3 Kings 17:8-16 · Ev. Matt 23:1-12
+
+- Com. peter-damien
+
+
+
+**24** matthias
+`class-2` · red · Ep. Acts 1:15-26 · Ev. Matt 11:25-30
+
+- Com. ef-lent-2-wednesday
+
+
+
+**25** ef-lent-2-thursday
+`class-3` · violet · Ep. Jer 17:5-10 · Ev. Luke 16:19-31
+
+
+
+**26** ef-lent-2-friday
+`class-3` · violet · Ep. Gen 37:6-22 · Ev. Matt 21:33-46
+
+
+
+**27** ef-lent-2-saturday
+`class-3` · violet · Ep. Gen 27:6-40 · Ev. Luke 15:11-32
+
+- Com. gabriel-of-our-lady-of-sorrows
+
+
+
+**28** ef-lent-sunday-3
+`class-1` · violet · Ep. Eph 5:1-9 · Ev. Luke 11:14-28
+
+
+
+## Martius
+
+
+**1** ef-lent-3-monday
+`class-3` · violet · Ep. 4 Kings 5:1-15 · Ev. Luke 4:23-30
+
+
+
+**2** ef-lent-3-tuesday
+`class-3` · violet · Ep. 4 Kings 4:1-7 · Ev. Matt 18:15-22
+
+
+
+**3** ef-lent-3-wednesday
+`class-3` · violet · Ep. Ex 20:12-24 · Ev. Matt 15:1-20
+
+
+
+**4** ef-lent-3-thursday
+`class-3` · violet · Ep. Jer 7:1-7 · Ev. Luke 4:38-44.
+
+- Com. casimir
+
+- Com. lucius
+
+
+
+**5** ef-lent-3-friday
+`class-3` · violet · Ep. Num 20:1, 3; 6-13. · Ev. John 4:5-42
+
+
+
+**6** ef-lent-3-saturday
+`class-3` · violet · Ep. Dan 13:1-9, 15-17, 19-30, 33-62. · Ev. John 8:1-11
+
+- Com. sts-felicitas-perpetua
+
+
+
+**7** ef-lent-sunday-4
+`class-1` · rose · Ep. Gal 4:22-31 · Ev. John 6:1-15
+
+
+
+**8** ef-lent-4-monday
+`class-3` · violet · Ep. 3 Kings 3:16-28 · Ev. John 2:13-25
+
+- Com. john-of-god
+
+
+
+**9** ef-lent-4-tuesday
+`class-3` · violet · Ep. Ex 32:7-14 · Ev. John 7:14-31
+
+- Com. frances-rome
+
+
+
+**10** ef-lent-4-wednesday
+`class-3` · violet · Ep. Isa. 1:16-19 · Ev. John 9:1-38
+
+- Com. forty-holy-martyrs-of-sebaste
+
+
+
+**11** ef-lent-4-thursday
+`class-3` · violet · Ep. 4 Kings 4:25-38 · Ev. Luke 7:11-16
+
+
+
+**12** ef-lent-4-friday
+`class-3` · violet · Ep. 3 Kings 17:17-24 · Ev. John 11:1-45
+
+- Com. gregory-the-great
+
+
+
+**13** ef-lent-4-saturday
+`class-3` · violet · Ep. Isa 49:8-15 · Ev. John 8:12-20
+
+
+
+**14** ef-passion-sunday
+`class-1` · violet · Ep. Heb 9:11-15. · Ev. John 8:46-59.
+
+
+
+**15** ef-passiontide-1-monday
+`class-3` · violet · Ep. Jonas 3:1-10 · Ev. John 7:32-39
+
+
+
+**16** ef-passiontide-1-tuesday
+`class-3` · violet · Ep. Dan 14:27, 28-42 · Ev. John 7:1-13
+
+
+
+**17** ef-passiontide-1-wednesday
+`class-3` · violet · Ep. Lev 19:1-2, 11-19, 25 · Ev. John 10:22-38
+
+- Com. patrick
+
+
+
+**18** ef-passiontide-1-thursday
+`class-3` · violet · Ep. Dan 3:25, 34-45. · Ev. Luke 7:36-50
+
+- Com. cyril-of-jerusalem
+
+
+
+**19** joseph-spouse-of-the-bl-virgin-mary
+`class-1` · white · Ep. Ecclus 45:1-6 · Ev. Matt 1:18-21
+
+- Com. ef-passiontide-1-friday
+
+
+
+**20** ef-passiontide-1-saturday
+`class-3` · violet · Ep. Jer 18:18-23 · Ev. John 12:10-36
+
+
+
+**21** ef-palm-sunday
+`class-1` · violet · Ep. Phil 2:5-11 · Ev. Matt. 26:36-75; 27:1-60.
+
+
+
+**22** ef-passiontide-2-monday
+`class-1` · violet · Ep. Isa 50:5-10 · Ev. John 12:1-9
+
+
+
+**23** ef-passiontide-2-tuesday
+`class-1` · violet · Ep. Jer 11:18-20 · Ev. Mark 14:32-72; 15, 1-46
+
+
+
+**24** ef-passiontide-2-wednesday
+`class-1` · violet · Ep. Isa 53:1-12 · Ev. Luke 22:39-71; 23:1-53
+
+
+
+**25** Feria V in Cena Domini
+`class-1` · white · Ep. 1 Cor 11:20-32 · Ev. John 13:1-15
+
+
+
+**26** Feria VI in Passione et Morte Domini
+`class-1` · black · Ep. Ex 12:1-11 · Ev. John 18:1-40; 19:1-42
+
+
+
+**27** Sabbato sancto
+`class-1` · violet · Ep. Col 3:1-4 · Ev. Matt 28:1-7
+
+
+
+**28** ef-easter-sunday
+`class-1` · white · Ep. 1 Cor 5:7-8 · Ev. Mark 16:1-7
+
+
+
+**29** ef-easter-1-monday
+`class-1` · white · Ep. Acts 10:37-43. · Ev. Luke 24:13-35
+
+
+
+**30** ef-easter-1-tuesday
+`class-1` · white · Ep. Acts 13:16; 13:26-33 · Ev. Luke 24:36-47
+
+
+
+**31** ef-easter-1-wednesday
+`class-1` · white · Ep. Acts 3:13-15; 3:17-19 · Ev. John 21:1-14
+
+
+
+## Aprilis
+
+
+**1** ef-easter-1-thursday
+`class-1` · white · Ep. Acts 8:26-40 · Ev. John 20:11-18
+
+
+
+**2** ef-easter-1-friday
+`class-1` · white · Ep. 1 Pet 3:18-22 · Ev. Matt 28:16-20
+
+
+
+**3** ef-easter-1-saturday
+`class-1` · white · Ep. 1 Pet 2:1-10 · Ev. John 20:1-9
+
+
+
+**4** ef-low-sunday
+`class-1` · white · Ep. 1 John 5:4-10 · Ev. John 20:19-31
+
+
+
+**5** annunciation-of-the-blessed-virgin-mary
+`class-1` · white · Ep. Isa 7:10-15 · Ev. Luke 1:26-38
+
+
+
+**6** ef-easter-2-tuesday
+`class-4` · white · Ep. 1 John 5:4-10 · Ev. John 20:19-31
+
+
+
+**7** ef-easter-2-wednesday
+`class-4` · white · Ep. 1 John 5:4-10 · Ev. John 20:19-31
+
+
+
+**8** ef-easter-2-thursday
+`class-4` · white · Ep. 1 John 5:4-10 · Ev. John 20:19-31
+
+
+
+**9** ef-easter-2-friday
+`class-4` · white · Ep. 1 John 5:4-10 · Ev. John 20:19-31
+
+
+
+**10** Officium sanctae Mariae in sabbato
+`class-4` · white · Ep. Ecclus 24:14-16 · Ev. John 19:25-27
+
+
+
+**11** ef-easter-sunday-3
+`class-2` · white · Ep. 1 Pet 2:21-25 · Ev. John 10:11-16
+
+
+
+**12** ef-easter-3-monday
+`class-4` · white · Ep. 1 Pet 2:21-25 · Ev. John 10:11-16
+
+
+
+**13** hermenegild
+`class-3` · red · Ep. Wis 10:10-14 · Ev. Luke 14:26-33.
+
+
+
+**14** justin
+`class-3` · red · Ep. 1 Cor 1:18-25; 1:30; · Ev. Luke 12:2-8
+
+- Com. sts-tiburtius-valerian-et-maximus-martyrs
+
+
+
+**15** ef-easter-3-thursday
+`class-4` · white · Ep. 1 Pet 2:21-25 · Ev. John 10:11-16
+
+
+
+**16** ef-easter-3-friday
+`class-4` · white · Ep. 1 Pet 2:21-25 · Ev. John 10:11-16
+
+
+
+**17** Officium sanctae Mariae in sabbato
+`class-4` · white · Ep. Ecclus 24:14-16 · Ev. John 19:25-27
+
+- Com. anicetus
+
+
+
+**18** ef-easter-sunday-4
+`class-2` · white · Ep. 1 Pet 2:11-19 · Ev. John 16:16-22
+
+
+
+**19** ef-easter-4-monday
+`class-4` · white · Ep. 1 Pet 2:11-19 · Ev. John 16:16-22
+
+
+
+**20** ef-easter-4-tuesday
+`class-4` · white · Ep. 1 Pet 2:11-19 · Ev. John 16:16-22
+
+
+
+**21** anselm
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+
+
+**22** sts-soter-caius
+`class-3` · red · Ep. 1 Pet 5:1-4; 5:10-11. · Ev. Matt 16:13-19
+
+
+
+**23** ef-easter-4-friday
+`class-4` · white · Ep. 1 Pet 2:11-19 · Ev. John 16:16-22
+
+- Com. george
+
+
+
+**24** fidelis-of-sigmaringen
+`class-3` · red · Ep. Wis 5:1-5 · Ev. John 15:1-7
+
+
+
+**25** ef-easter-sunday-5
+`class-2` · white · Ep. Jas 1:17-21 · Ev. John 16:5-14
+
+- Com. major-litanies
+
+
+
+**26** sts-cletus-marcellinus
+`class-3` · red · Ep. 1 Pet 5:1-4; 5:10-11. · Ev. Matt 16:13-19
+
+
+
+**27** peter-canisius
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+
+
+**28** paul-of-the-cross
+`class-3` · white · Ep. 1 Cor 1:17-25. · Ev. Luke 10:1-9
+
+
+
+**29** peter-of-verona
+`class-3` · red · Ep. 2 Tim. 2:8-10; 3:10-12. · Ev. Matt 10:34-42
+
+
+
+**30** catherine-of-siena
+`class-3` · white · Ep. 2 Cor 10:17-18; 11:1-2 · Ev. Matt 25:1-13.
+
+
+
+## Maius
+
+
+**1** joseph-the-workman
+`class-1` · white · Ep. Col. 3:14-15, 17, 23-24 · Ev. Matt 13:54-58
+
+
+
+**2** ef-easter-sunday-6
+`class-2` · white · Ep. Jas 1:22-27 · Ev. John 16:23-30
+
+
+
+**3** ef-rogation-monday
+`class-4` · violet · Ep. Jas 1:22-27 · Ev. John 16:23-30
+
+- Com. sts-alexander-companions
+
+
+
+**4** monica
+`class-3` · white · Ep. 1 Tim. 5:3-10. · Ev. Luke 7:11-16
+
+
+
+**5** ef-ascension-vigil
+`class-2` · white · Ep. Eph. 4:7-13. · Ev. John 17:1-11.
+
+- Com. pius-v
+
+
+
+**6** ef-ascension
+`class-1` · white · Ep. Acts 1:1-11 · Ev. Mark 16:14-20
+
+
+
+**7** stanislaus
+`class-3` · red · Ep. Wis 5:1-5 · Ev. John 15:1-7
+
+
+
+**8** Officium sanctae Mariae in sabbato
+`class-4` · white · Ep. Ecclus 24:14-16 · Ev. John 19:25-27
+
+
+
+**9** ef-easter-sunday-7
+`class-2` · white · Ep. 1 Pet 4:7-11. · Ev. John 15:26-27; 16:1-4.
+
+
+
+**10** antoninus
+`class-3` · white · Ep. Sir 44:16-27; 45:3-20 · Ev. Matt 25:14-23
+
+- Com. gordiano-and-epimacho
+
+
+
+**11** sts-philip-james
+`class-2` · red · Ep. Wis. 5:1-5 · Ev. John 14:1-13
+
+
+
+**12** sts-nereus-achilleus-domitilla-pancras
+`class-3` · red · Ep. Wis. 5:1-5 · Ev. John 4:46-53
+
+
+
+**13** robert-bellarmine
+`class-3` · white · Ep. Wis 7:7-14. · Ev. Matt 5:13-19
+
+
+
+**14** ef-easter-7-friday
+`class-4` · white · Ep. 1 Pet 4:7-11. · Ev. John 15:26-27; 16:1-4.
+
+- Com. boniface-martyr
+
+
+
+**15** ef-pentecost-vigil
+`class-1` · red · Ep. Acts 19:1-8. · Ev. John 14:15-21.
+
+
+
+**16** ef-pentecost
+`class-1` · red · Ep. Acts 2:1-11. · Ev. John 14:23-31.
+
+
+
+**17** ef-easter-8-monday
+`class-1` · red · Ep. Acts 10:34, 42-48 · Ev. John 3:16-21
+
+
+
+**18** ef-easter-8-tuesday
+`class-1` · red · Ep. Acts 8:14-17. · Ev. John 10:1-10.
+
+
+
+**19** ef-pentecost-ember-wed
+`class-1` · red · Ep. Acts 5:12-16 · Ev. John 6:44-52.
+
+
+
+**20** ef-easter-8-thursday
+`class-1` · red · Ep. Acts 8:5-8 · Ev. Luke 9:1-6
+
+
+
+**21** ef-pentecost-ember-fri
+`class-1` · red · Ep. Joel 2:23-24; 26-27 · Ev. Luke 5:17-26
+
+
+
+**22** ef-pentecost-ember-sat
+`class-1` · red · Ep. Rom 5:1-5. · Ev. Luke 4:38-44.
+
+
+
+**23** ef-trinity
+`class-1` · white · Ep. Rom 11:33-36. · Ev. Matt 28:18-20
+
+
+
+**24** ef-time-after-pentecost-1-monday
+`class-4` · green · Ep. 1 John 4:8-21 · Ev. Luke 6:36-42
+
+
+
+**25** gregory-vii
+`class-3` · white · Ep. 1 Pet 5:1-4; 5:10-11. · Ev. Matt 16:13-19
+
+- Com. urban-pope-and-martyr
+
+
+
+**26** philip-neri
+`class-3` · white · Ep. Wis 7:7-14. · Ev. Luke 12:35-40
+
+- Com. eleutherius
+
+
+
+**27** ef-corpus-christi
+`class-1` · white · Ep. 1 Cor 11:23-29 · Ev. John 6:56-59
+
+
+
+**28** augustine-of-canterbury
+`class-3` · white · Ep. 1 Thess 2:2-9 · Ev. Luke 10:1-9
+
+
+
+**29** mary-magdalene-de-pazzi
+`class-3` · white · Ep. 2 Cor 10:17-18; 11:1-2 · Ev. Matt 25:1-13.
+
+
+
+**30** ef-time-after-pentecost-sunday-2
+`class-2` · green · Ep. 1 John 3:13-18. · Ev. Luke 14:16-24.
+
+
+
+**31** queenship-of-the-blessed-virgin-mary
+`class-2` · white · Ep. Eccli 24:5; 14:7; 14:9-11; 24:30-31 · Ev. Luke 1:26-33
+
+- Com. petronilla
+
+
+
+## Iunius
+
+
+**1** angela-merici
+`class-3` · white · Ep. 2 Cor 10:17-18; 11:1-2 · Ev. Matt 25:1-13.
+
+
+
+**2** ef-time-after-pentecost-2-wednesday
+`class-4` · green · Ep. 1 John 3:13-18. · Ev. Luke 14:16-24.
+
+- Com. sts-marcellinus-peter-erasmus
+
+
+
+**3** ef-time-after-pentecost-2-thursday
+`class-4` · green · Ep. 1 John 3:13-18. · Ev. Luke 14:16-24.
+
+
+
+**4** ef-sacred-heart
+`class-1` · white · Ep. Eph 3:8-12, 14-19 · Ev. John 19:31-37
+
+
+
+**5** boniface
+`class-3` · red · Ep. Ecclus 44:1-15 · Ev. Matt 5:1-12
+
+
+
+**6** ef-time-after-pentecost-sunday-3
+`class-2` · green · Ep. 1 Pet. 5:6-11 · Ev. Luke 15:1-10
+
+
+
+**7** ef-time-after-pentecost-3-monday
+`class-4` · green · Ep. 1 Pet. 5:6-11 · Ev. Luke 15:1-10
+
+
+
+**8** ef-time-after-pentecost-3-tuesday
+`class-4` · green · Ep. 1 Pet. 5:6-11 · Ev. Luke 15:1-10
+
+
+
+**9** ef-time-after-pentecost-3-wednesday
+`class-4` · green · Ep. 1 Pet. 5:6-11 · Ev. Luke 15:1-10
+
+- Com. sts-primus-felicianus
+
+
+
+**10** margaret-of-scotland
+`class-3` · white · Ep. Prov 31:10-31 · Ev. Matt 13:44-52.
+
+
+
+**11** barnabas
+`class-3` · red · Ep. Acts 11:21-26; 13:1-3 · Ev. Matt 10:16-22
+
+
+
+**12** john-of-san-fecundo
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Luke 12:35-40
+
+- Com. basilidus
+
+
+
+**13** ef-time-after-pentecost-sunday-4
+`class-2` · green · Ep. Rom 8:18-23 · Ev. Luke 5:1-11
+
+
+
+**14** basil-the-great
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Luke 14:26-35
+
+
+
+**15** ef-time-after-pentecost-4-tuesday
+`class-4` · green · Ep. Rom 8:18-23 · Ev. Luke 5:1-11
+
+- Com. vitus
+
+
+
+**16** ef-time-after-pentecost-4-wednesday
+`class-4` · green · Ep. Rom 8:18-23 · Ev. Luke 5:1-11
+
+
+
+**17** gregory-barbarigo
+`class-3` · white · Ep. Sir 44:16-27; 45:3-20 · Ev. Matt 25:14-23
+
+
+
+**18** ephrem-of-syria
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+- Com. marcus-and-marcellianus
+
+
+
+**19** julia-of-falconieri
+`class-3` · white · Ep. 2 Cor 10:17-18; 11:1-2 · Ev. Matt 25:1-13.
+
+- Com. sts-gervasius-and-protasius
+
+
+
+**20** ef-time-after-pentecost-sunday-5
+`class-2` · green · Ep. 1 Pet 3:8-15. · Ev. Matt 5:20-24.
+
+
+
+**21** aloysius-gongzaga
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Matt 22:29-40
+
+
+
+**22** paulinus-of-nola
+`class-3` · white · Ep. 2 Cor. 8:9-15 · Ev. Luke 12:32-34
+
+
+
+**23** vigil-of-the-nativity-of-st-john-the-baptist
+`class-2` · violet · Ep. Jer 1:4-10 · Ev. Luke 1:5-17
+
+
+
+**24** nativity-of-st-john-the-baptist
+`class-1` · white · Ep. Isa 49:1-3, 5-7. · Ev. Luke 1:57-68
+
+
+
+**25** william
+`class-3` · white · Ep. Ecclus 45:1-6 · Ev. Matt 19:27-29.
+
+
+
+**26** sts-john-paul
+`class-3` · red · Ep. Eccli 44:10-15 · Ev. Luke 12:1-8
+
+
+
+**27** ef-time-after-pentecost-sunday-6
+`class-2` · green · Ep. Rom 6:3-11. · Ev. Mark 8:1-9
+
+
+
+**28** vigil-of-sts-peter-paul
+`class-2` · violet · Ep. Acts 3:1-10 · Ev. John 21:15-19
+
+
+
+**29** sts-peter-paul
+`class-1` · red · Ep. Acts 12:1-11 · Ev. Matt 16:13-19
+
+
+
+**30** in-commemoratione-sancti-pauli-apostoli
+`class-3` · red · Ep. Gal 1:11-20 · Ev. Matt 10:16-22
+
+- Com. commemoration-of-st-peter
+
+
+
+## Iulius
+
+
+**1** precious-blood-of-our-lord-jesus-christ
+`class-1` · red · Ep. Heb 9:11-15. · Ev. John 19:30-35
+
+
+
+**2** visitation-of-the-blessed-virgin-mary
+`class-2` · white · Ep. Song 2:8-14 · Ev. Luke 1:39-47
+
+- Com. processus-and-martinian
+
+
+
+**3** irenaeus
+`class-3` · red · Ep. 2 Tim. 3:14-17; 4:1-5 · Ev. Matt 10:28-33
+
+
+
+**4** ef-time-after-pentecost-sunday-7
+`class-2` · green · Ep. Rom 6:19-23 · Ev. Matt 7:15-21
+
+
+
+**5** anthony-mary-zaccariah
+`class-3` · white · Ep. 1 Tim. 4:8-16 · Ev. Mark 10:15-21
+
+
+
+**6** ef-time-after-pentecost-7-tuesday
+`class-4` · green · Ep. Rom 6:19-23 · Ev. Matt 7:15-21
+
+
+
+**7** sts-cyril-methodius
+`class-3` · white · Ep. Heb 7:23-27 · Ev. Luke 10:1-9
+
+
+
+**8** elizabeth-of-portugal
+`class-3` · white · Ep. Prov 31:10-31 · Ev. Matt 13:44-52.
+
+
+
+**9** ef-time-after-pentecost-7-friday
+`class-4` · green · Ep. Rom 6:19-23 · Ev. Matt 7:15-21
+
+
+
+**10** seven-holy-brothers-and-sts-rufina-secunda
+`class-3` · red · Ep. Prov 31:10-31 · Ev. Matt 12:46-50
+
+
+
+**11** ef-time-after-pentecost-sunday-8
+`class-2` · green · Ep. Rom 8:12-17 · Ev. Luke 16:1-9
+
+
+
+**12** john-gualbert
+`class-3` · white · Ep. Ecclus 45:1-6 · Ev. Matt 5:43-48
+
+- Com. naboris-et-felicis
+
+
+
+**13** ef-time-after-pentecost-8-tuesday
+`class-4` · green · Ep. Rom 8:12-17 · Ev. Luke 16:1-9
+
+
+
+**14** bonaventure
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+
+
+**15** henry-the-emperor
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Luke 12:35-40
+
+
+
+**16** ef-time-after-pentecost-8-friday
+`class-4` · green · Ep. Rom 8:12-17 · Ev. Luke 16:1-9
+
+- Com. our-lady-of-mt-carmel
+
+
+
+**17** Officium sanctae Mariae in sabbato
+`class-4` · white · Ep. Ecclus 24:14-16 · Ev. Luke 11:27-28
+
+- Com. alexis
+
+
+
+**18** ef-time-after-pentecost-sunday-9
+`class-2` · green · Ep. 1 Cor. 10:6-13 · Ev. Luke 19:41-47
+
+
+
+**19** vincent-de-paul
+`class-3` · white · Ep. 1 Cor. 4:9-14 · Ev. Luke 10:1-9
+
+
+
+**20** jerome-emiliani
+`class-3` · white · Ep. Isa 58:7-11 · Ev. Matt 19:13-21
+
+- Com. margaret
+
+
+
+**21** laurence-of-brindisi
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+- Com. praxedis-virginis
+
+
+
+**22** mary-magdalene
+`class-3` · white · Ep. Song 3:2-5; 8:6-7 · Ev. Luke 7:36-50
+
+
+
+**23** apollinaris
+`class-3` · red · Ep. 1 Pet. 5:1-11 · Ev. Luke 22:24-30
+
+- Com. liborii
+
+
+
+**24** Officium sanctae Mariae in sabbato
+`class-4` · white · Ep. Ecclus 24:14-16 · Ev. Luke 11:27-28
+
+- Com. christina
+
+
+
+**25** ef-time-after-pentecost-sunday-10
+`class-2` · green · Ep. 1 Cor. 12:2-11 · Ev. Luke 18:9-14
+
+- Com. james-the-greater
+
+
+
+**26** anne-mother-of-the-blessed-virgin
+`class-2` · white · Ep. Prov 31:10-31 · Ev. Matt 13:44-52.
+
+
+
+**27** ef-time-after-pentecost-10-tuesday
+`class-4` · green · Ep. 1 Cor. 12:2-11 · Ev. Luke 18:9-14
+
+- Com. pantaleon
+
+
+
+**28** sts-nazarius-celsus-st-victor-i-st-innocent-i
+`class-3` · red · Ep. Wis 10:17-20 · Ev. Luke 21:9-19
+
+
+
+**29** martha
+`class-3` · white · Ep. 2 Cor 10:17-18; 11:1-2 · Ev. Luke 10:38-42
+
+- Com. felicis-simplicii-faustini-et-beatricis
+
+
+
+**30** ef-time-after-pentecost-10-friday
+`class-4` · green · Ep. 1 Cor. 12:2-11 · Ev. Luke 18:9-14
+
+- Com. sts-abdon-sennen
+
+
+
+**31** ignatius-loyola
+`class-3` · white · Ep. 2 Tim. 2:8-10; 3:10-12. · Ev. Luke 10:1-9
+
+
+
+## Augustus
+
+
+**1** ef-time-after-pentecost-sunday-11
+`class-2` · green · Ep. 1 Cor. 15:1-10 · Ev. Mark 7:31-37
+
+
+
+**2** alphonsus-liguori
+`class-3` · white · Ep. 2 Tim. 2:1-7 · Ev. Luke 10:1-9
+
+- Com. stephen-i-pope-and-martyr
+
+
+
+**3** ef-time-after-pentecost-11-tuesday
+`class-4` · green · Ep. 1 Cor. 15:1-10 · Ev. Mark 7:31-37
+
+
+
+**4** dominic
+`class-3` · white · Ep. 2 Tim. 4:1-8 · Ev. Luke 12:35-40
+
+
+
+**5** dedication-of-the-basilica-of-st-mary-major
+`class-3` · white · Ep. Ecclus 24:14-16 · Ev. Luke 11:27-28
+
+
+
+**6** transfiguration-of-our-lord
+`class-2` · white · Ep. 2 Pet. 1:16-19 · Ev. Matt 17:1-9
+
+- Com. pope-sixtus-ii-felicissimus-and-agapitus-martyrs
+
+
+
+**7** cajetan
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Matt 6:24-33
+
+- Com. donatus
+
+
+
+**8** ef-time-after-pentecost-sunday-12
+`class-2` · green · Ep. 2 Cor. 3:4-9 · Ev. Luke 10:23-37
+
+
+
+**9** vigil-of-st-lawrence
+`class-3` · violet · Ep. Ecclus 51:1-8, 12 · Ev. Matt 16:24-27
+
+- Com. romanus
+
+
+
+**10** lawrence
+`class-2` · red · Ep. 2 Cor. 9:6-10 · Ev. John 12:24-26
+
+
+
+**11** ef-time-after-pentecost-12-wednesday
+`class-4` · green · Ep. 2 Cor. 3:4-9 · Ev. Luke 10:23-37
+
+- Com. sts-tiburtius-susanna
+
+
+
+**12** clare
+`class-3` · white · Ep. 2 Cor 10:17-18; 11:1-2 · Ev. Matt 25:1-13.
+
+
+
+**13** ef-time-after-pentecost-12-friday
+`class-4` · green · Ep. 2 Cor. 3:4-9 · Ev. Luke 10:23-37
+
+- Com. sts-hippolytus-cassian
+
+
+
+**14** vigil-of-the-assumption
+`class-2` · violet · Ep. Sir 24:23-31 · Ev. Luke 11:27-28
+
+- Com. eusebius-confessor
+
+
+
+**15** assumption-of-the-blessed-virgin-mary
+`class-1` · white · Ep. Judith 13:22-25; 15:10 · Ev. Luke 1:41-50
+
+- Com. ef-time-after-pentecost-sunday-13
+
+
+
+**16** joachim-father-of-the-blessed-virgin
+`class-2` · white · Ep. Sir 31:8-11 · Ev. Matt 1:1-16
+
+
+
+**17** hyacinth
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Luke 12:35-40
+
+
+
+**18** ef-time-after-pentecost-13-wednesday
+`class-4` · green · Ep. Gal 3:16-22 · Ev. Luke 17:11-19
+
+- Com. agapitus
+
+
+
+**19** john-eudes
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Luke 12:35-40
+
+
+
+**20** bernard-of-clairvaux
+`class-3` · white · Ep. Ecclus 39:6-14 · Ev. Matt 5:13-19
+
+
+
+**21** jane-frances-de-chantal
+`class-3` · white · Ep. Prov 31:10-31 · Ev. Matt 13:44-52.
+
+
+
+**22** ef-time-after-pentecost-sunday-14
+`class-2` · green · Ep. Gal 5:16-24 · Ev. Matt 6:24-33
+
+- Com. immaculate-heart-of-mary
+
+
+
+**23** philip-benizi
+`class-3` · white · Ep. 1 Cor. 4:9-14 · Ev. Luke 12:32-34
+
+
+
+**24** bartholomew
+`class-2` · red · Ep. 1 Cor. 12:27-31 · Ev. Luke 6:12-19
+
+
+
+**25** louis-ix
+`class-3` · white · Ep. Wis 10:10-14 · Ev. Luke 19:12-26
+
+
+
+**26** ef-time-after-pentecost-14-thursday
+`class-4` · green · Ep. Gal 5:16-24 · Ev. Matt 6:24-33
+
+- Com. zephyrinus
+
+
+
+**27** joseph-calasance
+`class-3` · white · Ep. Wis 10:10-14 · Ev. Matt 18:1-5
+
+
+
+**28** augustine
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+- Com. hermes
+
+
+
+**29** ef-time-after-pentecost-sunday-15
+`class-2` · green · Ep. Gal 5:25-26; 6:1-10 · Ev. Luke 7:11-16
+
+
+
+**30** rose-of-lima
+`class-3` · white · Ep. 2 Cor 10:17-18; 11:1-2 · Ev. Matt 25:1-13.
+
+- Com. sts-felix-and-adauctus
+
+
+
+**31** raymond-nonnatus
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Luke 12:35-40
+
+
+
+## September
+
+
+**1** ef-time-after-pentecost-15-wednesday
+`class-4` · green · Ep. Gal 5:25-26; 6:1-10 · Ev. Luke 7:11-16
+
+- Com. giles
+
+- Com. twelve-holy-brothers-martyrs
+
+
+
+**2** stephen-of-hungary
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Luke 19:12-26
+
+
+
+**3** pius-x
+`class-3` · white · Ep. 1 Thess. 2:2-8 · Ev. John 21:15-17
+
+
+
+**4** Officium sanctae Mariae in sabbato
+`class-4` · white · Ep. Ecclus 24:14-16 · Ev. Luke 11:27-28
+
+
+
+**5** ef-time-after-pentecost-sunday-16
+`class-2` · green · Ep. Eph 3:13-21 · Ev. Luke 14:1-11
+
+
+
+**6** ef-time-after-pentecost-16-monday
+`class-4` · green · Ep. Eph 3:13-21 · Ev. Luke 14:1-11
+
+
+
+**7** ef-time-after-pentecost-16-tuesday
+`class-4` · green · Ep. Eph 3:13-21 · Ev. Luke 14:1-11
+
+
+
+**8** nativity-of-the-blessed-virgin-mary
+`class-2` · white · Ep. Prov 8:22-35 · Ev. Matt 1:1-16
+
+- Com. hadriani
+
+
+
+**9** ef-time-after-pentecost-16-thursday
+`class-4` · green · Ep. Eph 3:13-21 · Ev. Luke 14:1-11
+
+- Com. gorgonius
+
+
+
+**10** nicholas-of-tolentino
+`class-3` · white · Ep. 1 Cor. 4:9-14 · Ev. Luke 12:32-34
+
+
+
+**11** Officium sanctae Mariae in sabbato
+`class-4` · white · Ep. Ecclus 24:14-16 · Ev. Luke 11:27-28
+
+- Com. sts-protus-hyacinth
+
+
+
+**12** ef-time-after-pentecost-sunday-17
+`class-2` · green · Ep. Eph 4:1-6 · Ev. Matt 22:34-46
+
+
+
+**13** ef-time-after-pentecost-17-monday
+`class-4` · green · Ep. Eph 4:1-6 · Ev. Matt 22:34-46
+
+
+
+**14** exaltation-of-the-holy-cross
+`class-2` · red · Ep. Phil 2:5-11 · Ev. John 12:31-36
+
+
+
+**15** seven-sorrows-of-the-blessed-virgin-mary
+`class-2` · white · Ep. Judith 13:22; 13:23-25 · Ev. John 19:25-27
+
+- Com. nicomedes
+
+
+
+**16** sts-cornelius-cyprian
+`class-3` · red · Ep. Wis 3:1-8 · Ev. Luke 21:9-19
+
+- Com. sts-euphemia-lucy-and-geminianus
+
+
+
+**17** ef-time-after-pentecost-17-friday
+`class-4` · green · Ep. Eph 4:1-6 · Ev. Matt 22:34-46
+
+- Com. stigmata-of-st-francis
+
+
+
+**18** joseph-of-cupertino
+`class-3` · white · Ep. 1 Cor 13:1-8 · Ev. Matt 22:1-14
+
+
+
+**19** ef-time-after-pentecost-sunday-18
+`class-2` · green · Ep. 1 Cor. 1:4-8 · Ev. Matt 9:1-8
+
+
+
+**20** ef-time-after-pentecost-18-monday
+`class-4` · green · Ep. 1 Cor. 1:4-8 · Ev. Matt 9:1-8
+
+- Com. sts-eustace-companions
+
+
+
+**21** matthew
+`class-2` · red · Ep. Ezek 1:10-14 · Ev. Matt 9:9-13
+
+
+
+**22** ef-september-ember-wed
+`class-2` · violet · Ep. 2 Esd. 8:1-10 · Ev. Mark 9:16-28
+
+- Com. thomas-of-villanova
+
+
+
+**23** linus
+`class-3` · red · Ep. 1 Pet 5:1-4; 5:10-11. · Ev. Matt 16:13-19
+
+- Com. thecla
+
+
+
+**24** ef-september-ember-fri
+`class-2` · violet · Ep. Osee 14:2-10 · Ev. Luke 7:36-50
+
+- Com. our-lady-of-ransom
+
+
+
+**25** ef-september-ember-sat
+`class-2` · violet · Ep. Heb 9:2-12 · Ev. Luke 13:6-17
+
+
+
+**26** ef-time-after-pentecost-sunday-19
+`class-2` · green · Ep. Eph 4:23-28 · Ev. Matt 22:1-14
+
+
+
+**27** sts-cosmas-damian
+`class-3` · red · Ep. Wis 5:16-20 · Ev. Luke 6:17-23
+
+
+
+**28** wenceslaus
+`class-3` · red · Ep. Wis 10:10-14 · Ev. Matt 10:34-42
+
+
+
+**29** dedication-of-st-michael-the-archangel
+`class-1` · white · Ep. Rev 1:1-5 · Ev. Matt 18:1-10
+
+
+
+**30** jerome
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+
+
+## October
+
+
+**1** ef-time-after-pentecost-19-friday
+`class-4` · green · Ep. Eph 4:23-28 · Ev. Matt 22:1-14
+
+- Com. remigius
+
+
+
+**2** holy-guardian-angels
+`class-3` · white · Ep. Exod 23:20-23 · Ev. Matt 18:1-10
+
+
+
+**3** ef-time-after-pentecost-sunday-20
+`class-2` · green · Ep. Eph 5:15-21 · Ev. John 4:46-53
+
+
+
+**4** francis-of-assisi
+`class-3` · white · Ep. Gal 6:14-18 · Ev. Matt 11:25-30
+
+
+
+**5** ef-time-after-pentecost-20-tuesday
+`class-4` · green · Ep. Eph 5:15-21 · Ev. John 4:46-53
+
+- Com. placid-companions
+
+
+
+**6** bruno
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Luke 12:35-40
+
+
+
+**7** our-lady-of-the-rosary
+`class-2` · white · Ep. Prov 8:22-24, 32-35. · Ev. Luke 1:26-38
+
+- Com. mark-i
+
+
+
+**8** bridget-of-sweden
+`class-3` · white · Ep. 1 Tim. 5:3-10. · Ev. Matt 13:44-52.
+
+- Com. sergio-baccho-marcello-and-apulejo-martyrs
+
+
+
+**9** john-leonardi
+`class-3` · white · Ep. 2 Cor 4:1-6; 4:15-18 · Ev. Luke 10:1-9
+
+- Com. dionysius-and-companions
+
+
+
+**10** ef-time-after-pentecost-sunday-21
+`class-2` · green · Ep. Eph 6:10-17 · Ev. Matt 18:23-35
+
+
+
+**11** maternity-of-the-blessed-virgin-mary
+`class-2` · white · Ep. Sir 24:23-31 · Ev. Luke 2:43-51
+
+
+
+**12** ef-time-after-pentecost-21-tuesday
+`class-4` · green · Ep. Eph 6:10-17 · Ev. Matt 18:23-35
+
+
+
+**13** edward
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Luke 12:35-40
+
+
+
+**14** callistus-i
+`class-3` · red · Ep. 1 Pet 5:1-4; 5:10-11. · Ev. Matt 16:13-19
+
+
+
+**15** teresa-of-avila
+`class-3` · white · Ep. 2 Cor 10:17-18; 11:1-2 · Ev. Matt 25:1-13.
+
+
+
+**16** hedwig
+`class-3` · white · Ep. Prov 31:10-31 · Ev. Matt 13:44-52.
+
+
+
+**17** ef-time-after-pentecost-sunday-22
+`class-2` · green · Ep. Phil 1:6-11 · Ev. Matt 22:15-21
+
+
+
+**18** luke-the-evangelist
+`class-2` · red · Ep. 2 Cor. 8:16-24 · Ev. Luke 10:1-9
+
+
+
+**19** peter-of-alcantara
+`class-3` · white · Ep. Phil 3:7-12 · Ev. Luke 12:32-34
+
+
+
+**20** john-cantius
+`class-3` · white · Ep. James 2:12-17 · Ev. Luke 12:35-40
+
+
+
+**21** ef-time-after-pentecost-22-thursday
+`class-4` · green · Ep. Phil 1:6-11 · Ev. Matt 22:15-21
+
+- Com. hilarion
+
+- Com. ursula-and-companions
+
+
+
+**22** ef-time-after-pentecost-22-friday
+`class-4` · green · Ep. Phil 1:6-11 · Ev. Matt 22:15-21
+
+
+
+**23** anthony-mary-claret
+`class-3` · white · Ep. Heb 7:23-27 · Ev. Matt 24:42-47
+
+
+
+**24** ef-time-after-pentecost-sunday-23
+`class-2` · green · Ep. Phil 3:17-21; 4:1-3 · Ev. Matt 9:18-26
+
+
+
+**25** ef-time-after-pentecost-23-monday
+`class-4` · green · Ep. Phil 3:17-21; 4:1-3 · Ev. Matt 9:18-26
+
+- Com. sts-chrysanthus-daria
+
+
+
+**26** ef-time-after-pentecost-23-tuesday
+`class-4` · green · Ep. Phil 3:17-21; 4:1-3 · Ev. Matt 9:18-26
+
+- Com. evaristus
+
+
+
+**27** ef-time-after-pentecost-23-wednesday
+`class-4` · green · Ep. Phil 3:17-21; 4:1-3 · Ev. Matt 9:18-26
+
+
+
+**28** sts-simon-jude
+`class-2` · red · Ep. Eph. 4:7-13. · Ev. John 15:17-25
+
+
+
+**29** ef-time-after-pentecost-23-friday
+`class-4` · green · Ep. Phil 3:17-21; 4:1-3 · Ev. Matt 9:18-26
+
+
+
+**30** Officium sanctae Mariae in sabbato
+`class-4` · white · Ep. Ecclus 24:14-16 · Ev. Luke 11:27-28
+
+
+
+**31** ef-christ-the-king
+`class-1` · white · Ep. Col 1:12-20. · Ev. John 18:33-37
+
+
+
+## November
+
+
+**1** all-saints
+`class-1` · white · Ep. Apoc 7:2-12 · Ev. Matt 5:1-12
+
+
+
+**2** commemoration-of-all-souls
+`class-1` · black · Ep. 1 Cor. 15:51-57 · Ev. John 5:25-29
+
+
+
+**3** ef-time-after-pentecost-24-wednesday
+`class-4` · green · Ep. Col 1:12-20. · Ev. John 18:33-37
+
+
+
+**4** charles-borromeo
+`class-3` · white · Ep. Sir 44:16-27; 45:3-20 · Ev. Matt 25:14-23
+
+- Com. sts-vitalis-and-agricola-martyrs
+
+
+
+**5** ef-time-after-pentecost-24-friday
+`class-4` · green · Ep. Col 1:12-20. · Ev. John 18:33-37
+
+
+
+**6** Officium sanctae Mariae in sabbato
+`class-4` · white · Ep. Ecclus 24:14-16 · Ev. Luke 11:27-28
+
+
+
+**7** ef-time-after-epiphany-sunday-5
+`class-2` · green · Ep. Col 3:12-17 · Ev. Matt 13:24-30
+
+
+
+**8** ef-time-after-pentecost-25-monday
+`class-4` · green · Ep. Col 3:12-17 · Ev. Matt 13:24-30
+
+- Com. four-holy-crowned-martyrs
+
+
+
+**9** dedication-of-the-archbasilica-of-our-holy-savior
+`class-2` · white · Ep. Rev 21:2-5 · Ev. Luke 19:1-10
+
+- Com. theodore
+
+
+
+**10** andrew-avellino
+`class-3` · white · Ep. Sir 31:8-11 · Ev. Luke 12:35-40
+
+- Com. sts-tryphonis-respicii-et-nymphae
+
+
+
+**11** martin-of-tours
+`class-3` · white · Ep. Sir 44:16-27; 45:3-20 · Ev. Luke 11:33-36
+
+- Com. menna
+
+
+
+**12** martin-i
+`class-3` · red · Ep. 1 Pet 5:1-4; 5:10-11. · Ev. Matt 16:13-19
+
+
+
+**13** didacus
+`class-3` · white · Ep. 1 Cor 4:9-14 · Ev. Luke 12:32-34
+
+
+
+**14** ef-time-after-epiphany-sunday-6
+`class-2` · green · Ep. 1 Thess 1:2-10 · Ev. Matt 13:31-35
+
+
+
+**15** albert-the-great
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+
+
+**16** gertrude-the-great
+`class-3` · white · Ep. 2 Cor 10:17-18; 11:1-2 · Ev. Matt 25:1-13.
+
+
+
+**17** gregory-the-wonderworker
+`class-3` · white · Ep. Sir 44:16-27; 45:3-20 · Ev. Mark 11:22-24
+
+
+
+**18** dedication-of-the-basilicas-of-sts-peter-paul
+`class-3` · white · Ep. Rev 21:2-5 · Ev. Luke 19:1-10
+
+
+
+**19** elizabeth-of-hungary
+`class-3` · white · Ep. Prov 31:10-31 · Ev. Matt 13:44-52.
+
+- Com. pontian
+
+
+
+**20** felix-of-valois
+`class-3` · white · Ep. 1 Cor. 4:9-14 · Ev. Luke 12:32-34
+
+
+
+**21** ef-time-after-pentecost-sunday-24
+`class-2` · green · Ep. Col 1:9-14 · Ev. Matt 24:15-35
+
+
+
+**22** cecilia
+`class-3` · red · Ep. Sir 51:13-17. · Ev. Matt 25:1-13.
+
+
+
+**23** clement-i
+`class-3` · red · Ep. Phil 3:17-21; 4:1-3 · Ev. Matt 16:13-19
+
+- Com. felicity
+
+
+
+**24** john-of-the-cross
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+- Com. chrysogonus
+
+
+
+**25** catherine-of-alexandria
+`class-3` · red · Ep. Sir 51:1-8; 51:12 · Ev. Matt 25:1-13.
+
+
+
+**26** sylvester
+`class-3` · white · Ep. Ecclus 45:1-6 · Ev. Matt 19:27-29.
+
+- Com. peter-of-alexandria
+
+
+
+**27** Officium sanctae Mariae in sabbato
+`class-4` · white · Ep. Ecclus 24:14-16 · Ev. Luke 11:27-28
+
+
+
+**28** ef-advent-sunday-1
+`class-1` · violet · Ep. Rom 13:11-14 · Ev. Luke 21:25-33
+
+
+
+**29** ef-advent-1-monday
+`class-3` · violet · Ep. Rom 13:11-14 · Ev. Luke 21:25-33
+
+- Com. saturninus
+
+
+
+**30** andrew
+`class-2` · red · Ep. Rom 10:10-18 · Ev. Matt 4:18-22
+
+- Com. ef-advent-1-tuesday
+
+
+
+## December
+
+
+**1** ef-advent-1-wednesday
+`class-3` · violet · Ep. Rom 13:11-14 · Ev. Luke 21:25-33
+
+
+
+**2** vivian
+`class-3` · red · Ep. Sir 51:13-17. · Ev. Matt 13:44-52.
+
+- Com. ef-advent-1-thursday
+
+
+
+**3** francis-xavier
+`class-3` · white · Ep. Rom 10:10-18 · Ev. Mark 16:15-18
+
+- Com. ef-advent-1-friday
+
+
+
+**4** peter-chrysologus
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+- Com. ef-advent-1-saturday
+
+- Com. barbara
+
+
+
+**5** ef-advent-sunday-2
+`class-1` · violet · Ep. Rom 15:4-13 · Ev. Matt 11:2-10
+
+
+
+**6** nicholas
+`class-3` · white · Ep. Heb 13:7-17 · Ev. Matt 25:14-23
+
+- Com. ef-advent-2-monday
+
+
+
+**7** ambrose
+`class-3` · white · Ep. 2 Tim 4:1-8 · Ev. Matt 5:13-19
+
+- Com. ef-advent-2-tuesday
+
+
+
+**8** immaculate-conception-of-the-blessed-virgin-mary
+`class-1` · white · Ep. Prov 8:22-35 · Ev. Luke 1:26-28
+
+- Com. ef-advent-2-wednesday
+
+
+
+**9** ef-advent-2-thursday
+`class-3` · violet · Ep. Rom 15:4-13 · Ev. Matt 11:2-10
+
+
+
+**10** ef-advent-2-friday
+`class-3` · violet · Ep. Rom 15:4-13 · Ev. Matt 11:2-10
+
+- Com. melchiades
+
+
+
+**11** damasus-i
+`class-3` · white · Ep. 1 Pet 5:1-4; 5:10-11. · Ev. Matt 16:13-19
+
+- Com. ef-advent-2-saturday
+
+
+
+**12** ef-advent-sunday-3
+`class-1` · rose · Ep. Phil 4:4-7 · Ev. John 1:19-28
+
+
+
+**13** lucy
+`class-3` · red · Ep. 2 Cor 10:17-18; 11:1-2 · Ev. Matt 13:44-52.
+
+- Com. ef-advent-3-monday
+
+
+
+**14** ef-advent-3-tuesday
+`class-3` · violet · Ep. Phil 4:4-7 · Ev. John 1:19-28
+
+
+
+**15** ef-advent-ember-wed
+`class-2` · violet · Ep. Isa 7:10-15 · Ev. Luke 1:26-38
+
+
+
+**16** eusebius
+`class-3` · red · Ep. 2 Cor. 1:3-7 · Ev. Matt 16:24-27.
+
+- Com. ef-advent-3-thursday
+
+
+
+**17** ef-advent-ember-fri
+`class-2` · violet · Ep. Isa 11:1-5 · Ev. Luke 1:39-47
+
+
+
+**18** ef-advent-ember-sat
+`class-2` · violet · Ep. 2 Thess 2:1-8 · Ev. Luke 3:1-6
+
+
+
+**19** ef-advent-sunday-4
+`class-1` · violet · Ep. 1 Cor. 4:1-5 · Ev. Luke 3:1-6
+
+
+
+**20** ef-advent-4-monday
+`class-2` · violet · Ep. 1 Cor. 4:1-5 · Ev. Luke 3:1-6
+
+
+
+**21** thomas
+`class-2` · red · Ep. Eph 2:19-22 · Ev. John 20:24-29
+
+- Com. ef-advent-4-tuesday
+
+
+
+**22** ef-advent-4-wednesday
+`class-2` · violet · Ep. 1 Cor. 4:1-5 · Ev. Luke 3:1-6
+
+
+
+**23** ef-advent-4-thursday
+`class-2` · violet · Ep. 1 Cor. 4:1-5 · Ev. Luke 3:1-6
+
+
+
+**24** ef-nativity-vigil
+`class-1` · violet · Ep. Rom 1:1-6 · Ev. Matt 1:18-21
+
+
+
+**25** ef-nativity
+`class-1` · white · Ep. Heb 1:1-12 · Ev. John 1:1-14
+
+
+
+**26** ef-christmas-sunday-0
+`class-2` · white · Ep. Gal 4:1-7 · Ev. Luke 2:33-40
+
+- Com. stephen
+
+
+
+**27** john-the-evangelist
+`class-2` · white · Ep. Ecclus 15:1-6 · Ev. John 21:19-24
+
+- Com. ef-nativity-octave-day-3
+
+
+
+**28** holy-innocents
+`class-2` · red · Ep. Apoc 14:1-5 · Ev. Matt 2:13-18
+
+- Com. ef-nativity-octave-day-4
+
+
+
+**29** ef-nativity-octave-day-5
+`class-2` · white · Ep. Titus 3:4-7 · Ev. Luke 2:15-20
+
+- Com. thomas-becket
+
+
+
+**30** ef-nativity-octave-day-6
+`class-2` · white · Ep. Titus 3:4-7 · Ev. Luke 2:15-20
+
+
+
+**31** ef-nativity-octave-day-7
+`class-2` · white · Ep. Titus 3:4-7 · Ev. Luke 2:15-20
+
+- Com. silvester
+
+
+
diff --git a/test/golden/ordo-2027.ms b/test/golden/ordo-2027.ms
new file mode 100644
index 0000000..daeee24
--- /dev/null
+++ b/test/golden/ordo-2027.ms
@@ -0,0 +1,3604 @@
+.\" colitur ordo booklet -- groff ms. flavour: groff
+.\" Build: colitur table --year 2027 --template ordo.ms | groff -ms -Tpdf > ordo.pdf
+.\"
+.\" Day label falls back to the slug when the day carries no Latin name (most
+.\" temporal days, and most sanctoral entries, which are Latin-less in the
+.\" shipped data) -- see ordo.tex's own comment for why the fallback is
+.\" written as a name-section wrapping a plain var and its inverse, rather
+.\" than a single dotted lookup and its inverse.
+.TL
+ORDO 2027 \(bu ef
+
+.SH
+Ianuarius
+.LP
+
+.IP "1" 4
+ef-circumcision
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Titus 2:11-15\s+2
+.br
+\s-2Ev. Luke 2:21\s+2
+
+.IP "2" 4
+Officium sanctae Mariae in sabbato
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Titus 3:4-7\s+2
+.br
+\s-2Ev. Luke 2:15-20\s+2
+
+.IP "3" 4
+Sanctissimi Nominis Iesu
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Acts 4:8-12\s+2
+.br
+\s-2Ev. Luke 2:21\s+2
+
+.IP "4" 4
+ef-christmas-1-monday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Titus 2:11-15\s+2
+.br
+\s-2Ev. Luke 2:21\s+2
+
+.IP "5" 4
+ef-christmas-1-tuesday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Titus 2:11-15\s+2
+.br
+\s-2Ev. Luke 2:21\s+2
+.br
+\s-2Com. telesphorus-pope-and-martyr\s+2
+
+.IP "6" 4
+ef-epiphany
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Isa 60:1-6\s+2
+.br
+\s-2Ev. Matt 2:1-12\s+2
+
+.IP "7" 4
+ef-christmas-2-thursday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Isa 60:1-6\s+2
+.br
+\s-2Ev. Matt 2:1-12\s+2
+
+.IP "8" 4
+ef-christmas-2-friday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Isa 60:1-6\s+2
+.br
+\s-2Ev. Matt 2:1-12\s+2
+
+.IP "9" 4
+Officium sanctae Mariae in sabbato
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Titus 3:4-7\s+2
+.br
+\s-2Ev. Luke 2:15-20\s+2
+
+.IP "10" 4
+Sanctae Familiae Iesu, Mariae, Ioseph
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Col 3:12-17\s+2
+.br
+\s-2Ev. Luke 2:42-52\s+2
+
+.IP "11" 4
+ef-time-after-epiphany-1-monday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Rom 12:1-5\s+2
+.br
+\s-2Ev. Luke 2:42-52\s+2
+.br
+\s-2Com. hyginus-pope-and-martyr\s+2
+
+.IP "12" 4
+ef-time-after-epiphany-1-tuesday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Rom 12:1-5\s+2
+.br
+\s-2Ev. Luke 2:42-52\s+2
+
+.IP "13" 4
+commemoration-of-the-baptism-of-the-lord
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Isa 60:1-6\s+2
+.br
+\s-2Ev. John 1:29-34\s+2
+
+.IP "14" 4
+hilary
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+.br
+\s-2Com. felicis\s+2
+
+.IP "15" 4
+paul-the-first-hermit
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Phil 3:7-12\s+2
+.br
+\s-2Ev. Matt 11:25-30\s+2
+.br
+\s-2Com. maur-abbot\s+2
+
+.IP "16" 4
+marcellus-i
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 1 Pet 5:1-4; 5:10-11.\s+2
+.br
+\s-2Ev. Matt 16:13-19\s+2
+
+.IP "17" 4
+ef-time-after-epiphany-sunday-2
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Rom 12:6-16\s+2
+.br
+\s-2Ev. John 2:1-11\s+2
+
+.IP "18" 4
+ef-time-after-epiphany-2-monday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Rom 12:6-16\s+2
+.br
+\s-2Ev. John 2:1-11\s+2
+.br
+\s-2Com. prisca\s+2
+
+.IP "19" 4
+ef-time-after-epiphany-2-tuesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Rom 12:6-16\s+2
+.br
+\s-2Ev. John 2:1-11\s+2
+.br
+\s-2Com. canute-martyr\s+2
+.br
+\s-2Com. sts-marius-martha-audifax-abachum\s+2
+
+.IP "20" 4
+sts-fabian-sebastian
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Heb 11:33-39\s+2
+.br
+\s-2Ev. Luke 6:17-23\s+2
+
+.IP "21" 4
+agnes
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Sir 51:1-8; 51:12\s+2
+.br
+\s-2Ev. Matt 25:1-13.\s+2
+
+.IP "22" 4
+sts-vincent-anastasius
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Wis 3:1-8\s+2
+.br
+\s-2Ev. Luke 21:9-19\s+2
+
+.IP "23" 4
+raymond-of-pe-afort
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+.br
+\s-2Com. emerentiana\s+2
+
+.IP "24" 4
+ef-septuagesima-sunday-1
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. 1 Cor. 9:24-27; 10:1-5\s+2
+.br
+\s-2Ev. Matt 20:1-16\s+2
+
+.IP "25" 4
+conversion-of-st-paul
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Acts 9:1-22\s+2
+.br
+\s-2Ev. Matt 19:27-29.\s+2
+.br
+\s-2Com. peter\s+2
+
+.IP "26" 4
+polycarp
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 1 John 3:10-16\s+2
+.br
+\s-2Ev. Matt 10:26-32.\s+2
+
+.IP "27" 4
+john-chrysostom
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+
+.IP "28" 4
+peter-nolasco
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Cor. 4:9-14\s+2
+.br
+\s-2Ev. Luke 12:32-34\s+2
+.br
+\s-2Com. agnes-secundo\s+2
+
+.IP "29" 4
+francis-de-sales
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+
+.IP "30" 4
+martina
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Sir 51:1-8; 51:12\s+2
+.br
+\s-2Ev. Matt 25:1-13.\s+2
+
+.IP "31" 4
+ef-septuagesima-sunday-2
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. 2 Cor. 11:19-33; 12:1-9\s+2
+.br
+\s-2Ev. Luke 8:4-15\s+2
+
+
+.SH
+Februarius
+.LP
+
+.IP "1" 4
+ignatius-of-antioch
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Rom 8:35-39\s+2
+.br
+\s-2Ev. John 12:24-26\s+2
+
+.IP "2" 4
+purification-of-the-blessed-virgin-mary
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Mal 3:1-4\s+2
+.br
+\s-2Ev. Luke 2:22-32\s+2
+
+.IP "3" 4
+ef-septuagesima-2-wednesday
+.br
+\s-2class-4 \(bu violet\s+2
+.br
+\s-2Ep. 2 Cor. 11:19-33; 12:1-9\s+2
+.br
+\s-2Ev. Luke 8:4-15\s+2
+.br
+\s-2Com. blaise\s+2
+
+.IP "4" 4
+andrew-corsini
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 44:16-27; 45:3-20\s+2
+.br
+\s-2Ev. Matt 25:14-23\s+2
+
+.IP "5" 4
+agatha
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 1 Cor. 1:26-31\s+2
+.br
+\s-2Ev. Matt 19:3-12.\s+2
+
+.IP "6" 4
+titus
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 44:16-27; 45:3-20\s+2
+.br
+\s-2Ev. Luke 10:1-9\s+2
+.br
+\s-2Com. dorothy\s+2
+
+.IP "7" 4
+ef-septuagesima-sunday-3
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. 1 Cor. 13:1-13\s+2
+.br
+\s-2Ev. Luke 18:31-43\s+2
+
+.IP "8" 4
+john-of-matha
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+
+.IP "9" 4
+cyril-of-alexandria
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+.br
+\s-2Com. appollonia\s+2
+
+.IP "10" 4
+ef-ash-wednesday
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. Joel 2:12-19\s+2
+.br
+\s-2Ev. Matt 6:16-21\s+2
+
+.IP "11" 4
+ef-lent-after-ashes-thursday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Isa 38:1-6\s+2
+.br
+\s-2Ev. Matt 8:5-13\s+2
+.br
+\s-2Com. our-lady-of-lourdes\s+2
+
+.IP "12" 4
+ef-lent-after-ashes-friday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Isa 58:1-9\s+2
+.br
+\s-2Ev. Matt 5:43-48; 6:1-4\s+2
+.br
+\s-2Com. seven-holy-servite-founders\s+2
+
+.IP "13" 4
+ef-lent-after-ashes-saturday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Isa 58:9-14\s+2
+.br
+\s-2Ev. Mark 6:47-56\s+2
+
+.IP "14" 4
+ef-lent-sunday-1
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. 2 Cor. 6:1-10\s+2
+.br
+\s-2Ev. Matt 4:1-11\s+2
+
+.IP "15" 4
+ef-lent-1-monday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Ezech 34:11-16\s+2
+.br
+\s-2Ev. Matt 25:31-46\s+2
+.br
+\s-2Com. sts-faustinus-jovita\s+2
+
+.IP "16" 4
+ef-lent-1-tuesday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Isa 55:6-11\s+2
+.br
+\s-2Ev. Matt 21:10-17\s+2
+
+.IP "17" 4
+ef-lent-ember-wed
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. 3 Kgs. 19:3-8\s+2
+.br
+\s-2Ev. Matt 12:38-50\s+2
+
+.IP "18" 4
+ef-lent-1-thursday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Ezech 18:1-9\s+2
+.br
+\s-2Ev. Matt 15:21-28\s+2
+.br
+\s-2Com. simeon\s+2
+
+.IP "19" 4
+ef-lent-ember-fri
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. Ezech 18:20-28\s+2
+.br
+\s-2Ev. John 5:1-15\s+2
+
+.IP "20" 4
+ef-lent-ember-sat
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. 1 Thess. 5:14-23\s+2
+.br
+\s-2Ev. Matt 17:1-9\s+2
+
+.IP "21" 4
+ef-lent-sunday-2
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. 1 Thess. 4:1-7\s+2
+.br
+\s-2Ev. Matt 17:1-9\s+2
+
+.IP "22" 4
+chair-of-st-peter
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 1:1-7\s+2
+.br
+\s-2Ev. Matt 16:13-19\s+2
+.br
+\s-2Com. ef-lent-2-monday\s+2
+.br
+\s-2Com. paul\s+2
+
+.IP "23" 4
+ef-lent-2-tuesday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. 3 Kings 17:8-16\s+2
+.br
+\s-2Ev. Matt 23:1-12\s+2
+.br
+\s-2Com. peter-damien\s+2
+
+.IP "24" 4
+matthias
+.br
+\s-2class-2 \(bu red\s+2
+.br
+\s-2Ep. Acts 1:15-26\s+2
+.br
+\s-2Ev. Matt 11:25-30\s+2
+.br
+\s-2Com. ef-lent-2-wednesday\s+2
+
+.IP "25" 4
+ef-lent-2-thursday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Jer 17:5-10\s+2
+.br
+\s-2Ev. Luke 16:19-31\s+2
+
+.IP "26" 4
+ef-lent-2-friday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Gen 37:6-22\s+2
+.br
+\s-2Ev. Matt 21:33-46\s+2
+
+.IP "27" 4
+ef-lent-2-saturday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Gen 27:6-40\s+2
+.br
+\s-2Ev. Luke 15:11-32\s+2
+.br
+\s-2Com. gabriel-of-our-lady-of-sorrows\s+2
+
+.IP "28" 4
+ef-lent-sunday-3
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. Eph 5:1-9\s+2
+.br
+\s-2Ev. Luke 11:14-28\s+2
+
+
+.SH
+Martius
+.LP
+
+.IP "1" 4
+ef-lent-3-monday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. 4 Kings 5:1-15\s+2
+.br
+\s-2Ev. Luke 4:23-30\s+2
+
+.IP "2" 4
+ef-lent-3-tuesday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. 4 Kings 4:1-7\s+2
+.br
+\s-2Ev. Matt 18:15-22\s+2
+
+.IP "3" 4
+ef-lent-3-wednesday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Ex 20:12-24\s+2
+.br
+\s-2Ev. Matt 15:1-20\s+2
+
+.IP "4" 4
+ef-lent-3-thursday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Jer 7:1-7\s+2
+.br
+\s-2Ev. Luke 4:38-44.\s+2
+.br
+\s-2Com. casimir\s+2
+.br
+\s-2Com. lucius\s+2
+
+.IP "5" 4
+ef-lent-3-friday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Num 20:1, 3; 6-13.\s+2
+.br
+\s-2Ev. John 4:5-42\s+2
+
+.IP "6" 4
+ef-lent-3-saturday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Dan 13:1-9, 15-17, 19-30, 33-62.\s+2
+.br
+\s-2Ev. John 8:1-11\s+2
+.br
+\s-2Com. sts-felicitas-perpetua\s+2
+
+.IP "7" 4
+ef-lent-sunday-4
+.br
+\s-2class-1 \(bu rose\s+2
+.br
+\s-2Ep. Gal 4:22-31\s+2
+.br
+\s-2Ev. John 6:1-15\s+2
+
+.IP "8" 4
+ef-lent-4-monday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. 3 Kings 3:16-28\s+2
+.br
+\s-2Ev. John 2:13-25\s+2
+.br
+\s-2Com. john-of-god\s+2
+
+.IP "9" 4
+ef-lent-4-tuesday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Ex 32:7-14\s+2
+.br
+\s-2Ev. John 7:14-31\s+2
+.br
+\s-2Com. frances-rome\s+2
+
+.IP "10" 4
+ef-lent-4-wednesday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Isa. 1:16-19\s+2
+.br
+\s-2Ev. John 9:1-38\s+2
+.br
+\s-2Com. forty-holy-martyrs-of-sebaste\s+2
+
+.IP "11" 4
+ef-lent-4-thursday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. 4 Kings 4:25-38\s+2
+.br
+\s-2Ev. Luke 7:11-16\s+2
+
+.IP "12" 4
+ef-lent-4-friday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. 3 Kings 17:17-24\s+2
+.br
+\s-2Ev. John 11:1-45\s+2
+.br
+\s-2Com. gregory-the-great\s+2
+
+.IP "13" 4
+ef-lent-4-saturday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Isa 49:8-15\s+2
+.br
+\s-2Ev. John 8:12-20\s+2
+
+.IP "14" 4
+ef-passion-sunday
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. Heb 9:11-15.\s+2
+.br
+\s-2Ev. John 8:46-59.\s+2
+
+.IP "15" 4
+ef-passiontide-1-monday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Jonas 3:1-10\s+2
+.br
+\s-2Ev. John 7:32-39\s+2
+
+.IP "16" 4
+ef-passiontide-1-tuesday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Dan 14:27, 28-42\s+2
+.br
+\s-2Ev. John 7:1-13\s+2
+
+.IP "17" 4
+ef-passiontide-1-wednesday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Lev 19:1-2, 11-19, 25\s+2
+.br
+\s-2Ev. John 10:22-38\s+2
+.br
+\s-2Com. patrick\s+2
+
+.IP "18" 4
+ef-passiontide-1-thursday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Dan 3:25, 34-45.\s+2
+.br
+\s-2Ev. Luke 7:36-50\s+2
+.br
+\s-2Com. cyril-of-jerusalem\s+2
+
+.IP "19" 4
+joseph-spouse-of-the-bl-virgin-mary
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 45:1-6\s+2
+.br
+\s-2Ev. Matt 1:18-21\s+2
+.br
+\s-2Com. ef-passiontide-1-friday\s+2
+
+.IP "20" 4
+ef-passiontide-1-saturday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Jer 18:18-23\s+2
+.br
+\s-2Ev. John 12:10-36\s+2
+
+.IP "21" 4
+ef-palm-sunday
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. Phil 2:5-11\s+2
+.br
+\s-2Ev. Matt. 26:36-75; 27:1-60.\s+2
+
+.IP "22" 4
+ef-passiontide-2-monday
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. Isa 50:5-10\s+2
+.br
+\s-2Ev. John 12:1-9\s+2
+
+.IP "23" 4
+ef-passiontide-2-tuesday
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. Jer 11:18-20\s+2
+.br
+\s-2Ev. Mark 14:32-72; 15, 1-46\s+2
+
+.IP "24" 4
+ef-passiontide-2-wednesday
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. Isa 53:1-12\s+2
+.br
+\s-2Ev. Luke 22:39-71; 23:1-53\s+2
+
+.IP "25" 4
+Feria V in Cena Domini
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. 1 Cor 11:20-32\s+2
+.br
+\s-2Ev. John 13:1-15\s+2
+
+.IP "26" 4
+Feria VI in Passione et Morte Domini
+.br
+\s-2class-1 \(bu black\s+2
+.br
+\s-2Ep. Ex 12:1-11\s+2
+.br
+\s-2Ev. John 18:1-40; 19:1-42\s+2
+
+.IP "27" 4
+Sabbato sancto
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. Col 3:1-4\s+2
+.br
+\s-2Ev. Matt 28:1-7\s+2
+
+.IP "28" 4
+ef-easter-sunday
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. 1 Cor 5:7-8\s+2
+.br
+\s-2Ev. Mark 16:1-7\s+2
+
+.IP "29" 4
+ef-easter-1-monday
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Acts 10:37-43.\s+2
+.br
+\s-2Ev. Luke 24:13-35\s+2
+
+.IP "30" 4
+ef-easter-1-tuesday
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Acts 13:16; 13:26-33\s+2
+.br
+\s-2Ev. Luke 24:36-47\s+2
+
+.IP "31" 4
+ef-easter-1-wednesday
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Acts 3:13-15; 3:17-19\s+2
+.br
+\s-2Ev. John 21:1-14\s+2
+
+
+.SH
+Aprilis
+.LP
+
+.IP "1" 4
+ef-easter-1-thursday
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Acts 8:26-40\s+2
+.br
+\s-2Ev. John 20:11-18\s+2
+
+.IP "2" 4
+ef-easter-1-friday
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 3:18-22\s+2
+.br
+\s-2Ev. Matt 28:16-20\s+2
+
+.IP "3" 4
+ef-easter-1-saturday
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 2:1-10\s+2
+.br
+\s-2Ev. John 20:1-9\s+2
+
+.IP "4" 4
+ef-low-sunday
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. 1 John 5:4-10\s+2
+.br
+\s-2Ev. John 20:19-31\s+2
+
+.IP "5" 4
+annunciation-of-the-blessed-virgin-mary
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Isa 7:10-15\s+2
+.br
+\s-2Ev. Luke 1:26-38\s+2
+
+.IP "6" 4
+ef-easter-2-tuesday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. 1 John 5:4-10\s+2
+.br
+\s-2Ev. John 20:19-31\s+2
+
+.IP "7" 4
+ef-easter-2-wednesday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. 1 John 5:4-10\s+2
+.br
+\s-2Ev. John 20:19-31\s+2
+
+.IP "8" 4
+ef-easter-2-thursday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. 1 John 5:4-10\s+2
+.br
+\s-2Ev. John 20:19-31\s+2
+
+.IP "9" 4
+ef-easter-2-friday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. 1 John 5:4-10\s+2
+.br
+\s-2Ev. John 20:19-31\s+2
+
+.IP "10" 4
+Officium sanctae Mariae in sabbato
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 24:14-16\s+2
+.br
+\s-2Ev. John 19:25-27\s+2
+
+.IP "11" 4
+ef-easter-sunday-3
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 2:21-25\s+2
+.br
+\s-2Ev. John 10:11-16\s+2
+
+.IP "12" 4
+ef-easter-3-monday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 2:21-25\s+2
+.br
+\s-2Ev. John 10:11-16\s+2
+
+.IP "13" 4
+hermenegild
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Wis 10:10-14\s+2
+.br
+\s-2Ev. Luke 14:26-33.\s+2
+
+.IP "14" 4
+justin
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 1 Cor 1:18-25; 1:30;\s+2
+.br
+\s-2Ev. Luke 12:2-8\s+2
+.br
+\s-2Com. sts-tiburtius-valerian-et-maximus-martyrs\s+2
+
+.IP "15" 4
+ef-easter-3-thursday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 2:21-25\s+2
+.br
+\s-2Ev. John 10:11-16\s+2
+
+.IP "16" 4
+ef-easter-3-friday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 2:21-25\s+2
+.br
+\s-2Ev. John 10:11-16\s+2
+
+.IP "17" 4
+Officium sanctae Mariae in sabbato
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 24:14-16\s+2
+.br
+\s-2Ev. John 19:25-27\s+2
+.br
+\s-2Com. anicetus\s+2
+
+.IP "18" 4
+ef-easter-sunday-4
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 2:11-19\s+2
+.br
+\s-2Ev. John 16:16-22\s+2
+
+.IP "19" 4
+ef-easter-4-monday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 2:11-19\s+2
+.br
+\s-2Ev. John 16:16-22\s+2
+
+.IP "20" 4
+ef-easter-4-tuesday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 2:11-19\s+2
+.br
+\s-2Ev. John 16:16-22\s+2
+
+.IP "21" 4
+anselm
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+
+.IP "22" 4
+sts-soter-caius
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 1 Pet 5:1-4; 5:10-11.\s+2
+.br
+\s-2Ev. Matt 16:13-19\s+2
+
+.IP "23" 4
+ef-easter-4-friday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 2:11-19\s+2
+.br
+\s-2Ev. John 16:16-22\s+2
+.br
+\s-2Com. george\s+2
+
+.IP "24" 4
+fidelis-of-sigmaringen
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Wis 5:1-5\s+2
+.br
+\s-2Ev. John 15:1-7\s+2
+
+.IP "25" 4
+ef-easter-sunday-5
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Jas 1:17-21\s+2
+.br
+\s-2Ev. John 16:5-14\s+2
+.br
+\s-2Com. major-litanies\s+2
+
+.IP "26" 4
+sts-cletus-marcellinus
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 1 Pet 5:1-4; 5:10-11.\s+2
+.br
+\s-2Ev. Matt 16:13-19\s+2
+
+.IP "27" 4
+peter-canisius
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+
+.IP "28" 4
+paul-of-the-cross
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Cor 1:17-25.\s+2
+.br
+\s-2Ev. Luke 10:1-9\s+2
+
+.IP "29" 4
+peter-of-verona
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 2 Tim. 2:8-10; 3:10-12.\s+2
+.br
+\s-2Ev. Matt 10:34-42\s+2
+
+.IP "30" 4
+catherine-of-siena
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Cor 10:17-18; 11:1-2\s+2
+.br
+\s-2Ev. Matt 25:1-13.\s+2
+
+
+.SH
+Maius
+.LP
+
+.IP "1" 4
+joseph-the-workman
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Col. 3:14-15, 17, 23-24\s+2
+.br
+\s-2Ev. Matt 13:54-58\s+2
+
+.IP "2" 4
+ef-easter-sunday-6
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Jas 1:22-27\s+2
+.br
+\s-2Ev. John 16:23-30\s+2
+
+.IP "3" 4
+ef-rogation-monday
+.br
+\s-2class-4 \(bu violet\s+2
+.br
+\s-2Ep. Jas 1:22-27\s+2
+.br
+\s-2Ev. John 16:23-30\s+2
+.br
+\s-2Com. sts-alexander-companions\s+2
+
+.IP "4" 4
+monica
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Tim. 5:3-10.\s+2
+.br
+\s-2Ev. Luke 7:11-16\s+2
+
+.IP "5" 4
+ef-ascension-vigil
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Eph. 4:7-13.\s+2
+.br
+\s-2Ev. John 17:1-11.\s+2
+.br
+\s-2Com. pius-v\s+2
+
+.IP "6" 4
+ef-ascension
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Acts 1:1-11\s+2
+.br
+\s-2Ev. Mark 16:14-20\s+2
+
+.IP "7" 4
+stanislaus
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Wis 5:1-5\s+2
+.br
+\s-2Ev. John 15:1-7\s+2
+
+.IP "8" 4
+Officium sanctae Mariae in sabbato
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 24:14-16\s+2
+.br
+\s-2Ev. John 19:25-27\s+2
+
+.IP "9" 4
+ef-easter-sunday-7
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 4:7-11.\s+2
+.br
+\s-2Ev. John 15:26-27; 16:1-4.\s+2
+
+.IP "10" 4
+antoninus
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 44:16-27; 45:3-20\s+2
+.br
+\s-2Ev. Matt 25:14-23\s+2
+.br
+\s-2Com. gordiano-and-epimacho\s+2
+
+.IP "11" 4
+sts-philip-james
+.br
+\s-2class-2 \(bu red\s+2
+.br
+\s-2Ep. Wis. 5:1-5\s+2
+.br
+\s-2Ev. John 14:1-13\s+2
+
+.IP "12" 4
+sts-nereus-achilleus-domitilla-pancras
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Wis. 5:1-5\s+2
+.br
+\s-2Ev. John 4:46-53\s+2
+
+.IP "13" 4
+robert-bellarmine
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Wis 7:7-14.\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+
+.IP "14" 4
+ef-easter-7-friday
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 4:7-11.\s+2
+.br
+\s-2Ev. John 15:26-27; 16:1-4.\s+2
+.br
+\s-2Com. boniface-martyr\s+2
+
+.IP "15" 4
+ef-pentecost-vigil
+.br
+\s-2class-1 \(bu red\s+2
+.br
+\s-2Ep. Acts 19:1-8.\s+2
+.br
+\s-2Ev. John 14:15-21.\s+2
+
+.IP "16" 4
+ef-pentecost
+.br
+\s-2class-1 \(bu red\s+2
+.br
+\s-2Ep. Acts 2:1-11.\s+2
+.br
+\s-2Ev. John 14:23-31.\s+2
+
+.IP "17" 4
+ef-easter-8-monday
+.br
+\s-2class-1 \(bu red\s+2
+.br
+\s-2Ep. Acts 10:34, 42-48\s+2
+.br
+\s-2Ev. John 3:16-21\s+2
+
+.IP "18" 4
+ef-easter-8-tuesday
+.br
+\s-2class-1 \(bu red\s+2
+.br
+\s-2Ep. Acts 8:14-17.\s+2
+.br
+\s-2Ev. John 10:1-10.\s+2
+
+.IP "19" 4
+ef-pentecost-ember-wed
+.br
+\s-2class-1 \(bu red\s+2
+.br
+\s-2Ep. Acts 5:12-16\s+2
+.br
+\s-2Ev. John 6:44-52.\s+2
+
+.IP "20" 4
+ef-easter-8-thursday
+.br
+\s-2class-1 \(bu red\s+2
+.br
+\s-2Ep. Acts 8:5-8\s+2
+.br
+\s-2Ev. Luke 9:1-6\s+2
+
+.IP "21" 4
+ef-pentecost-ember-fri
+.br
+\s-2class-1 \(bu red\s+2
+.br
+\s-2Ep. Joel 2:23-24; 26-27\s+2
+.br
+\s-2Ev. Luke 5:17-26\s+2
+
+.IP "22" 4
+ef-pentecost-ember-sat
+.br
+\s-2class-1 \(bu red\s+2
+.br
+\s-2Ep. Rom 5:1-5.\s+2
+.br
+\s-2Ev. Luke 4:38-44.\s+2
+
+.IP "23" 4
+ef-trinity
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Rom 11:33-36.\s+2
+.br
+\s-2Ev. Matt 28:18-20\s+2
+
+.IP "24" 4
+ef-time-after-pentecost-1-monday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. 1 John 4:8-21\s+2
+.br
+\s-2Ev. Luke 6:36-42\s+2
+
+.IP "25" 4
+gregory-vii
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 5:1-4; 5:10-11.\s+2
+.br
+\s-2Ev. Matt 16:13-19\s+2
+.br
+\s-2Com. urban-pope-and-martyr\s+2
+
+.IP "26" 4
+philip-neri
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Wis 7:7-14.\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+.br
+\s-2Com. eleutherius\s+2
+
+.IP "27" 4
+ef-corpus-christi
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. 1 Cor 11:23-29\s+2
+.br
+\s-2Ev. John 6:56-59\s+2
+
+.IP "28" 4
+augustine-of-canterbury
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Thess 2:2-9\s+2
+.br
+\s-2Ev. Luke 10:1-9\s+2
+
+.IP "29" 4
+mary-magdalene-de-pazzi
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Cor 10:17-18; 11:1-2\s+2
+.br
+\s-2Ev. Matt 25:1-13.\s+2
+
+.IP "30" 4
+ef-time-after-pentecost-sunday-2
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. 1 John 3:13-18.\s+2
+.br
+\s-2Ev. Luke 14:16-24.\s+2
+
+.IP "31" 4
+queenship-of-the-blessed-virgin-mary
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Eccli 24:5; 14:7; 14:9-11; 24:30-31\s+2
+.br
+\s-2Ev. Luke 1:26-33\s+2
+.br
+\s-2Com. petronilla\s+2
+
+
+.SH
+Iunius
+.LP
+
+.IP "1" 4
+angela-merici
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Cor 10:17-18; 11:1-2\s+2
+.br
+\s-2Ev. Matt 25:1-13.\s+2
+
+.IP "2" 4
+ef-time-after-pentecost-2-wednesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. 1 John 3:13-18.\s+2
+.br
+\s-2Ev. Luke 14:16-24.\s+2
+.br
+\s-2Com. sts-marcellinus-peter-erasmus\s+2
+
+.IP "3" 4
+ef-time-after-pentecost-2-thursday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. 1 John 3:13-18.\s+2
+.br
+\s-2Ev. Luke 14:16-24.\s+2
+
+.IP "4" 4
+ef-sacred-heart
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Eph 3:8-12, 14-19\s+2
+.br
+\s-2Ev. John 19:31-37\s+2
+
+.IP "5" 4
+boniface
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Ecclus 44:1-15\s+2
+.br
+\s-2Ev. Matt 5:1-12\s+2
+
+.IP "6" 4
+ef-time-after-pentecost-sunday-3
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. 1 Pet. 5:6-11\s+2
+.br
+\s-2Ev. Luke 15:1-10\s+2
+
+.IP "7" 4
+ef-time-after-pentecost-3-monday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. 1 Pet. 5:6-11\s+2
+.br
+\s-2Ev. Luke 15:1-10\s+2
+
+.IP "8" 4
+ef-time-after-pentecost-3-tuesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. 1 Pet. 5:6-11\s+2
+.br
+\s-2Ev. Luke 15:1-10\s+2
+
+.IP "9" 4
+ef-time-after-pentecost-3-wednesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. 1 Pet. 5:6-11\s+2
+.br
+\s-2Ev. Luke 15:1-10\s+2
+.br
+\s-2Com. sts-primus-felicianus\s+2
+
+.IP "10" 4
+margaret-of-scotland
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Prov 31:10-31\s+2
+.br
+\s-2Ev. Matt 13:44-52.\s+2
+
+.IP "11" 4
+barnabas
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Acts 11:21-26; 13:1-3\s+2
+.br
+\s-2Ev. Matt 10:16-22\s+2
+
+.IP "12" 4
+john-of-san-fecundo
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+.br
+\s-2Com. basilidus\s+2
+
+.IP "13" 4
+ef-time-after-pentecost-sunday-4
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Rom 8:18-23\s+2
+.br
+\s-2Ev. Luke 5:1-11\s+2
+
+.IP "14" 4
+basil-the-great
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Luke 14:26-35\s+2
+
+.IP "15" 4
+ef-time-after-pentecost-4-tuesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Rom 8:18-23\s+2
+.br
+\s-2Ev. Luke 5:1-11\s+2
+.br
+\s-2Com. vitus\s+2
+
+.IP "16" 4
+ef-time-after-pentecost-4-wednesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Rom 8:18-23\s+2
+.br
+\s-2Ev. Luke 5:1-11\s+2
+
+.IP "17" 4
+gregory-barbarigo
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 44:16-27; 45:3-20\s+2
+.br
+\s-2Ev. Matt 25:14-23\s+2
+
+.IP "18" 4
+ephrem-of-syria
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+.br
+\s-2Com. marcus-and-marcellianus\s+2
+
+.IP "19" 4
+julia-of-falconieri
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Cor 10:17-18; 11:1-2\s+2
+.br
+\s-2Ev. Matt 25:1-13.\s+2
+.br
+\s-2Com. sts-gervasius-and-protasius\s+2
+
+.IP "20" 4
+ef-time-after-pentecost-sunday-5
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. 1 Pet 3:8-15.\s+2
+.br
+\s-2Ev. Matt 5:20-24.\s+2
+
+.IP "21" 4
+aloysius-gongzaga
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Matt 22:29-40\s+2
+
+.IP "22" 4
+paulinus-of-nola
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Cor. 8:9-15\s+2
+.br
+\s-2Ev. Luke 12:32-34\s+2
+
+.IP "23" 4
+vigil-of-the-nativity-of-st-john-the-baptist
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. Jer 1:4-10\s+2
+.br
+\s-2Ev. Luke 1:5-17\s+2
+
+.IP "24" 4
+nativity-of-st-john-the-baptist
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Isa 49:1-3, 5-7.\s+2
+.br
+\s-2Ev. Luke 1:57-68\s+2
+
+.IP "25" 4
+william
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 45:1-6\s+2
+.br
+\s-2Ev. Matt 19:27-29.\s+2
+
+.IP "26" 4
+sts-john-paul
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Eccli 44:10-15\s+2
+.br
+\s-2Ev. Luke 12:1-8\s+2
+
+.IP "27" 4
+ef-time-after-pentecost-sunday-6
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Rom 6:3-11.\s+2
+.br
+\s-2Ev. Mark 8:1-9\s+2
+
+.IP "28" 4
+vigil-of-sts-peter-paul
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. Acts 3:1-10\s+2
+.br
+\s-2Ev. John 21:15-19\s+2
+
+.IP "29" 4
+sts-peter-paul
+.br
+\s-2class-1 \(bu red\s+2
+.br
+\s-2Ep. Acts 12:1-11\s+2
+.br
+\s-2Ev. Matt 16:13-19\s+2
+
+.IP "30" 4
+in-commemoratione-sancti-pauli-apostoli
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Gal 1:11-20\s+2
+.br
+\s-2Ev. Matt 10:16-22\s+2
+.br
+\s-2Com. commemoration-of-st-peter\s+2
+
+
+.SH
+Iulius
+.LP
+
+.IP "1" 4
+precious-blood-of-our-lord-jesus-christ
+.br
+\s-2class-1 \(bu red\s+2
+.br
+\s-2Ep. Heb 9:11-15.\s+2
+.br
+\s-2Ev. John 19:30-35\s+2
+
+.IP "2" 4
+visitation-of-the-blessed-virgin-mary
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Song 2:8-14\s+2
+.br
+\s-2Ev. Luke 1:39-47\s+2
+.br
+\s-2Com. processus-and-martinian\s+2
+
+.IP "3" 4
+irenaeus
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 2 Tim. 3:14-17; 4:1-5\s+2
+.br
+\s-2Ev. Matt 10:28-33\s+2
+
+.IP "4" 4
+ef-time-after-pentecost-sunday-7
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Rom 6:19-23\s+2
+.br
+\s-2Ev. Matt 7:15-21\s+2
+
+.IP "5" 4
+anthony-mary-zaccariah
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Tim. 4:8-16\s+2
+.br
+\s-2Ev. Mark 10:15-21\s+2
+
+.IP "6" 4
+ef-time-after-pentecost-7-tuesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Rom 6:19-23\s+2
+.br
+\s-2Ev. Matt 7:15-21\s+2
+
+.IP "7" 4
+sts-cyril-methodius
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Heb 7:23-27\s+2
+.br
+\s-2Ev. Luke 10:1-9\s+2
+
+.IP "8" 4
+elizabeth-of-portugal
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Prov 31:10-31\s+2
+.br
+\s-2Ev. Matt 13:44-52.\s+2
+
+.IP "9" 4
+ef-time-after-pentecost-7-friday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Rom 6:19-23\s+2
+.br
+\s-2Ev. Matt 7:15-21\s+2
+
+.IP "10" 4
+seven-holy-brothers-and-sts-rufina-secunda
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Prov 31:10-31\s+2
+.br
+\s-2Ev. Matt 12:46-50\s+2
+
+.IP "11" 4
+ef-time-after-pentecost-sunday-8
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Rom 8:12-17\s+2
+.br
+\s-2Ev. Luke 16:1-9\s+2
+
+.IP "12" 4
+john-gualbert
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 45:1-6\s+2
+.br
+\s-2Ev. Matt 5:43-48\s+2
+.br
+\s-2Com. naboris-et-felicis\s+2
+
+.IP "13" 4
+ef-time-after-pentecost-8-tuesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Rom 8:12-17\s+2
+.br
+\s-2Ev. Luke 16:1-9\s+2
+
+.IP "14" 4
+bonaventure
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+
+.IP "15" 4
+henry-the-emperor
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+
+.IP "16" 4
+ef-time-after-pentecost-8-friday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Rom 8:12-17\s+2
+.br
+\s-2Ev. Luke 16:1-9\s+2
+.br
+\s-2Com. our-lady-of-mt-carmel\s+2
+
+.IP "17" 4
+Officium sanctae Mariae in sabbato
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 24:14-16\s+2
+.br
+\s-2Ev. Luke 11:27-28\s+2
+.br
+\s-2Com. alexis\s+2
+
+.IP "18" 4
+ef-time-after-pentecost-sunday-9
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. 1 Cor. 10:6-13\s+2
+.br
+\s-2Ev. Luke 19:41-47\s+2
+
+.IP "19" 4
+vincent-de-paul
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Cor. 4:9-14\s+2
+.br
+\s-2Ev. Luke 10:1-9\s+2
+
+.IP "20" 4
+jerome-emiliani
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Isa 58:7-11\s+2
+.br
+\s-2Ev. Matt 19:13-21\s+2
+.br
+\s-2Com. margaret\s+2
+
+.IP "21" 4
+laurence-of-brindisi
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+.br
+\s-2Com. praxedis-virginis\s+2
+
+.IP "22" 4
+mary-magdalene
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Song 3:2-5; 8:6-7\s+2
+.br
+\s-2Ev. Luke 7:36-50\s+2
+
+.IP "23" 4
+apollinaris
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 1 Pet. 5:1-11\s+2
+.br
+\s-2Ev. Luke 22:24-30\s+2
+.br
+\s-2Com. liborii\s+2
+
+.IP "24" 4
+Officium sanctae Mariae in sabbato
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 24:14-16\s+2
+.br
+\s-2Ev. Luke 11:27-28\s+2
+.br
+\s-2Com. christina\s+2
+
+.IP "25" 4
+ef-time-after-pentecost-sunday-10
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. 1 Cor. 12:2-11\s+2
+.br
+\s-2Ev. Luke 18:9-14\s+2
+.br
+\s-2Com. james-the-greater\s+2
+
+.IP "26" 4
+anne-mother-of-the-blessed-virgin
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Prov 31:10-31\s+2
+.br
+\s-2Ev. Matt 13:44-52.\s+2
+
+.IP "27" 4
+ef-time-after-pentecost-10-tuesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. 1 Cor. 12:2-11\s+2
+.br
+\s-2Ev. Luke 18:9-14\s+2
+.br
+\s-2Com. pantaleon\s+2
+
+.IP "28" 4
+sts-nazarius-celsus-st-victor-i-st-innocent-i
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Wis 10:17-20\s+2
+.br
+\s-2Ev. Luke 21:9-19\s+2
+
+.IP "29" 4
+martha
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Cor 10:17-18; 11:1-2\s+2
+.br
+\s-2Ev. Luke 10:38-42\s+2
+.br
+\s-2Com. felicis-simplicii-faustini-et-beatricis\s+2
+
+.IP "30" 4
+ef-time-after-pentecost-10-friday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. 1 Cor. 12:2-11\s+2
+.br
+\s-2Ev. Luke 18:9-14\s+2
+.br
+\s-2Com. sts-abdon-sennen\s+2
+
+.IP "31" 4
+ignatius-loyola
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim. 2:8-10; 3:10-12.\s+2
+.br
+\s-2Ev. Luke 10:1-9\s+2
+
+
+.SH
+Augustus
+.LP
+
+.IP "1" 4
+ef-time-after-pentecost-sunday-11
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. 1 Cor. 15:1-10\s+2
+.br
+\s-2Ev. Mark 7:31-37\s+2
+
+.IP "2" 4
+alphonsus-liguori
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim. 2:1-7\s+2
+.br
+\s-2Ev. Luke 10:1-9\s+2
+.br
+\s-2Com. stephen-i-pope-and-martyr\s+2
+
+.IP "3" 4
+ef-time-after-pentecost-11-tuesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. 1 Cor. 15:1-10\s+2
+.br
+\s-2Ev. Mark 7:31-37\s+2
+
+.IP "4" 4
+dominic
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim. 4:1-8\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+
+.IP "5" 4
+dedication-of-the-basilica-of-st-mary-major
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 24:14-16\s+2
+.br
+\s-2Ev. Luke 11:27-28\s+2
+
+.IP "6" 4
+transfiguration-of-our-lord
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. 2 Pet. 1:16-19\s+2
+.br
+\s-2Ev. Matt 17:1-9\s+2
+.br
+\s-2Com. pope-sixtus-ii-felicissimus-and-agapitus-martyrs\s+2
+
+.IP "7" 4
+cajetan
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Matt 6:24-33\s+2
+.br
+\s-2Com. donatus\s+2
+
+.IP "8" 4
+ef-time-after-pentecost-sunday-12
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. 2 Cor. 3:4-9\s+2
+.br
+\s-2Ev. Luke 10:23-37\s+2
+
+.IP "9" 4
+vigil-of-st-lawrence
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Ecclus 51:1-8, 12\s+2
+.br
+\s-2Ev. Matt 16:24-27\s+2
+.br
+\s-2Com. romanus\s+2
+
+.IP "10" 4
+lawrence
+.br
+\s-2class-2 \(bu red\s+2
+.br
+\s-2Ep. 2 Cor. 9:6-10\s+2
+.br
+\s-2Ev. John 12:24-26\s+2
+
+.IP "11" 4
+ef-time-after-pentecost-12-wednesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. 2 Cor. 3:4-9\s+2
+.br
+\s-2Ev. Luke 10:23-37\s+2
+.br
+\s-2Com. sts-tiburtius-susanna\s+2
+
+.IP "12" 4
+clare
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Cor 10:17-18; 11:1-2\s+2
+.br
+\s-2Ev. Matt 25:1-13.\s+2
+
+.IP "13" 4
+ef-time-after-pentecost-12-friday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. 2 Cor. 3:4-9\s+2
+.br
+\s-2Ev. Luke 10:23-37\s+2
+.br
+\s-2Com. sts-hippolytus-cassian\s+2
+
+.IP "14" 4
+vigil-of-the-assumption
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. Sir 24:23-31\s+2
+.br
+\s-2Ev. Luke 11:27-28\s+2
+.br
+\s-2Com. eusebius-confessor\s+2
+
+.IP "15" 4
+assumption-of-the-blessed-virgin-mary
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Judith 13:22-25; 15:10\s+2
+.br
+\s-2Ev. Luke 1:41-50\s+2
+.br
+\s-2Com. ef-time-after-pentecost-sunday-13\s+2
+
+.IP "16" 4
+joachim-father-of-the-blessed-virgin
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Matt 1:1-16\s+2
+
+.IP "17" 4
+hyacinth
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+
+.IP "18" 4
+ef-time-after-pentecost-13-wednesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Gal 3:16-22\s+2
+.br
+\s-2Ev. Luke 17:11-19\s+2
+.br
+\s-2Com. agapitus\s+2
+
+.IP "19" 4
+john-eudes
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+
+.IP "20" 4
+bernard-of-clairvaux
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 39:6-14\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+
+.IP "21" 4
+jane-frances-de-chantal
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Prov 31:10-31\s+2
+.br
+\s-2Ev. Matt 13:44-52.\s+2
+
+.IP "22" 4
+ef-time-after-pentecost-sunday-14
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Gal 5:16-24\s+2
+.br
+\s-2Ev. Matt 6:24-33\s+2
+.br
+\s-2Com. immaculate-heart-of-mary\s+2
+
+.IP "23" 4
+philip-benizi
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Cor. 4:9-14\s+2
+.br
+\s-2Ev. Luke 12:32-34\s+2
+
+.IP "24" 4
+bartholomew
+.br
+\s-2class-2 \(bu red\s+2
+.br
+\s-2Ep. 1 Cor. 12:27-31\s+2
+.br
+\s-2Ev. Luke 6:12-19\s+2
+
+.IP "25" 4
+louis-ix
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Wis 10:10-14\s+2
+.br
+\s-2Ev. Luke 19:12-26\s+2
+
+.IP "26" 4
+ef-time-after-pentecost-14-thursday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Gal 5:16-24\s+2
+.br
+\s-2Ev. Matt 6:24-33\s+2
+.br
+\s-2Com. zephyrinus\s+2
+
+.IP "27" 4
+joseph-calasance
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Wis 10:10-14\s+2
+.br
+\s-2Ev. Matt 18:1-5\s+2
+
+.IP "28" 4
+augustine
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+.br
+\s-2Com. hermes\s+2
+
+.IP "29" 4
+ef-time-after-pentecost-sunday-15
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Gal 5:25-26; 6:1-10\s+2
+.br
+\s-2Ev. Luke 7:11-16\s+2
+
+.IP "30" 4
+rose-of-lima
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Cor 10:17-18; 11:1-2\s+2
+.br
+\s-2Ev. Matt 25:1-13.\s+2
+.br
+\s-2Com. sts-felix-and-adauctus\s+2
+
+.IP "31" 4
+raymond-nonnatus
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+
+
+.SH
+September
+.LP
+
+.IP "1" 4
+ef-time-after-pentecost-15-wednesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Gal 5:25-26; 6:1-10\s+2
+.br
+\s-2Ev. Luke 7:11-16\s+2
+.br
+\s-2Com. giles\s+2
+.br
+\s-2Com. twelve-holy-brothers-martyrs\s+2
+
+.IP "2" 4
+stephen-of-hungary
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Luke 19:12-26\s+2
+
+.IP "3" 4
+pius-x
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Thess. 2:2-8\s+2
+.br
+\s-2Ev. John 21:15-17\s+2
+
+.IP "4" 4
+Officium sanctae Mariae in sabbato
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 24:14-16\s+2
+.br
+\s-2Ev. Luke 11:27-28\s+2
+
+.IP "5" 4
+ef-time-after-pentecost-sunday-16
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Eph 3:13-21\s+2
+.br
+\s-2Ev. Luke 14:1-11\s+2
+
+.IP "6" 4
+ef-time-after-pentecost-16-monday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Eph 3:13-21\s+2
+.br
+\s-2Ev. Luke 14:1-11\s+2
+
+.IP "7" 4
+ef-time-after-pentecost-16-tuesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Eph 3:13-21\s+2
+.br
+\s-2Ev. Luke 14:1-11\s+2
+
+.IP "8" 4
+nativity-of-the-blessed-virgin-mary
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Prov 8:22-35\s+2
+.br
+\s-2Ev. Matt 1:1-16\s+2
+.br
+\s-2Com. hadriani\s+2
+
+.IP "9" 4
+ef-time-after-pentecost-16-thursday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Eph 3:13-21\s+2
+.br
+\s-2Ev. Luke 14:1-11\s+2
+.br
+\s-2Com. gorgonius\s+2
+
+.IP "10" 4
+nicholas-of-tolentino
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Cor. 4:9-14\s+2
+.br
+\s-2Ev. Luke 12:32-34\s+2
+
+.IP "11" 4
+Officium sanctae Mariae in sabbato
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 24:14-16\s+2
+.br
+\s-2Ev. Luke 11:27-28\s+2
+.br
+\s-2Com. sts-protus-hyacinth\s+2
+
+.IP "12" 4
+ef-time-after-pentecost-sunday-17
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Eph 4:1-6\s+2
+.br
+\s-2Ev. Matt 22:34-46\s+2
+
+.IP "13" 4
+ef-time-after-pentecost-17-monday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Eph 4:1-6\s+2
+.br
+\s-2Ev. Matt 22:34-46\s+2
+
+.IP "14" 4
+exaltation-of-the-holy-cross
+.br
+\s-2class-2 \(bu red\s+2
+.br
+\s-2Ep. Phil 2:5-11\s+2
+.br
+\s-2Ev. John 12:31-36\s+2
+
+.IP "15" 4
+seven-sorrows-of-the-blessed-virgin-mary
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Judith 13:22; 13:23-25\s+2
+.br
+\s-2Ev. John 19:25-27\s+2
+.br
+\s-2Com. nicomedes\s+2
+
+.IP "16" 4
+sts-cornelius-cyprian
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Wis 3:1-8\s+2
+.br
+\s-2Ev. Luke 21:9-19\s+2
+.br
+\s-2Com. sts-euphemia-lucy-and-geminianus\s+2
+
+.IP "17" 4
+ef-time-after-pentecost-17-friday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Eph 4:1-6\s+2
+.br
+\s-2Ev. Matt 22:34-46\s+2
+.br
+\s-2Com. stigmata-of-st-francis\s+2
+
+.IP "18" 4
+joseph-of-cupertino
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Cor 13:1-8\s+2
+.br
+\s-2Ev. Matt 22:1-14\s+2
+
+.IP "19" 4
+ef-time-after-pentecost-sunday-18
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. 1 Cor. 1:4-8\s+2
+.br
+\s-2Ev. Matt 9:1-8\s+2
+
+.IP "20" 4
+ef-time-after-pentecost-18-monday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. 1 Cor. 1:4-8\s+2
+.br
+\s-2Ev. Matt 9:1-8\s+2
+.br
+\s-2Com. sts-eustace-companions\s+2
+
+.IP "21" 4
+matthew
+.br
+\s-2class-2 \(bu red\s+2
+.br
+\s-2Ep. Ezek 1:10-14\s+2
+.br
+\s-2Ev. Matt 9:9-13\s+2
+
+.IP "22" 4
+ef-september-ember-wed
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. 2 Esd. 8:1-10\s+2
+.br
+\s-2Ev. Mark 9:16-28\s+2
+.br
+\s-2Com. thomas-of-villanova\s+2
+
+.IP "23" 4
+linus
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 1 Pet 5:1-4; 5:10-11.\s+2
+.br
+\s-2Ev. Matt 16:13-19\s+2
+.br
+\s-2Com. thecla\s+2
+
+.IP "24" 4
+ef-september-ember-fri
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. Osee 14:2-10\s+2
+.br
+\s-2Ev. Luke 7:36-50\s+2
+.br
+\s-2Com. our-lady-of-ransom\s+2
+
+.IP "25" 4
+ef-september-ember-sat
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. Heb 9:2-12\s+2
+.br
+\s-2Ev. Luke 13:6-17\s+2
+
+.IP "26" 4
+ef-time-after-pentecost-sunday-19
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Eph 4:23-28\s+2
+.br
+\s-2Ev. Matt 22:1-14\s+2
+
+.IP "27" 4
+sts-cosmas-damian
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Wis 5:16-20\s+2
+.br
+\s-2Ev. Luke 6:17-23\s+2
+
+.IP "28" 4
+wenceslaus
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Wis 10:10-14\s+2
+.br
+\s-2Ev. Matt 10:34-42\s+2
+
+.IP "29" 4
+dedication-of-st-michael-the-archangel
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Rev 1:1-5\s+2
+.br
+\s-2Ev. Matt 18:1-10\s+2
+
+.IP "30" 4
+jerome
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+
+
+.SH
+October
+.LP
+
+.IP "1" 4
+ef-time-after-pentecost-19-friday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Eph 4:23-28\s+2
+.br
+\s-2Ev. Matt 22:1-14\s+2
+.br
+\s-2Com. remigius\s+2
+
+.IP "2" 4
+holy-guardian-angels
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Exod 23:20-23\s+2
+.br
+\s-2Ev. Matt 18:1-10\s+2
+
+.IP "3" 4
+ef-time-after-pentecost-sunday-20
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Eph 5:15-21\s+2
+.br
+\s-2Ev. John 4:46-53\s+2
+
+.IP "4" 4
+francis-of-assisi
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Gal 6:14-18\s+2
+.br
+\s-2Ev. Matt 11:25-30\s+2
+
+.IP "5" 4
+ef-time-after-pentecost-20-tuesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Eph 5:15-21\s+2
+.br
+\s-2Ev. John 4:46-53\s+2
+.br
+\s-2Com. placid-companions\s+2
+
+.IP "6" 4
+bruno
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+
+.IP "7" 4
+our-lady-of-the-rosary
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Prov 8:22-24, 32-35.\s+2
+.br
+\s-2Ev. Luke 1:26-38\s+2
+.br
+\s-2Com. mark-i\s+2
+
+.IP "8" 4
+bridget-of-sweden
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Tim. 5:3-10.\s+2
+.br
+\s-2Ev. Matt 13:44-52.\s+2
+.br
+\s-2Com. sergio-baccho-marcello-and-apulejo-martyrs\s+2
+
+.IP "9" 4
+john-leonardi
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Cor 4:1-6; 4:15-18\s+2
+.br
+\s-2Ev. Luke 10:1-9\s+2
+.br
+\s-2Com. dionysius-and-companions\s+2
+
+.IP "10" 4
+ef-time-after-pentecost-sunday-21
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Eph 6:10-17\s+2
+.br
+\s-2Ev. Matt 18:23-35\s+2
+
+.IP "11" 4
+maternity-of-the-blessed-virgin-mary
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Sir 24:23-31\s+2
+.br
+\s-2Ev. Luke 2:43-51\s+2
+
+.IP "12" 4
+ef-time-after-pentecost-21-tuesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Eph 6:10-17\s+2
+.br
+\s-2Ev. Matt 18:23-35\s+2
+
+.IP "13" 4
+edward
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+
+.IP "14" 4
+callistus-i
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 1 Pet 5:1-4; 5:10-11.\s+2
+.br
+\s-2Ev. Matt 16:13-19\s+2
+
+.IP "15" 4
+teresa-of-avila
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Cor 10:17-18; 11:1-2\s+2
+.br
+\s-2Ev. Matt 25:1-13.\s+2
+
+.IP "16" 4
+hedwig
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Prov 31:10-31\s+2
+.br
+\s-2Ev. Matt 13:44-52.\s+2
+
+.IP "17" 4
+ef-time-after-pentecost-sunday-22
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Phil 1:6-11\s+2
+.br
+\s-2Ev. Matt 22:15-21\s+2
+
+.IP "18" 4
+luke-the-evangelist
+.br
+\s-2class-2 \(bu red\s+2
+.br
+\s-2Ep. 2 Cor. 8:16-24\s+2
+.br
+\s-2Ev. Luke 10:1-9\s+2
+
+.IP "19" 4
+peter-of-alcantara
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Phil 3:7-12\s+2
+.br
+\s-2Ev. Luke 12:32-34\s+2
+
+.IP "20" 4
+john-cantius
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. James 2:12-17\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+
+.IP "21" 4
+ef-time-after-pentecost-22-thursday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Phil 1:6-11\s+2
+.br
+\s-2Ev. Matt 22:15-21\s+2
+.br
+\s-2Com. hilarion\s+2
+.br
+\s-2Com. ursula-and-companions\s+2
+
+.IP "22" 4
+ef-time-after-pentecost-22-friday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Phil 1:6-11\s+2
+.br
+\s-2Ev. Matt 22:15-21\s+2
+
+.IP "23" 4
+anthony-mary-claret
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Heb 7:23-27\s+2
+.br
+\s-2Ev. Matt 24:42-47\s+2
+
+.IP "24" 4
+ef-time-after-pentecost-sunday-23
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Phil 3:17-21; 4:1-3\s+2
+.br
+\s-2Ev. Matt 9:18-26\s+2
+
+.IP "25" 4
+ef-time-after-pentecost-23-monday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Phil 3:17-21; 4:1-3\s+2
+.br
+\s-2Ev. Matt 9:18-26\s+2
+.br
+\s-2Com. sts-chrysanthus-daria\s+2
+
+.IP "26" 4
+ef-time-after-pentecost-23-tuesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Phil 3:17-21; 4:1-3\s+2
+.br
+\s-2Ev. Matt 9:18-26\s+2
+.br
+\s-2Com. evaristus\s+2
+
+.IP "27" 4
+ef-time-after-pentecost-23-wednesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Phil 3:17-21; 4:1-3\s+2
+.br
+\s-2Ev. Matt 9:18-26\s+2
+
+.IP "28" 4
+sts-simon-jude
+.br
+\s-2class-2 \(bu red\s+2
+.br
+\s-2Ep. Eph. 4:7-13.\s+2
+.br
+\s-2Ev. John 15:17-25\s+2
+
+.IP "29" 4
+ef-time-after-pentecost-23-friday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Phil 3:17-21; 4:1-3\s+2
+.br
+\s-2Ev. Matt 9:18-26\s+2
+
+.IP "30" 4
+Officium sanctae Mariae in sabbato
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 24:14-16\s+2
+.br
+\s-2Ev. Luke 11:27-28\s+2
+
+.IP "31" 4
+ef-christ-the-king
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Col 1:12-20.\s+2
+.br
+\s-2Ev. John 18:33-37\s+2
+
+
+.SH
+November
+.LP
+
+.IP "1" 4
+all-saints
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Apoc 7:2-12\s+2
+.br
+\s-2Ev. Matt 5:1-12\s+2
+
+.IP "2" 4
+commemoration-of-all-souls
+.br
+\s-2class-1 \(bu black\s+2
+.br
+\s-2Ep. 1 Cor. 15:51-57\s+2
+.br
+\s-2Ev. John 5:25-29\s+2
+
+.IP "3" 4
+ef-time-after-pentecost-24-wednesday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Col 1:12-20.\s+2
+.br
+\s-2Ev. John 18:33-37\s+2
+
+.IP "4" 4
+charles-borromeo
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 44:16-27; 45:3-20\s+2
+.br
+\s-2Ev. Matt 25:14-23\s+2
+.br
+\s-2Com. sts-vitalis-and-agricola-martyrs\s+2
+
+.IP "5" 4
+ef-time-after-pentecost-24-friday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Col 1:12-20.\s+2
+.br
+\s-2Ev. John 18:33-37\s+2
+
+.IP "6" 4
+Officium sanctae Mariae in sabbato
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 24:14-16\s+2
+.br
+\s-2Ev. Luke 11:27-28\s+2
+
+.IP "7" 4
+ef-time-after-epiphany-sunday-5
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Col 3:12-17\s+2
+.br
+\s-2Ev. Matt 13:24-30\s+2
+
+.IP "8" 4
+ef-time-after-pentecost-25-monday
+.br
+\s-2class-4 \(bu green\s+2
+.br
+\s-2Ep. Col 3:12-17\s+2
+.br
+\s-2Ev. Matt 13:24-30\s+2
+.br
+\s-2Com. four-holy-crowned-martyrs\s+2
+
+.IP "9" 4
+dedication-of-the-archbasilica-of-our-holy-savior
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Rev 21:2-5\s+2
+.br
+\s-2Ev. Luke 19:1-10\s+2
+.br
+\s-2Com. theodore\s+2
+
+.IP "10" 4
+andrew-avellino
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 31:8-11\s+2
+.br
+\s-2Ev. Luke 12:35-40\s+2
+.br
+\s-2Com. sts-tryphonis-respicii-et-nymphae\s+2
+
+.IP "11" 4
+martin-of-tours
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 44:16-27; 45:3-20\s+2
+.br
+\s-2Ev. Luke 11:33-36\s+2
+.br
+\s-2Com. menna\s+2
+
+.IP "12" 4
+martin-i
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 1 Pet 5:1-4; 5:10-11.\s+2
+.br
+\s-2Ev. Matt 16:13-19\s+2
+
+.IP "13" 4
+didacus
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Cor 4:9-14\s+2
+.br
+\s-2Ev. Luke 12:32-34\s+2
+
+.IP "14" 4
+ef-time-after-epiphany-sunday-6
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. 1 Thess 1:2-10\s+2
+.br
+\s-2Ev. Matt 13:31-35\s+2
+
+.IP "15" 4
+albert-the-great
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+
+.IP "16" 4
+gertrude-the-great
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Cor 10:17-18; 11:1-2\s+2
+.br
+\s-2Ev. Matt 25:1-13.\s+2
+
+.IP "17" 4
+gregory-the-wonderworker
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Sir 44:16-27; 45:3-20\s+2
+.br
+\s-2Ev. Mark 11:22-24\s+2
+
+.IP "18" 4
+dedication-of-the-basilicas-of-sts-peter-paul
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Rev 21:2-5\s+2
+.br
+\s-2Ev. Luke 19:1-10\s+2
+
+.IP "19" 4
+elizabeth-of-hungary
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Prov 31:10-31\s+2
+.br
+\s-2Ev. Matt 13:44-52.\s+2
+.br
+\s-2Com. pontian\s+2
+
+.IP "20" 4
+felix-of-valois
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Cor. 4:9-14\s+2
+.br
+\s-2Ev. Luke 12:32-34\s+2
+
+.IP "21" 4
+ef-time-after-pentecost-sunday-24
+.br
+\s-2class-2 \(bu green\s+2
+.br
+\s-2Ep. Col 1:9-14\s+2
+.br
+\s-2Ev. Matt 24:15-35\s+2
+
+.IP "22" 4
+cecilia
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Sir 51:13-17.\s+2
+.br
+\s-2Ev. Matt 25:1-13.\s+2
+
+.IP "23" 4
+clement-i
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Phil 3:17-21; 4:1-3\s+2
+.br
+\s-2Ev. Matt 16:13-19\s+2
+.br
+\s-2Com. felicity\s+2
+
+.IP "24" 4
+john-of-the-cross
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+.br
+\s-2Com. chrysogonus\s+2
+
+.IP "25" 4
+catherine-of-alexandria
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Sir 51:1-8; 51:12\s+2
+.br
+\s-2Ev. Matt 25:1-13.\s+2
+
+.IP "26" 4
+sylvester
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 45:1-6\s+2
+.br
+\s-2Ev. Matt 19:27-29.\s+2
+.br
+\s-2Com. peter-of-alexandria\s+2
+
+.IP "27" 4
+Officium sanctae Mariae in sabbato
+.br
+\s-2class-4 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 24:14-16\s+2
+.br
+\s-2Ev. Luke 11:27-28\s+2
+
+.IP "28" 4
+ef-advent-sunday-1
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. Rom 13:11-14\s+2
+.br
+\s-2Ev. Luke 21:25-33\s+2
+
+.IP "29" 4
+ef-advent-1-monday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Rom 13:11-14\s+2
+.br
+\s-2Ev. Luke 21:25-33\s+2
+.br
+\s-2Com. saturninus\s+2
+
+.IP "30" 4
+andrew
+.br
+\s-2class-2 \(bu red\s+2
+.br
+\s-2Ep. Rom 10:10-18\s+2
+.br
+\s-2Ev. Matt 4:18-22\s+2
+.br
+\s-2Com. ef-advent-1-tuesday\s+2
+
+
+.SH
+December
+.LP
+
+.IP "1" 4
+ef-advent-1-wednesday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Rom 13:11-14\s+2
+.br
+\s-2Ev. Luke 21:25-33\s+2
+
+.IP "2" 4
+vivian
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. Sir 51:13-17.\s+2
+.br
+\s-2Ev. Matt 13:44-52.\s+2
+.br
+\s-2Com. ef-advent-1-thursday\s+2
+
+.IP "3" 4
+francis-xavier
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Rom 10:10-18\s+2
+.br
+\s-2Ev. Mark 16:15-18\s+2
+.br
+\s-2Com. ef-advent-1-friday\s+2
+
+.IP "4" 4
+peter-chrysologus
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+.br
+\s-2Com. ef-advent-1-saturday\s+2
+.br
+\s-2Com. barbara\s+2
+
+.IP "5" 4
+ef-advent-sunday-2
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. Rom 15:4-13\s+2
+.br
+\s-2Ev. Matt 11:2-10\s+2
+
+.IP "6" 4
+nicholas
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. Heb 13:7-17\s+2
+.br
+\s-2Ev. Matt 25:14-23\s+2
+.br
+\s-2Com. ef-advent-2-monday\s+2
+
+.IP "7" 4
+ambrose
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 2 Tim 4:1-8\s+2
+.br
+\s-2Ev. Matt 5:13-19\s+2
+.br
+\s-2Com. ef-advent-2-tuesday\s+2
+
+.IP "8" 4
+immaculate-conception-of-the-blessed-virgin-mary
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Prov 8:22-35\s+2
+.br
+\s-2Ev. Luke 1:26-28\s+2
+.br
+\s-2Com. ef-advent-2-wednesday\s+2
+
+.IP "9" 4
+ef-advent-2-thursday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Rom 15:4-13\s+2
+.br
+\s-2Ev. Matt 11:2-10\s+2
+
+.IP "10" 4
+ef-advent-2-friday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Rom 15:4-13\s+2
+.br
+\s-2Ev. Matt 11:2-10\s+2
+.br
+\s-2Com. melchiades\s+2
+
+.IP "11" 4
+damasus-i
+.br
+\s-2class-3 \(bu white\s+2
+.br
+\s-2Ep. 1 Pet 5:1-4; 5:10-11.\s+2
+.br
+\s-2Ev. Matt 16:13-19\s+2
+.br
+\s-2Com. ef-advent-2-saturday\s+2
+
+.IP "12" 4
+ef-advent-sunday-3
+.br
+\s-2class-1 \(bu rose\s+2
+.br
+\s-2Ep. Phil 4:4-7\s+2
+.br
+\s-2Ev. John 1:19-28\s+2
+
+.IP "13" 4
+lucy
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 2 Cor 10:17-18; 11:1-2\s+2
+.br
+\s-2Ev. Matt 13:44-52.\s+2
+.br
+\s-2Com. ef-advent-3-monday\s+2
+
+.IP "14" 4
+ef-advent-3-tuesday
+.br
+\s-2class-3 \(bu violet\s+2
+.br
+\s-2Ep. Phil 4:4-7\s+2
+.br
+\s-2Ev. John 1:19-28\s+2
+
+.IP "15" 4
+ef-advent-ember-wed
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. Isa 7:10-15\s+2
+.br
+\s-2Ev. Luke 1:26-38\s+2
+
+.IP "16" 4
+eusebius
+.br
+\s-2class-3 \(bu red\s+2
+.br
+\s-2Ep. 2 Cor. 1:3-7\s+2
+.br
+\s-2Ev. Matt 16:24-27.\s+2
+.br
+\s-2Com. ef-advent-3-thursday\s+2
+
+.IP "17" 4
+ef-advent-ember-fri
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. Isa 11:1-5\s+2
+.br
+\s-2Ev. Luke 1:39-47\s+2
+
+.IP "18" 4
+ef-advent-ember-sat
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. 2 Thess 2:1-8\s+2
+.br
+\s-2Ev. Luke 3:1-6\s+2
+
+.IP "19" 4
+ef-advent-sunday-4
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. 1 Cor. 4:1-5\s+2
+.br
+\s-2Ev. Luke 3:1-6\s+2
+
+.IP "20" 4
+ef-advent-4-monday
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. 1 Cor. 4:1-5\s+2
+.br
+\s-2Ev. Luke 3:1-6\s+2
+
+.IP "21" 4
+thomas
+.br
+\s-2class-2 \(bu red\s+2
+.br
+\s-2Ep. Eph 2:19-22\s+2
+.br
+\s-2Ev. John 20:24-29\s+2
+.br
+\s-2Com. ef-advent-4-tuesday\s+2
+
+.IP "22" 4
+ef-advent-4-wednesday
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. 1 Cor. 4:1-5\s+2
+.br
+\s-2Ev. Luke 3:1-6\s+2
+
+.IP "23" 4
+ef-advent-4-thursday
+.br
+\s-2class-2 \(bu violet\s+2
+.br
+\s-2Ep. 1 Cor. 4:1-5\s+2
+.br
+\s-2Ev. Luke 3:1-6\s+2
+
+.IP "24" 4
+ef-nativity-vigil
+.br
+\s-2class-1 \(bu violet\s+2
+.br
+\s-2Ep. Rom 1:1-6\s+2
+.br
+\s-2Ev. Matt 1:18-21\s+2
+
+.IP "25" 4
+ef-nativity
+.br
+\s-2class-1 \(bu white\s+2
+.br
+\s-2Ep. Heb 1:1-12\s+2
+.br
+\s-2Ev. John 1:1-14\s+2
+
+.IP "26" 4
+ef-christmas-sunday-0
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Gal 4:1-7\s+2
+.br
+\s-2Ev. Luke 2:33-40\s+2
+.br
+\s-2Com. stephen\s+2
+
+.IP "27" 4
+john-the-evangelist
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Ecclus 15:1-6\s+2
+.br
+\s-2Ev. John 21:19-24\s+2
+.br
+\s-2Com. ef-nativity-octave-day-3\s+2
+
+.IP "28" 4
+holy-innocents
+.br
+\s-2class-2 \(bu red\s+2
+.br
+\s-2Ep. Apoc 14:1-5\s+2
+.br
+\s-2Ev. Matt 2:13-18\s+2
+.br
+\s-2Com. ef-nativity-octave-day-4\s+2
+
+.IP "29" 4
+ef-nativity-octave-day-5
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Titus 3:4-7\s+2
+.br
+\s-2Ev. Luke 2:15-20\s+2
+.br
+\s-2Com. thomas-becket\s+2
+
+.IP "30" 4
+ef-nativity-octave-day-6
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Titus 3:4-7\s+2
+.br
+\s-2Ev. Luke 2:15-20\s+2
+
+.IP "31" 4
+ef-nativity-octave-day-7
+.br
+\s-2class-2 \(bu white\s+2
+.br
+\s-2Ep. Titus 3:4-7\s+2
+.br
+\s-2Ev. Luke 2:15-20\s+2
+.br
+\s-2Com. silvester\s+2
+
+
diff --git a/test/golden/ordo-2027.tex b/test/golden/ordo-2027.tex
new file mode 100644
index 0000000..f5faa3d
--- /dev/null
+++ b/test/golden/ordo-2027.tex
@@ -0,0 +1,2737 @@
+% colitur ordo booklet -- LaTeX. flavour: latex
+% Build: colitur table --year 2027 --template ordo.tex > ordo.tex && pdflatex ordo.tex
+%
+% Day label falls back to the slug when the day carries no Latin name (most
+% temporal days, and most sanctoral entries, which are Latin-less in the
+% shipped data). The fallback is written as a name-section wrapping a plain
+% var and its inverse, deliberately NOT as a single dotted-path lookup
+% followed by its own inverse: a dotted lookup that misses climbs to the
+% enclosing scope for the WHOLE path, and the month object also carries a
+% same-named key one level up, so the naive form would render the month's
+% own Latin name on every day lacking one, and never fall back at all.
+\documentclass[10pt,twoside]{article}
+\usepackage[a5paper,margin=15mm]{geometry}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{fancyhdr}
+\pagestyle{fancy}
+\fancyhead[C]{ORDO 2027 \textperiodcentered\ ef}
+\setlength{\parindent}{0pt}
+\begin{document}
+
+\section*{ Ianuarius }
+
+\textbf{ 1 } \quad ef-circumcision\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Titus 2:11-15\quad\small Ev. Luke 2:21\\
+
+\medskip
+
+
+\textbf{ 2 } \quad Officium sanctae Mariae in sabbato\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Titus 3:4-7\quad\small Ev. Luke 2:15-20\\
+
+\medskip
+
+
+\textbf{ 3 } \quad Sanctissimi Nominis Iesu\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Acts 4:8-12\quad\small Ev. Luke 2:21\\
+
+\medskip
+
+
+\textbf{ 4 } \quad ef-christmas-1-monday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Titus 2:11-15\quad\small Ev. Luke 2:21\\
+
+\medskip
+
+
+\textbf{ 5 } \quad ef-christmas-1-tuesday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Titus 2:11-15\quad\small Ev. Luke 2:21\\
+\small Com. telesphorus-pope-and-martyr\\
+
+\medskip
+
+
+\textbf{ 6 } \quad ef-epiphany\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Isa 60:1-6\quad\small Ev. Matt 2:1-12\\
+
+\medskip
+
+
+\textbf{ 7 } \quad ef-christmas-2-thursday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Isa 60:1-6\quad\small Ev. Matt 2:1-12\\
+
+\medskip
+
+
+\textbf{ 8 } \quad ef-christmas-2-friday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Isa 60:1-6\quad\small Ev. Matt 2:1-12\\
+
+\medskip
+
+
+\textbf{ 9 } \quad Officium sanctae Mariae in sabbato\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Titus 3:4-7\quad\small Ev. Luke 2:15-20\\
+
+\medskip
+
+
+\textbf{ 10 } \quad Sanctae Familiae Iesu, Mariae, Ioseph\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Col 3:12-17\quad\small Ev. Luke 2:42-52\\
+
+\medskip
+
+
+\textbf{ 11 } \quad ef-time-after-epiphany-1-monday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Rom 12:1-5\quad\small Ev. Luke 2:42-52\\
+\small Com. hyginus-pope-and-martyr\\
+
+\medskip
+
+
+\textbf{ 12 } \quad ef-time-after-epiphany-1-tuesday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Rom 12:1-5\quad\small Ev. Luke 2:42-52\\
+
+\medskip
+
+
+\textbf{ 13 } \quad commemoration-of-the-baptism-of-the-lord\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Isa 60:1-6\quad\small Ev. John 1:29-34\\
+
+\medskip
+
+
+\textbf{ 14 } \quad hilary\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+\small Com. felicis\\
+
+\medskip
+
+
+\textbf{ 15 } \quad paul-the-first-hermit\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Phil 3:7-12\quad\small Ev. Matt 11:25-30\\
+\small Com. maur-abbot\\
+
+\medskip
+
+
+\textbf{ 16 } \quad marcellus-i\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 1 Pet 5:1-4; 5:10-11.\quad\small Ev. Matt 16:13-19\\
+
+\medskip
+
+
+\textbf{ 17 } \quad ef-time-after-epiphany-sunday-2\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Rom 12:6-16\quad\small Ev. John 2:1-11\\
+
+\medskip
+
+
+\textbf{ 18 } \quad ef-time-after-epiphany-2-monday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Rom 12:6-16\quad\small Ev. John 2:1-11\\
+\small Com. prisca\\
+
+\medskip
+
+
+\textbf{ 19 } \quad ef-time-after-epiphany-2-tuesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Rom 12:6-16\quad\small Ev. John 2:1-11\\
+\small Com. canute-martyr\\
+\small Com. sts-marius-martha-audifax-abachum\\
+
+\medskip
+
+
+\textbf{ 20 } \quad sts-fabian-sebastian\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Heb 11:33-39\quad\small Ev. Luke 6:17-23\\
+
+\medskip
+
+
+\textbf{ 21 } \quad agnes\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Sir 51:1-8; 51:12\quad\small Ev. Matt 25:1-13.\\
+
+\medskip
+
+
+\textbf{ 22 } \quad sts-vincent-anastasius\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Wis 3:1-8\quad\small Ev. Luke 21:9-19\\
+
+\medskip
+
+
+\textbf{ 23 } \quad raymond-of-pe-afort\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Luke 12:35-40\\
+\small Com. emerentiana\\
+
+\medskip
+
+
+\textbf{ 24 } \quad ef-septuagesima-sunday-1\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. 1 Cor. 9:24-27; 10:1-5\quad\small Ev. Matt 20:1-16\\
+
+\medskip
+
+
+\textbf{ 25 } \quad conversion-of-st-paul\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Acts 9:1-22\quad\small Ev. Matt 19:27-29.\\
+\small Com. peter\\
+
+\medskip
+
+
+\textbf{ 26 } \quad polycarp\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 1 John 3:10-16\quad\small Ev. Matt 10:26-32.\\
+
+\medskip
+
+
+\textbf{ 27 } \quad john-chrysostom\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+
+\medskip
+
+
+\textbf{ 28 } \quad peter-nolasco\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Cor. 4:9-14\quad\small Ev. Luke 12:32-34\\
+\small Com. agnes-secundo\\
+
+\medskip
+
+
+\textbf{ 29 } \quad francis-de-sales\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+
+\medskip
+
+
+\textbf{ 30 } \quad martina\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Sir 51:1-8; 51:12\quad\small Ev. Matt 25:1-13.\\
+
+\medskip
+
+
+\textbf{ 31 } \quad ef-septuagesima-sunday-2\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. 2 Cor. 11:19-33; 12:1-9\quad\small Ev. Luke 8:4-15\\
+
+\medskip
+
+
+
+\section*{ Februarius }
+
+\textbf{ 1 } \quad ignatius-of-antioch\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Rom 8:35-39\quad\small Ev. John 12:24-26\\
+
+\medskip
+
+
+\textbf{ 2 } \quad purification-of-the-blessed-virgin-mary\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Mal 3:1-4\quad\small Ev. Luke 2:22-32\\
+
+\medskip
+
+
+\textbf{ 3 } \quad ef-septuagesima-2-wednesday\\
+\small class-4 \textperiodcentered\ violet\\
+\small Ep. 2 Cor. 11:19-33; 12:1-9\quad\small Ev. Luke 8:4-15\\
+\small Com. blaise\\
+
+\medskip
+
+
+\textbf{ 4 } \quad andrew-corsini\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 44:16-27; 45:3-20\quad\small Ev. Matt 25:14-23\\
+
+\medskip
+
+
+\textbf{ 5 } \quad agatha\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 1 Cor. 1:26-31\quad\small Ev. Matt 19:3-12.\\
+
+\medskip
+
+
+\textbf{ 6 } \quad titus\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 44:16-27; 45:3-20\quad\small Ev. Luke 10:1-9\\
+\small Com. dorothy\\
+
+\medskip
+
+
+\textbf{ 7 } \quad ef-septuagesima-sunday-3\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. 1 Cor. 13:1-13\quad\small Ev. Luke 18:31-43\\
+
+\medskip
+
+
+\textbf{ 8 } \quad john-of-matha\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Luke 12:35-40\\
+
+\medskip
+
+
+\textbf{ 9 } \quad cyril-of-alexandria\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+\small Com. appollonia\\
+
+\medskip
+
+
+\textbf{ 10 } \quad ef-ash-wednesday\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. Joel 2:12-19\quad\small Ev. Matt 6:16-21\\
+
+\medskip
+
+
+\textbf{ 11 } \quad ef-lent-after-ashes-thursday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Isa 38:1-6\quad\small Ev. Matt 8:5-13\\
+\small Com. our-lady-of-lourdes\\
+
+\medskip
+
+
+\textbf{ 12 } \quad ef-lent-after-ashes-friday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Isa 58:1-9\quad\small Ev. Matt 5:43-48; 6:1-4\\
+\small Com. seven-holy-servite-founders\\
+
+\medskip
+
+
+\textbf{ 13 } \quad ef-lent-after-ashes-saturday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Isa 58:9-14\quad\small Ev. Mark 6:47-56\\
+
+\medskip
+
+
+\textbf{ 14 } \quad ef-lent-sunday-1\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. 2 Cor. 6:1-10\quad\small Ev. Matt 4:1-11\\
+
+\medskip
+
+
+\textbf{ 15 } \quad ef-lent-1-monday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Ezech 34:11-16\quad\small Ev. Matt 25:31-46\\
+\small Com. sts-faustinus-jovita\\
+
+\medskip
+
+
+\textbf{ 16 } \quad ef-lent-1-tuesday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Isa 55:6-11\quad\small Ev. Matt 21:10-17\\
+
+\medskip
+
+
+\textbf{ 17 } \quad ef-lent-ember-wed\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. 3 Kgs. 19:3-8\quad\small Ev. Matt 12:38-50\\
+
+\medskip
+
+
+\textbf{ 18 } \quad ef-lent-1-thursday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Ezech 18:1-9\quad\small Ev. Matt 15:21-28\\
+\small Com. simeon\\
+
+\medskip
+
+
+\textbf{ 19 } \quad ef-lent-ember-fri\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. Ezech 18:20-28\quad\small Ev. John 5:1-15\\
+
+\medskip
+
+
+\textbf{ 20 } \quad ef-lent-ember-sat\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. 1 Thess. 5:14-23\quad\small Ev. Matt 17:1-9\\
+
+\medskip
+
+
+\textbf{ 21 } \quad ef-lent-sunday-2\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. 1 Thess. 4:1-7\quad\small Ev. Matt 17:1-9\\
+
+\medskip
+
+
+\textbf{ 22 } \quad chair-of-st-peter\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. 1 Pet 1:1-7\quad\small Ev. Matt 16:13-19\\
+\small Com. ef-lent-2-monday\\
+\small Com. paul\\
+
+\medskip
+
+
+\textbf{ 23 } \quad ef-lent-2-tuesday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. 3 Kings 17:8-16\quad\small Ev. Matt 23:1-12\\
+\small Com. peter-damien\\
+
+\medskip
+
+
+\textbf{ 24 } \quad matthias\\
+\small class-2 \textperiodcentered\ red\\
+\small Ep. Acts 1:15-26\quad\small Ev. Matt 11:25-30\\
+\small Com. ef-lent-2-wednesday\\
+
+\medskip
+
+
+\textbf{ 25 } \quad ef-lent-2-thursday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Jer 17:5-10\quad\small Ev. Luke 16:19-31\\
+
+\medskip
+
+
+\textbf{ 26 } \quad ef-lent-2-friday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Gen 37:6-22\quad\small Ev. Matt 21:33-46\\
+
+\medskip
+
+
+\textbf{ 27 } \quad ef-lent-2-saturday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Gen 27:6-40\quad\small Ev. Luke 15:11-32\\
+\small Com. gabriel-of-our-lady-of-sorrows\\
+
+\medskip
+
+
+\textbf{ 28 } \quad ef-lent-sunday-3\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. Eph 5:1-9\quad\small Ev. Luke 11:14-28\\
+
+\medskip
+
+
+
+\section*{ Martius }
+
+\textbf{ 1 } \quad ef-lent-3-monday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. 4 Kings 5:1-15\quad\small Ev. Luke 4:23-30\\
+
+\medskip
+
+
+\textbf{ 2 } \quad ef-lent-3-tuesday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. 4 Kings 4:1-7\quad\small Ev. Matt 18:15-22\\
+
+\medskip
+
+
+\textbf{ 3 } \quad ef-lent-3-wednesday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Ex 20:12-24\quad\small Ev. Matt 15:1-20\\
+
+\medskip
+
+
+\textbf{ 4 } \quad ef-lent-3-thursday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Jer 7:1-7\quad\small Ev. Luke 4:38-44.\\
+\small Com. casimir\\
+\small Com. lucius\\
+
+\medskip
+
+
+\textbf{ 5 } \quad ef-lent-3-friday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Num 20:1, 3; 6-13.\quad\small Ev. John 4:5-42\\
+
+\medskip
+
+
+\textbf{ 6 } \quad ef-lent-3-saturday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Dan 13:1-9, 15-17, 19-30, 33-62.\quad\small Ev. John 8:1-11\\
+\small Com. sts-felicitas-perpetua\\
+
+\medskip
+
+
+\textbf{ 7 } \quad ef-lent-sunday-4\\
+\small class-1 \textperiodcentered\ rose\\
+\small Ep. Gal 4:22-31\quad\small Ev. John 6:1-15\\
+
+\medskip
+
+
+\textbf{ 8 } \quad ef-lent-4-monday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. 3 Kings 3:16-28\quad\small Ev. John 2:13-25\\
+\small Com. john-of-god\\
+
+\medskip
+
+
+\textbf{ 9 } \quad ef-lent-4-tuesday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Ex 32:7-14\quad\small Ev. John 7:14-31\\
+\small Com. frances-rome\\
+
+\medskip
+
+
+\textbf{ 10 } \quad ef-lent-4-wednesday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Isa. 1:16-19\quad\small Ev. John 9:1-38\\
+\small Com. forty-holy-martyrs-of-sebaste\\
+
+\medskip
+
+
+\textbf{ 11 } \quad ef-lent-4-thursday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. 4 Kings 4:25-38\quad\small Ev. Luke 7:11-16\\
+
+\medskip
+
+
+\textbf{ 12 } \quad ef-lent-4-friday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. 3 Kings 17:17-24\quad\small Ev. John 11:1-45\\
+\small Com. gregory-the-great\\
+
+\medskip
+
+
+\textbf{ 13 } \quad ef-lent-4-saturday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Isa 49:8-15\quad\small Ev. John 8:12-20\\
+
+\medskip
+
+
+\textbf{ 14 } \quad ef-passion-sunday\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. Heb 9:11-15.\quad\small Ev. John 8:46-59.\\
+
+\medskip
+
+
+\textbf{ 15 } \quad ef-passiontide-1-monday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Jonas 3:1-10\quad\small Ev. John 7:32-39\\
+
+\medskip
+
+
+\textbf{ 16 } \quad ef-passiontide-1-tuesday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Dan 14:27, 28-42\quad\small Ev. John 7:1-13\\
+
+\medskip
+
+
+\textbf{ 17 } \quad ef-passiontide-1-wednesday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Lev 19:1-2, 11-19, 25\quad\small Ev. John 10:22-38\\
+\small Com. patrick\\
+
+\medskip
+
+
+\textbf{ 18 } \quad ef-passiontide-1-thursday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Dan 3:25, 34-45.\quad\small Ev. Luke 7:36-50\\
+\small Com. cyril-of-jerusalem\\
+
+\medskip
+
+
+\textbf{ 19 } \quad joseph-spouse-of-the-bl-virgin-mary\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Ecclus 45:1-6\quad\small Ev. Matt 1:18-21\\
+\small Com. ef-passiontide-1-friday\\
+
+\medskip
+
+
+\textbf{ 20 } \quad ef-passiontide-1-saturday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Jer 18:18-23\quad\small Ev. John 12:10-36\\
+
+\medskip
+
+
+\textbf{ 21 } \quad ef-palm-sunday\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. Phil 2:5-11\quad\small Ev. Matt. 26:36-75; 27:1-60.\\
+
+\medskip
+
+
+\textbf{ 22 } \quad ef-passiontide-2-monday\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. Isa 50:5-10\quad\small Ev. John 12:1-9\\
+
+\medskip
+
+
+\textbf{ 23 } \quad ef-passiontide-2-tuesday\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. Jer 11:18-20\quad\small Ev. Mark 14:32-72; 15, 1-46\\
+
+\medskip
+
+
+\textbf{ 24 } \quad ef-passiontide-2-wednesday\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. Isa 53:1-12\quad\small Ev. Luke 22:39-71; 23:1-53\\
+
+\medskip
+
+
+\textbf{ 25 } \quad Feria V in Cena Domini\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. 1 Cor 11:20-32\quad\small Ev. John 13:1-15\\
+
+\medskip
+
+
+\textbf{ 26 } \quad Feria VI in Passione et Morte Domini\\
+\small class-1 \textperiodcentered\ black\\
+\small Ep. Ex 12:1-11\quad\small Ev. John 18:1-40; 19:1-42\\
+
+\medskip
+
+
+\textbf{ 27 } \quad Sabbato sancto\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. Col 3:1-4\quad\small Ev. Matt 28:1-7\\
+
+\medskip
+
+
+\textbf{ 28 } \quad ef-easter-sunday\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. 1 Cor 5:7-8\quad\small Ev. Mark 16:1-7\\
+
+\medskip
+
+
+\textbf{ 29 } \quad ef-easter-1-monday\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Acts 10:37-43.\quad\small Ev. Luke 24:13-35\\
+
+\medskip
+
+
+\textbf{ 30 } \quad ef-easter-1-tuesday\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Acts 13:16; 13:26-33\quad\small Ev. Luke 24:36-47\\
+
+\medskip
+
+
+\textbf{ 31 } \quad ef-easter-1-wednesday\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Acts 3:13-15; 3:17-19\quad\small Ev. John 21:1-14\\
+
+\medskip
+
+
+
+\section*{ Aprilis }
+
+\textbf{ 1 } \quad ef-easter-1-thursday\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Acts 8:26-40\quad\small Ev. John 20:11-18\\
+
+\medskip
+
+
+\textbf{ 2 } \quad ef-easter-1-friday\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. 1 Pet 3:18-22\quad\small Ev. Matt 28:16-20\\
+
+\medskip
+
+
+\textbf{ 3 } \quad ef-easter-1-saturday\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. 1 Pet 2:1-10\quad\small Ev. John 20:1-9\\
+
+\medskip
+
+
+\textbf{ 4 } \quad ef-low-sunday\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. 1 John 5:4-10\quad\small Ev. John 20:19-31\\
+
+\medskip
+
+
+\textbf{ 5 } \quad annunciation-of-the-blessed-virgin-mary\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Isa 7:10-15\quad\small Ev. Luke 1:26-38\\
+
+\medskip
+
+
+\textbf{ 6 } \quad ef-easter-2-tuesday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. 1 John 5:4-10\quad\small Ev. John 20:19-31\\
+
+\medskip
+
+
+\textbf{ 7 } \quad ef-easter-2-wednesday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. 1 John 5:4-10\quad\small Ev. John 20:19-31\\
+
+\medskip
+
+
+\textbf{ 8 } \quad ef-easter-2-thursday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. 1 John 5:4-10\quad\small Ev. John 20:19-31\\
+
+\medskip
+
+
+\textbf{ 9 } \quad ef-easter-2-friday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. 1 John 5:4-10\quad\small Ev. John 20:19-31\\
+
+\medskip
+
+
+\textbf{ 10 } \quad Officium sanctae Mariae in sabbato\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Ecclus 24:14-16\quad\small Ev. John 19:25-27\\
+
+\medskip
+
+
+\textbf{ 11 } \quad ef-easter-sunday-3\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. 1 Pet 2:21-25\quad\small Ev. John 10:11-16\\
+
+\medskip
+
+
+\textbf{ 12 } \quad ef-easter-3-monday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. 1 Pet 2:21-25\quad\small Ev. John 10:11-16\\
+
+\medskip
+
+
+\textbf{ 13 } \quad hermenegild\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Wis 10:10-14\quad\small Ev. Luke 14:26-33.\\
+
+\medskip
+
+
+\textbf{ 14 } \quad justin\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 1 Cor 1:18-25; 1:30;\quad\small Ev. Luke 12:2-8\\
+\small Com. sts-tiburtius-valerian-et-maximus-martyrs\\
+
+\medskip
+
+
+\textbf{ 15 } \quad ef-easter-3-thursday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. 1 Pet 2:21-25\quad\small Ev. John 10:11-16\\
+
+\medskip
+
+
+\textbf{ 16 } \quad ef-easter-3-friday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. 1 Pet 2:21-25\quad\small Ev. John 10:11-16\\
+
+\medskip
+
+
+\textbf{ 17 } \quad Officium sanctae Mariae in sabbato\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Ecclus 24:14-16\quad\small Ev. John 19:25-27\\
+\small Com. anicetus\\
+
+\medskip
+
+
+\textbf{ 18 } \quad ef-easter-sunday-4\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. 1 Pet 2:11-19\quad\small Ev. John 16:16-22\\
+
+\medskip
+
+
+\textbf{ 19 } \quad ef-easter-4-monday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. 1 Pet 2:11-19\quad\small Ev. John 16:16-22\\
+
+\medskip
+
+
+\textbf{ 20 } \quad ef-easter-4-tuesday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. 1 Pet 2:11-19\quad\small Ev. John 16:16-22\\
+
+\medskip
+
+
+\textbf{ 21 } \quad anselm\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+
+\medskip
+
+
+\textbf{ 22 } \quad sts-soter-caius\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 1 Pet 5:1-4; 5:10-11.\quad\small Ev. Matt 16:13-19\\
+
+\medskip
+
+
+\textbf{ 23 } \quad ef-easter-4-friday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. 1 Pet 2:11-19\quad\small Ev. John 16:16-22\\
+\small Com. george\\
+
+\medskip
+
+
+\textbf{ 24 } \quad fidelis-of-sigmaringen\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Wis 5:1-5\quad\small Ev. John 15:1-7\\
+
+\medskip
+
+
+\textbf{ 25 } \quad ef-easter-sunday-5\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Jas 1:17-21\quad\small Ev. John 16:5-14\\
+\small Com. major-litanies\\
+
+\medskip
+
+
+\textbf{ 26 } \quad sts-cletus-marcellinus\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 1 Pet 5:1-4; 5:10-11.\quad\small Ev. Matt 16:13-19\\
+
+\medskip
+
+
+\textbf{ 27 } \quad peter-canisius\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+
+\medskip
+
+
+\textbf{ 28 } \quad paul-of-the-cross\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Cor 1:17-25.\quad\small Ev. Luke 10:1-9\\
+
+\medskip
+
+
+\textbf{ 29 } \quad peter-of-verona\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 2 Tim. 2:8-10; 3:10-12.\quad\small Ev. Matt 10:34-42\\
+
+\medskip
+
+
+\textbf{ 30 } \quad catherine-of-siena\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Cor 10:17-18; 11:1-2\quad\small Ev. Matt 25:1-13.\\
+
+\medskip
+
+
+
+\section*{ Maius }
+
+\textbf{ 1 } \quad joseph-the-workman\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Col. 3:14-15, 17, 23-24\quad\small Ev. Matt 13:54-58\\
+
+\medskip
+
+
+\textbf{ 2 } \quad ef-easter-sunday-6\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Jas 1:22-27\quad\small Ev. John 16:23-30\\
+
+\medskip
+
+
+\textbf{ 3 } \quad ef-rogation-monday\\
+\small class-4 \textperiodcentered\ violet\\
+\small Ep. Jas 1:22-27\quad\small Ev. John 16:23-30\\
+\small Com. sts-alexander-companions\\
+
+\medskip
+
+
+\textbf{ 4 } \quad monica\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Tim. 5:3-10.\quad\small Ev. Luke 7:11-16\\
+
+\medskip
+
+
+\textbf{ 5 } \quad ef-ascension-vigil\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Eph. 4:7-13.\quad\small Ev. John 17:1-11.\\
+\small Com. pius-v\\
+
+\medskip
+
+
+\textbf{ 6 } \quad ef-ascension\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Acts 1:1-11\quad\small Ev. Mark 16:14-20\\
+
+\medskip
+
+
+\textbf{ 7 } \quad stanislaus\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Wis 5:1-5\quad\small Ev. John 15:1-7\\
+
+\medskip
+
+
+\textbf{ 8 } \quad Officium sanctae Mariae in sabbato\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Ecclus 24:14-16\quad\small Ev. John 19:25-27\\
+
+\medskip
+
+
+\textbf{ 9 } \quad ef-easter-sunday-7\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. 1 Pet 4:7-11.\quad\small Ev. John 15:26-27; 16:1-4.\\
+
+\medskip
+
+
+\textbf{ 10 } \quad antoninus\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 44:16-27; 45:3-20\quad\small Ev. Matt 25:14-23\\
+\small Com. gordiano-and-epimacho\\
+
+\medskip
+
+
+\textbf{ 11 } \quad sts-philip-james\\
+\small class-2 \textperiodcentered\ red\\
+\small Ep. Wis. 5:1-5\quad\small Ev. John 14:1-13\\
+
+\medskip
+
+
+\textbf{ 12 } \quad sts-nereus-achilleus-domitilla-pancras\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Wis. 5:1-5\quad\small Ev. John 4:46-53\\
+
+\medskip
+
+
+\textbf{ 13 } \quad robert-bellarmine\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Wis 7:7-14.\quad\small Ev. Matt 5:13-19\\
+
+\medskip
+
+
+\textbf{ 14 } \quad ef-easter-7-friday\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. 1 Pet 4:7-11.\quad\small Ev. John 15:26-27; 16:1-4.\\
+\small Com. boniface-martyr\\
+
+\medskip
+
+
+\textbf{ 15 } \quad ef-pentecost-vigil\\
+\small class-1 \textperiodcentered\ red\\
+\small Ep. Acts 19:1-8.\quad\small Ev. John 14:15-21.\\
+
+\medskip
+
+
+\textbf{ 16 } \quad ef-pentecost\\
+\small class-1 \textperiodcentered\ red\\
+\small Ep. Acts 2:1-11.\quad\small Ev. John 14:23-31.\\
+
+\medskip
+
+
+\textbf{ 17 } \quad ef-easter-8-monday\\
+\small class-1 \textperiodcentered\ red\\
+\small Ep. Acts 10:34, 42-48\quad\small Ev. John 3:16-21\\
+
+\medskip
+
+
+\textbf{ 18 } \quad ef-easter-8-tuesday\\
+\small class-1 \textperiodcentered\ red\\
+\small Ep. Acts 8:14-17.\quad\small Ev. John 10:1-10.\\
+
+\medskip
+
+
+\textbf{ 19 } \quad ef-pentecost-ember-wed\\
+\small class-1 \textperiodcentered\ red\\
+\small Ep. Acts 5:12-16\quad\small Ev. John 6:44-52.\\
+
+\medskip
+
+
+\textbf{ 20 } \quad ef-easter-8-thursday\\
+\small class-1 \textperiodcentered\ red\\
+\small Ep. Acts 8:5-8\quad\small Ev. Luke 9:1-6\\
+
+\medskip
+
+
+\textbf{ 21 } \quad ef-pentecost-ember-fri\\
+\small class-1 \textperiodcentered\ red\\
+\small Ep. Joel 2:23-24; 26-27\quad\small Ev. Luke 5:17-26\\
+
+\medskip
+
+
+\textbf{ 22 } \quad ef-pentecost-ember-sat\\
+\small class-1 \textperiodcentered\ red\\
+\small Ep. Rom 5:1-5.\quad\small Ev. Luke 4:38-44.\\
+
+\medskip
+
+
+\textbf{ 23 } \quad ef-trinity\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Rom 11:33-36.\quad\small Ev. Matt 28:18-20\\
+
+\medskip
+
+
+\textbf{ 24 } \quad ef-time-after-pentecost-1-monday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. 1 John 4:8-21\quad\small Ev. Luke 6:36-42\\
+
+\medskip
+
+
+\textbf{ 25 } \quad gregory-vii\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Pet 5:1-4; 5:10-11.\quad\small Ev. Matt 16:13-19\\
+\small Com. urban-pope-and-martyr\\
+
+\medskip
+
+
+\textbf{ 26 } \quad philip-neri\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Wis 7:7-14.\quad\small Ev. Luke 12:35-40\\
+\small Com. eleutherius\\
+
+\medskip
+
+
+\textbf{ 27 } \quad ef-corpus-christi\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. 1 Cor 11:23-29\quad\small Ev. John 6:56-59\\
+
+\medskip
+
+
+\textbf{ 28 } \quad augustine-of-canterbury\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Thess 2:2-9\quad\small Ev. Luke 10:1-9\\
+
+\medskip
+
+
+\textbf{ 29 } \quad mary-magdalene-de-pazzi\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Cor 10:17-18; 11:1-2\quad\small Ev. Matt 25:1-13.\\
+
+\medskip
+
+
+\textbf{ 30 } \quad ef-time-after-pentecost-sunday-2\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. 1 John 3:13-18.\quad\small Ev. Luke 14:16-24.\\
+
+\medskip
+
+
+\textbf{ 31 } \quad queenship-of-the-blessed-virgin-mary\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Eccli 24:5; 14:7; 14:9-11; 24:30-31\quad\small Ev. Luke 1:26-33\\
+\small Com. petronilla\\
+
+\medskip
+
+
+
+\section*{ Iunius }
+
+\textbf{ 1 } \quad angela-merici\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Cor 10:17-18; 11:1-2\quad\small Ev. Matt 25:1-13.\\
+
+\medskip
+
+
+\textbf{ 2 } \quad ef-time-after-pentecost-2-wednesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. 1 John 3:13-18.\quad\small Ev. Luke 14:16-24.\\
+\small Com. sts-marcellinus-peter-erasmus\\
+
+\medskip
+
+
+\textbf{ 3 } \quad ef-time-after-pentecost-2-thursday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. 1 John 3:13-18.\quad\small Ev. Luke 14:16-24.\\
+
+\medskip
+
+
+\textbf{ 4 } \quad ef-sacred-heart\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Eph 3:8-12, 14-19\quad\small Ev. John 19:31-37\\
+
+\medskip
+
+
+\textbf{ 5 } \quad boniface\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Ecclus 44:1-15\quad\small Ev. Matt 5:1-12\\
+
+\medskip
+
+
+\textbf{ 6 } \quad ef-time-after-pentecost-sunday-3\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. 1 Pet. 5:6-11\quad\small Ev. Luke 15:1-10\\
+
+\medskip
+
+
+\textbf{ 7 } \quad ef-time-after-pentecost-3-monday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. 1 Pet. 5:6-11\quad\small Ev. Luke 15:1-10\\
+
+\medskip
+
+
+\textbf{ 8 } \quad ef-time-after-pentecost-3-tuesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. 1 Pet. 5:6-11\quad\small Ev. Luke 15:1-10\\
+
+\medskip
+
+
+\textbf{ 9 } \quad ef-time-after-pentecost-3-wednesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. 1 Pet. 5:6-11\quad\small Ev. Luke 15:1-10\\
+\small Com. sts-primus-felicianus\\
+
+\medskip
+
+
+\textbf{ 10 } \quad margaret-of-scotland\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Prov 31:10-31\quad\small Ev. Matt 13:44-52.\\
+
+\medskip
+
+
+\textbf{ 11 } \quad barnabas\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Acts 11:21-26; 13:1-3\quad\small Ev. Matt 10:16-22\\
+
+\medskip
+
+
+\textbf{ 12 } \quad john-of-san-fecundo\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Luke 12:35-40\\
+\small Com. basilidus\\
+
+\medskip
+
+
+\textbf{ 13 } \quad ef-time-after-pentecost-sunday-4\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Rom 8:18-23\quad\small Ev. Luke 5:1-11\\
+
+\medskip
+
+
+\textbf{ 14 } \quad basil-the-great\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Luke 14:26-35\\
+
+\medskip
+
+
+\textbf{ 15 } \quad ef-time-after-pentecost-4-tuesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Rom 8:18-23\quad\small Ev. Luke 5:1-11\\
+\small Com. vitus\\
+
+\medskip
+
+
+\textbf{ 16 } \quad ef-time-after-pentecost-4-wednesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Rom 8:18-23\quad\small Ev. Luke 5:1-11\\
+
+\medskip
+
+
+\textbf{ 17 } \quad gregory-barbarigo\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 44:16-27; 45:3-20\quad\small Ev. Matt 25:14-23\\
+
+\medskip
+
+
+\textbf{ 18 } \quad ephrem-of-syria\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+\small Com. marcus-and-marcellianus\\
+
+\medskip
+
+
+\textbf{ 19 } \quad julia-of-falconieri\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Cor 10:17-18; 11:1-2\quad\small Ev. Matt 25:1-13.\\
+\small Com. sts-gervasius-and-protasius\\
+
+\medskip
+
+
+\textbf{ 20 } \quad ef-time-after-pentecost-sunday-5\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. 1 Pet 3:8-15.\quad\small Ev. Matt 5:20-24.\\
+
+\medskip
+
+
+\textbf{ 21 } \quad aloysius-gongzaga\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Matt 22:29-40\\
+
+\medskip
+
+
+\textbf{ 22 } \quad paulinus-of-nola\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Cor. 8:9-15\quad\small Ev. Luke 12:32-34\\
+
+\medskip
+
+
+\textbf{ 23 } \quad vigil-of-the-nativity-of-st-john-the-baptist\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. Jer 1:4-10\quad\small Ev. Luke 1:5-17\\
+
+\medskip
+
+
+\textbf{ 24 } \quad nativity-of-st-john-the-baptist\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Isa 49:1-3, 5-7.\quad\small Ev. Luke 1:57-68\\
+
+\medskip
+
+
+\textbf{ 25 } \quad william\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Ecclus 45:1-6\quad\small Ev. Matt 19:27-29.\\
+
+\medskip
+
+
+\textbf{ 26 } \quad sts-john-paul\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Eccli 44:10-15\quad\small Ev. Luke 12:1-8\\
+
+\medskip
+
+
+\textbf{ 27 } \quad ef-time-after-pentecost-sunday-6\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Rom 6:3-11.\quad\small Ev. Mark 8:1-9\\
+
+\medskip
+
+
+\textbf{ 28 } \quad vigil-of-sts-peter-paul\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. Acts 3:1-10\quad\small Ev. John 21:15-19\\
+
+\medskip
+
+
+\textbf{ 29 } \quad sts-peter-paul\\
+\small class-1 \textperiodcentered\ red\\
+\small Ep. Acts 12:1-11\quad\small Ev. Matt 16:13-19\\
+
+\medskip
+
+
+\textbf{ 30 } \quad in-commemoratione-sancti-pauli-apostoli\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Gal 1:11-20\quad\small Ev. Matt 10:16-22\\
+\small Com. commemoration-of-st-peter\\
+
+\medskip
+
+
+
+\section*{ Iulius }
+
+\textbf{ 1 } \quad precious-blood-of-our-lord-jesus-christ\\
+\small class-1 \textperiodcentered\ red\\
+\small Ep. Heb 9:11-15.\quad\small Ev. John 19:30-35\\
+
+\medskip
+
+
+\textbf{ 2 } \quad visitation-of-the-blessed-virgin-mary\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Song 2:8-14\quad\small Ev. Luke 1:39-47\\
+\small Com. processus-and-martinian\\
+
+\medskip
+
+
+\textbf{ 3 } \quad irenaeus\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 2 Tim. 3:14-17; 4:1-5\quad\small Ev. Matt 10:28-33\\
+
+\medskip
+
+
+\textbf{ 4 } \quad ef-time-after-pentecost-sunday-7\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Rom 6:19-23\quad\small Ev. Matt 7:15-21\\
+
+\medskip
+
+
+\textbf{ 5 } \quad anthony-mary-zaccariah\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Tim. 4:8-16\quad\small Ev. Mark 10:15-21\\
+
+\medskip
+
+
+\textbf{ 6 } \quad ef-time-after-pentecost-7-tuesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Rom 6:19-23\quad\small Ev. Matt 7:15-21\\
+
+\medskip
+
+
+\textbf{ 7 } \quad sts-cyril-methodius\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Heb 7:23-27\quad\small Ev. Luke 10:1-9\\
+
+\medskip
+
+
+\textbf{ 8 } \quad elizabeth-of-portugal\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Prov 31:10-31\quad\small Ev. Matt 13:44-52.\\
+
+\medskip
+
+
+\textbf{ 9 } \quad ef-time-after-pentecost-7-friday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Rom 6:19-23\quad\small Ev. Matt 7:15-21\\
+
+\medskip
+
+
+\textbf{ 10 } \quad seven-holy-brothers-and-sts-rufina-secunda\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Prov 31:10-31\quad\small Ev. Matt 12:46-50\\
+
+\medskip
+
+
+\textbf{ 11 } \quad ef-time-after-pentecost-sunday-8\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Rom 8:12-17\quad\small Ev. Luke 16:1-9\\
+
+\medskip
+
+
+\textbf{ 12 } \quad john-gualbert\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Ecclus 45:1-6\quad\small Ev. Matt 5:43-48\\
+\small Com. naboris-et-felicis\\
+
+\medskip
+
+
+\textbf{ 13 } \quad ef-time-after-pentecost-8-tuesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Rom 8:12-17\quad\small Ev. Luke 16:1-9\\
+
+\medskip
+
+
+\textbf{ 14 } \quad bonaventure\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+
+\medskip
+
+
+\textbf{ 15 } \quad henry-the-emperor\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Luke 12:35-40\\
+
+\medskip
+
+
+\textbf{ 16 } \quad ef-time-after-pentecost-8-friday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Rom 8:12-17\quad\small Ev. Luke 16:1-9\\
+\small Com. our-lady-of-mt-carmel\\
+
+\medskip
+
+
+\textbf{ 17 } \quad Officium sanctae Mariae in sabbato\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Ecclus 24:14-16\quad\small Ev. Luke 11:27-28\\
+\small Com. alexis\\
+
+\medskip
+
+
+\textbf{ 18 } \quad ef-time-after-pentecost-sunday-9\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. 1 Cor. 10:6-13\quad\small Ev. Luke 19:41-47\\
+
+\medskip
+
+
+\textbf{ 19 } \quad vincent-de-paul\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Cor. 4:9-14\quad\small Ev. Luke 10:1-9\\
+
+\medskip
+
+
+\textbf{ 20 } \quad jerome-emiliani\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Isa 58:7-11\quad\small Ev. Matt 19:13-21\\
+\small Com. margaret\\
+
+\medskip
+
+
+\textbf{ 21 } \quad laurence-of-brindisi\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+\small Com. praxedis-virginis\\
+
+\medskip
+
+
+\textbf{ 22 } \quad mary-magdalene\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Song 3:2-5; 8:6-7\quad\small Ev. Luke 7:36-50\\
+
+\medskip
+
+
+\textbf{ 23 } \quad apollinaris\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 1 Pet. 5:1-11\quad\small Ev. Luke 22:24-30\\
+\small Com. liborii\\
+
+\medskip
+
+
+\textbf{ 24 } \quad Officium sanctae Mariae in sabbato\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Ecclus 24:14-16\quad\small Ev. Luke 11:27-28\\
+\small Com. christina\\
+
+\medskip
+
+
+\textbf{ 25 } \quad ef-time-after-pentecost-sunday-10\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. 1 Cor. 12:2-11\quad\small Ev. Luke 18:9-14\\
+\small Com. james-the-greater\\
+
+\medskip
+
+
+\textbf{ 26 } \quad anne-mother-of-the-blessed-virgin\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Prov 31:10-31\quad\small Ev. Matt 13:44-52.\\
+
+\medskip
+
+
+\textbf{ 27 } \quad ef-time-after-pentecost-10-tuesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. 1 Cor. 12:2-11\quad\small Ev. Luke 18:9-14\\
+\small Com. pantaleon\\
+
+\medskip
+
+
+\textbf{ 28 } \quad sts-nazarius-celsus-st-victor-i-st-innocent-i\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Wis 10:17-20\quad\small Ev. Luke 21:9-19\\
+
+\medskip
+
+
+\textbf{ 29 } \quad martha\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Cor 10:17-18; 11:1-2\quad\small Ev. Luke 10:38-42\\
+\small Com. felicis-simplicii-faustini-et-beatricis\\
+
+\medskip
+
+
+\textbf{ 30 } \quad ef-time-after-pentecost-10-friday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. 1 Cor. 12:2-11\quad\small Ev. Luke 18:9-14\\
+\small Com. sts-abdon-sennen\\
+
+\medskip
+
+
+\textbf{ 31 } \quad ignatius-loyola\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim. 2:8-10; 3:10-12.\quad\small Ev. Luke 10:1-9\\
+
+\medskip
+
+
+
+\section*{ Augustus }
+
+\textbf{ 1 } \quad ef-time-after-pentecost-sunday-11\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. 1 Cor. 15:1-10\quad\small Ev. Mark 7:31-37\\
+
+\medskip
+
+
+\textbf{ 2 } \quad alphonsus-liguori\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim. 2:1-7\quad\small Ev. Luke 10:1-9\\
+\small Com. stephen-i-pope-and-martyr\\
+
+\medskip
+
+
+\textbf{ 3 } \quad ef-time-after-pentecost-11-tuesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. 1 Cor. 15:1-10\quad\small Ev. Mark 7:31-37\\
+
+\medskip
+
+
+\textbf{ 4 } \quad dominic\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim. 4:1-8\quad\small Ev. Luke 12:35-40\\
+
+\medskip
+
+
+\textbf{ 5 } \quad dedication-of-the-basilica-of-st-mary-major\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Ecclus 24:14-16\quad\small Ev. Luke 11:27-28\\
+
+\medskip
+
+
+\textbf{ 6 } \quad transfiguration-of-our-lord\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. 2 Pet. 1:16-19\quad\small Ev. Matt 17:1-9\\
+\small Com. pope-sixtus-ii-felicissimus-and-agapitus-martyrs\\
+
+\medskip
+
+
+\textbf{ 7 } \quad cajetan\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Matt 6:24-33\\
+\small Com. donatus\\
+
+\medskip
+
+
+\textbf{ 8 } \quad ef-time-after-pentecost-sunday-12\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. 2 Cor. 3:4-9\quad\small Ev. Luke 10:23-37\\
+
+\medskip
+
+
+\textbf{ 9 } \quad vigil-of-st-lawrence\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Ecclus 51:1-8, 12\quad\small Ev. Matt 16:24-27\\
+\small Com. romanus\\
+
+\medskip
+
+
+\textbf{ 10 } \quad lawrence\\
+\small class-2 \textperiodcentered\ red\\
+\small Ep. 2 Cor. 9:6-10\quad\small Ev. John 12:24-26\\
+
+\medskip
+
+
+\textbf{ 11 } \quad ef-time-after-pentecost-12-wednesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. 2 Cor. 3:4-9\quad\small Ev. Luke 10:23-37\\
+\small Com. sts-tiburtius-susanna\\
+
+\medskip
+
+
+\textbf{ 12 } \quad clare\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Cor 10:17-18; 11:1-2\quad\small Ev. Matt 25:1-13.\\
+
+\medskip
+
+
+\textbf{ 13 } \quad ef-time-after-pentecost-12-friday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. 2 Cor. 3:4-9\quad\small Ev. Luke 10:23-37\\
+\small Com. sts-hippolytus-cassian\\
+
+\medskip
+
+
+\textbf{ 14 } \quad vigil-of-the-assumption\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. Sir 24:23-31\quad\small Ev. Luke 11:27-28\\
+\small Com. eusebius-confessor\\
+
+\medskip
+
+
+\textbf{ 15 } \quad assumption-of-the-blessed-virgin-mary\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Judith 13:22-25; 15:10\quad\small Ev. Luke 1:41-50\\
+\small Com. ef-time-after-pentecost-sunday-13\\
+
+\medskip
+
+
+\textbf{ 16 } \quad joachim-father-of-the-blessed-virgin\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Matt 1:1-16\\
+
+\medskip
+
+
+\textbf{ 17 } \quad hyacinth\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Luke 12:35-40\\
+
+\medskip
+
+
+\textbf{ 18 } \quad ef-time-after-pentecost-13-wednesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Gal 3:16-22\quad\small Ev. Luke 17:11-19\\
+\small Com. agapitus\\
+
+\medskip
+
+
+\textbf{ 19 } \quad john-eudes\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Luke 12:35-40\\
+
+\medskip
+
+
+\textbf{ 20 } \quad bernard-of-clairvaux\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Ecclus 39:6-14\quad\small Ev. Matt 5:13-19\\
+
+\medskip
+
+
+\textbf{ 21 } \quad jane-frances-de-chantal\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Prov 31:10-31\quad\small Ev. Matt 13:44-52.\\
+
+\medskip
+
+
+\textbf{ 22 } \quad ef-time-after-pentecost-sunday-14\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Gal 5:16-24\quad\small Ev. Matt 6:24-33\\
+\small Com. immaculate-heart-of-mary\\
+
+\medskip
+
+
+\textbf{ 23 } \quad philip-benizi\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Cor. 4:9-14\quad\small Ev. Luke 12:32-34\\
+
+\medskip
+
+
+\textbf{ 24 } \quad bartholomew\\
+\small class-2 \textperiodcentered\ red\\
+\small Ep. 1 Cor. 12:27-31\quad\small Ev. Luke 6:12-19\\
+
+\medskip
+
+
+\textbf{ 25 } \quad louis-ix\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Wis 10:10-14\quad\small Ev. Luke 19:12-26\\
+
+\medskip
+
+
+\textbf{ 26 } \quad ef-time-after-pentecost-14-thursday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Gal 5:16-24\quad\small Ev. Matt 6:24-33\\
+\small Com. zephyrinus\\
+
+\medskip
+
+
+\textbf{ 27 } \quad joseph-calasance\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Wis 10:10-14\quad\small Ev. Matt 18:1-5\\
+
+\medskip
+
+
+\textbf{ 28 } \quad augustine\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+\small Com. hermes\\
+
+\medskip
+
+
+\textbf{ 29 } \quad ef-time-after-pentecost-sunday-15\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Gal 5:25-26; 6:1-10\quad\small Ev. Luke 7:11-16\\
+
+\medskip
+
+
+\textbf{ 30 } \quad rose-of-lima\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Cor 10:17-18; 11:1-2\quad\small Ev. Matt 25:1-13.\\
+\small Com. sts-felix-and-adauctus\\
+
+\medskip
+
+
+\textbf{ 31 } \quad raymond-nonnatus\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Luke 12:35-40\\
+
+\medskip
+
+
+
+\section*{ September }
+
+\textbf{ 1 } \quad ef-time-after-pentecost-15-wednesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Gal 5:25-26; 6:1-10\quad\small Ev. Luke 7:11-16\\
+\small Com. giles\\
+\small Com. twelve-holy-brothers-martyrs\\
+
+\medskip
+
+
+\textbf{ 2 } \quad stephen-of-hungary\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Luke 19:12-26\\
+
+\medskip
+
+
+\textbf{ 3 } \quad pius-x\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Thess. 2:2-8\quad\small Ev. John 21:15-17\\
+
+\medskip
+
+
+\textbf{ 4 } \quad Officium sanctae Mariae in sabbato\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Ecclus 24:14-16\quad\small Ev. Luke 11:27-28\\
+
+\medskip
+
+
+\textbf{ 5 } \quad ef-time-after-pentecost-sunday-16\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Eph 3:13-21\quad\small Ev. Luke 14:1-11\\
+
+\medskip
+
+
+\textbf{ 6 } \quad ef-time-after-pentecost-16-monday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Eph 3:13-21\quad\small Ev. Luke 14:1-11\\
+
+\medskip
+
+
+\textbf{ 7 } \quad ef-time-after-pentecost-16-tuesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Eph 3:13-21\quad\small Ev. Luke 14:1-11\\
+
+\medskip
+
+
+\textbf{ 8 } \quad nativity-of-the-blessed-virgin-mary\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Prov 8:22-35\quad\small Ev. Matt 1:1-16\\
+\small Com. hadriani\\
+
+\medskip
+
+
+\textbf{ 9 } \quad ef-time-after-pentecost-16-thursday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Eph 3:13-21\quad\small Ev. Luke 14:1-11\\
+\small Com. gorgonius\\
+
+\medskip
+
+
+\textbf{ 10 } \quad nicholas-of-tolentino\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Cor. 4:9-14\quad\small Ev. Luke 12:32-34\\
+
+\medskip
+
+
+\textbf{ 11 } \quad Officium sanctae Mariae in sabbato\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Ecclus 24:14-16\quad\small Ev. Luke 11:27-28\\
+\small Com. sts-protus-hyacinth\\
+
+\medskip
+
+
+\textbf{ 12 } \quad ef-time-after-pentecost-sunday-17\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Eph 4:1-6\quad\small Ev. Matt 22:34-46\\
+
+\medskip
+
+
+\textbf{ 13 } \quad ef-time-after-pentecost-17-monday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Eph 4:1-6\quad\small Ev. Matt 22:34-46\\
+
+\medskip
+
+
+\textbf{ 14 } \quad exaltation-of-the-holy-cross\\
+\small class-2 \textperiodcentered\ red\\
+\small Ep. Phil 2:5-11\quad\small Ev. John 12:31-36\\
+
+\medskip
+
+
+\textbf{ 15 } \quad seven-sorrows-of-the-blessed-virgin-mary\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Judith 13:22; 13:23-25\quad\small Ev. John 19:25-27\\
+\small Com. nicomedes\\
+
+\medskip
+
+
+\textbf{ 16 } \quad sts-cornelius-cyprian\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Wis 3:1-8\quad\small Ev. Luke 21:9-19\\
+\small Com. sts-euphemia-lucy-and-geminianus\\
+
+\medskip
+
+
+\textbf{ 17 } \quad ef-time-after-pentecost-17-friday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Eph 4:1-6\quad\small Ev. Matt 22:34-46\\
+\small Com. stigmata-of-st-francis\\
+
+\medskip
+
+
+\textbf{ 18 } \quad joseph-of-cupertino\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Cor 13:1-8\quad\small Ev. Matt 22:1-14\\
+
+\medskip
+
+
+\textbf{ 19 } \quad ef-time-after-pentecost-sunday-18\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. 1 Cor. 1:4-8\quad\small Ev. Matt 9:1-8\\
+
+\medskip
+
+
+\textbf{ 20 } \quad ef-time-after-pentecost-18-monday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. 1 Cor. 1:4-8\quad\small Ev. Matt 9:1-8\\
+\small Com. sts-eustace-companions\\
+
+\medskip
+
+
+\textbf{ 21 } \quad matthew\\
+\small class-2 \textperiodcentered\ red\\
+\small Ep. Ezek 1:10-14\quad\small Ev. Matt 9:9-13\\
+
+\medskip
+
+
+\textbf{ 22 } \quad ef-september-ember-wed\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. 2 Esd. 8:1-10\quad\small Ev. Mark 9:16-28\\
+\small Com. thomas-of-villanova\\
+
+\medskip
+
+
+\textbf{ 23 } \quad linus\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 1 Pet 5:1-4; 5:10-11.\quad\small Ev. Matt 16:13-19\\
+\small Com. thecla\\
+
+\medskip
+
+
+\textbf{ 24 } \quad ef-september-ember-fri\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. Osee 14:2-10\quad\small Ev. Luke 7:36-50\\
+\small Com. our-lady-of-ransom\\
+
+\medskip
+
+
+\textbf{ 25 } \quad ef-september-ember-sat\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. Heb 9:2-12\quad\small Ev. Luke 13:6-17\\
+
+\medskip
+
+
+\textbf{ 26 } \quad ef-time-after-pentecost-sunday-19\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Eph 4:23-28\quad\small Ev. Matt 22:1-14\\
+
+\medskip
+
+
+\textbf{ 27 } \quad sts-cosmas-damian\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Wis 5:16-20\quad\small Ev. Luke 6:17-23\\
+
+\medskip
+
+
+\textbf{ 28 } \quad wenceslaus\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Wis 10:10-14\quad\small Ev. Matt 10:34-42\\
+
+\medskip
+
+
+\textbf{ 29 } \quad dedication-of-st-michael-the-archangel\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Rev 1:1-5\quad\small Ev. Matt 18:1-10\\
+
+\medskip
+
+
+\textbf{ 30 } \quad jerome\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+
+\medskip
+
+
+
+\section*{ October }
+
+\textbf{ 1 } \quad ef-time-after-pentecost-19-friday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Eph 4:23-28\quad\small Ev. Matt 22:1-14\\
+\small Com. remigius\\
+
+\medskip
+
+
+\textbf{ 2 } \quad holy-guardian-angels\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Exod 23:20-23\quad\small Ev. Matt 18:1-10\\
+
+\medskip
+
+
+\textbf{ 3 } \quad ef-time-after-pentecost-sunday-20\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Eph 5:15-21\quad\small Ev. John 4:46-53\\
+
+\medskip
+
+
+\textbf{ 4 } \quad francis-of-assisi\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Gal 6:14-18\quad\small Ev. Matt 11:25-30\\
+
+\medskip
+
+
+\textbf{ 5 } \quad ef-time-after-pentecost-20-tuesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Eph 5:15-21\quad\small Ev. John 4:46-53\\
+\small Com. placid-companions\\
+
+\medskip
+
+
+\textbf{ 6 } \quad bruno\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Luke 12:35-40\\
+
+\medskip
+
+
+\textbf{ 7 } \quad our-lady-of-the-rosary\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Prov 8:22-24, 32-35.\quad\small Ev. Luke 1:26-38\\
+\small Com. mark-i\\
+
+\medskip
+
+
+\textbf{ 8 } \quad bridget-of-sweden\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Tim. 5:3-10.\quad\small Ev. Matt 13:44-52.\\
+\small Com. sergio-baccho-marcello-and-apulejo-martyrs\\
+
+\medskip
+
+
+\textbf{ 9 } \quad john-leonardi\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Cor 4:1-6; 4:15-18\quad\small Ev. Luke 10:1-9\\
+\small Com. dionysius-and-companions\\
+
+\medskip
+
+
+\textbf{ 10 } \quad ef-time-after-pentecost-sunday-21\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Eph 6:10-17\quad\small Ev. Matt 18:23-35\\
+
+\medskip
+
+
+\textbf{ 11 } \quad maternity-of-the-blessed-virgin-mary\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Sir 24:23-31\quad\small Ev. Luke 2:43-51\\
+
+\medskip
+
+
+\textbf{ 12 } \quad ef-time-after-pentecost-21-tuesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Eph 6:10-17\quad\small Ev. Matt 18:23-35\\
+
+\medskip
+
+
+\textbf{ 13 } \quad edward\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Luke 12:35-40\\
+
+\medskip
+
+
+\textbf{ 14 } \quad callistus-i\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 1 Pet 5:1-4; 5:10-11.\quad\small Ev. Matt 16:13-19\\
+
+\medskip
+
+
+\textbf{ 15 } \quad teresa-of-avila\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Cor 10:17-18; 11:1-2\quad\small Ev. Matt 25:1-13.\\
+
+\medskip
+
+
+\textbf{ 16 } \quad hedwig\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Prov 31:10-31\quad\small Ev. Matt 13:44-52.\\
+
+\medskip
+
+
+\textbf{ 17 } \quad ef-time-after-pentecost-sunday-22\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Phil 1:6-11\quad\small Ev. Matt 22:15-21\\
+
+\medskip
+
+
+\textbf{ 18 } \quad luke-the-evangelist\\
+\small class-2 \textperiodcentered\ red\\
+\small Ep. 2 Cor. 8:16-24\quad\small Ev. Luke 10:1-9\\
+
+\medskip
+
+
+\textbf{ 19 } \quad peter-of-alcantara\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Phil 3:7-12\quad\small Ev. Luke 12:32-34\\
+
+\medskip
+
+
+\textbf{ 20 } \quad john-cantius\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. James 2:12-17\quad\small Ev. Luke 12:35-40\\
+
+\medskip
+
+
+\textbf{ 21 } \quad ef-time-after-pentecost-22-thursday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Phil 1:6-11\quad\small Ev. Matt 22:15-21\\
+\small Com. hilarion\\
+\small Com. ursula-and-companions\\
+
+\medskip
+
+
+\textbf{ 22 } \quad ef-time-after-pentecost-22-friday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Phil 1:6-11\quad\small Ev. Matt 22:15-21\\
+
+\medskip
+
+
+\textbf{ 23 } \quad anthony-mary-claret\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Heb 7:23-27\quad\small Ev. Matt 24:42-47\\
+
+\medskip
+
+
+\textbf{ 24 } \quad ef-time-after-pentecost-sunday-23\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Phil 3:17-21; 4:1-3\quad\small Ev. Matt 9:18-26\\
+
+\medskip
+
+
+\textbf{ 25 } \quad ef-time-after-pentecost-23-monday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Phil 3:17-21; 4:1-3\quad\small Ev. Matt 9:18-26\\
+\small Com. sts-chrysanthus-daria\\
+
+\medskip
+
+
+\textbf{ 26 } \quad ef-time-after-pentecost-23-tuesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Phil 3:17-21; 4:1-3\quad\small Ev. Matt 9:18-26\\
+\small Com. evaristus\\
+
+\medskip
+
+
+\textbf{ 27 } \quad ef-time-after-pentecost-23-wednesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Phil 3:17-21; 4:1-3\quad\small Ev. Matt 9:18-26\\
+
+\medskip
+
+
+\textbf{ 28 } \quad sts-simon-jude\\
+\small class-2 \textperiodcentered\ red\\
+\small Ep. Eph. 4:7-13.\quad\small Ev. John 15:17-25\\
+
+\medskip
+
+
+\textbf{ 29 } \quad ef-time-after-pentecost-23-friday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Phil 3:17-21; 4:1-3\quad\small Ev. Matt 9:18-26\\
+
+\medskip
+
+
+\textbf{ 30 } \quad Officium sanctae Mariae in sabbato\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Ecclus 24:14-16\quad\small Ev. Luke 11:27-28\\
+
+\medskip
+
+
+\textbf{ 31 } \quad ef-christ-the-king\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Col 1:12-20.\quad\small Ev. John 18:33-37\\
+
+\medskip
+
+
+
+\section*{ November }
+
+\textbf{ 1 } \quad all-saints\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Apoc 7:2-12\quad\small Ev. Matt 5:1-12\\
+
+\medskip
+
+
+\textbf{ 2 } \quad commemoration-of-all-souls\\
+\small class-1 \textperiodcentered\ black\\
+\small Ep. 1 Cor. 15:51-57\quad\small Ev. John 5:25-29\\
+
+\medskip
+
+
+\textbf{ 3 } \quad ef-time-after-pentecost-24-wednesday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Col 1:12-20.\quad\small Ev. John 18:33-37\\
+
+\medskip
+
+
+\textbf{ 4 } \quad charles-borromeo\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 44:16-27; 45:3-20\quad\small Ev. Matt 25:14-23\\
+\small Com. sts-vitalis-and-agricola-martyrs\\
+
+\medskip
+
+
+\textbf{ 5 } \quad ef-time-after-pentecost-24-friday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Col 1:12-20.\quad\small Ev. John 18:33-37\\
+
+\medskip
+
+
+\textbf{ 6 } \quad Officium sanctae Mariae in sabbato\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Ecclus 24:14-16\quad\small Ev. Luke 11:27-28\\
+
+\medskip
+
+
+\textbf{ 7 } \quad ef-time-after-epiphany-sunday-5\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Col 3:12-17\quad\small Ev. Matt 13:24-30\\
+
+\medskip
+
+
+\textbf{ 8 } \quad ef-time-after-pentecost-25-monday\\
+\small class-4 \textperiodcentered\ green\\
+\small Ep. Col 3:12-17\quad\small Ev. Matt 13:24-30\\
+\small Com. four-holy-crowned-martyrs\\
+
+\medskip
+
+
+\textbf{ 9 } \quad dedication-of-the-archbasilica-of-our-holy-savior\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Rev 21:2-5\quad\small Ev. Luke 19:1-10\\
+\small Com. theodore\\
+
+\medskip
+
+
+\textbf{ 10 } \quad andrew-avellino\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 31:8-11\quad\small Ev. Luke 12:35-40\\
+\small Com. sts-tryphonis-respicii-et-nymphae\\
+
+\medskip
+
+
+\textbf{ 11 } \quad martin-of-tours\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 44:16-27; 45:3-20\quad\small Ev. Luke 11:33-36\\
+\small Com. menna\\
+
+\medskip
+
+
+\textbf{ 12 } \quad martin-i\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 1 Pet 5:1-4; 5:10-11.\quad\small Ev. Matt 16:13-19\\
+
+\medskip
+
+
+\textbf{ 13 } \quad didacus\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Cor 4:9-14\quad\small Ev. Luke 12:32-34\\
+
+\medskip
+
+
+\textbf{ 14 } \quad ef-time-after-epiphany-sunday-6\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. 1 Thess 1:2-10\quad\small Ev. Matt 13:31-35\\
+
+\medskip
+
+
+\textbf{ 15 } \quad albert-the-great\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+
+\medskip
+
+
+\textbf{ 16 } \quad gertrude-the-great\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Cor 10:17-18; 11:1-2\quad\small Ev. Matt 25:1-13.\\
+
+\medskip
+
+
+\textbf{ 17 } \quad gregory-the-wonderworker\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Sir 44:16-27; 45:3-20\quad\small Ev. Mark 11:22-24\\
+
+\medskip
+
+
+\textbf{ 18 } \quad dedication-of-the-basilicas-of-sts-peter-paul\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Rev 21:2-5\quad\small Ev. Luke 19:1-10\\
+
+\medskip
+
+
+\textbf{ 19 } \quad elizabeth-of-hungary\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Prov 31:10-31\quad\small Ev. Matt 13:44-52.\\
+\small Com. pontian\\
+
+\medskip
+
+
+\textbf{ 20 } \quad felix-of-valois\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Cor. 4:9-14\quad\small Ev. Luke 12:32-34\\
+
+\medskip
+
+
+\textbf{ 21 } \quad ef-time-after-pentecost-sunday-24\\
+\small class-2 \textperiodcentered\ green\\
+\small Ep. Col 1:9-14\quad\small Ev. Matt 24:15-35\\
+
+\medskip
+
+
+\textbf{ 22 } \quad cecilia\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Sir 51:13-17.\quad\small Ev. Matt 25:1-13.\\
+
+\medskip
+
+
+\textbf{ 23 } \quad clement-i\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Phil 3:17-21; 4:1-3\quad\small Ev. Matt 16:13-19\\
+\small Com. felicity\\
+
+\medskip
+
+
+\textbf{ 24 } \quad john-of-the-cross\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+\small Com. chrysogonus\\
+
+\medskip
+
+
+\textbf{ 25 } \quad catherine-of-alexandria\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Sir 51:1-8; 51:12\quad\small Ev. Matt 25:1-13.\\
+
+\medskip
+
+
+\textbf{ 26 } \quad sylvester\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Ecclus 45:1-6\quad\small Ev. Matt 19:27-29.\\
+\small Com. peter-of-alexandria\\
+
+\medskip
+
+
+\textbf{ 27 } \quad Officium sanctae Mariae in sabbato\\
+\small class-4 \textperiodcentered\ white\\
+\small Ep. Ecclus 24:14-16\quad\small Ev. Luke 11:27-28\\
+
+\medskip
+
+
+\textbf{ 28 } \quad ef-advent-sunday-1\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. Rom 13:11-14\quad\small Ev. Luke 21:25-33\\
+
+\medskip
+
+
+\textbf{ 29 } \quad ef-advent-1-monday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Rom 13:11-14\quad\small Ev. Luke 21:25-33\\
+\small Com. saturninus\\
+
+\medskip
+
+
+\textbf{ 30 } \quad andrew\\
+\small class-2 \textperiodcentered\ red\\
+\small Ep. Rom 10:10-18\quad\small Ev. Matt 4:18-22\\
+\small Com. ef-advent-1-tuesday\\
+
+\medskip
+
+
+
+\section*{ December }
+
+\textbf{ 1 } \quad ef-advent-1-wednesday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Rom 13:11-14\quad\small Ev. Luke 21:25-33\\
+
+\medskip
+
+
+\textbf{ 2 } \quad vivian\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. Sir 51:13-17.\quad\small Ev. Matt 13:44-52.\\
+\small Com. ef-advent-1-thursday\\
+
+\medskip
+
+
+\textbf{ 3 } \quad francis-xavier\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Rom 10:10-18\quad\small Ev. Mark 16:15-18\\
+\small Com. ef-advent-1-friday\\
+
+\medskip
+
+
+\textbf{ 4 } \quad peter-chrysologus\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+\small Com. ef-advent-1-saturday\\
+\small Com. barbara\\
+
+\medskip
+
+
+\textbf{ 5 } \quad ef-advent-sunday-2\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. Rom 15:4-13\quad\small Ev. Matt 11:2-10\\
+
+\medskip
+
+
+\textbf{ 6 } \quad nicholas\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. Heb 13:7-17\quad\small Ev. Matt 25:14-23\\
+\small Com. ef-advent-2-monday\\
+
+\medskip
+
+
+\textbf{ 7 } \quad ambrose\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 2 Tim 4:1-8\quad\small Ev. Matt 5:13-19\\
+\small Com. ef-advent-2-tuesday\\
+
+\medskip
+
+
+\textbf{ 8 } \quad immaculate-conception-of-the-blessed-virgin-mary\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Prov 8:22-35\quad\small Ev. Luke 1:26-28\\
+\small Com. ef-advent-2-wednesday\\
+
+\medskip
+
+
+\textbf{ 9 } \quad ef-advent-2-thursday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Rom 15:4-13\quad\small Ev. Matt 11:2-10\\
+
+\medskip
+
+
+\textbf{ 10 } \quad ef-advent-2-friday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Rom 15:4-13\quad\small Ev. Matt 11:2-10\\
+\small Com. melchiades\\
+
+\medskip
+
+
+\textbf{ 11 } \quad damasus-i\\
+\small class-3 \textperiodcentered\ white\\
+\small Ep. 1 Pet 5:1-4; 5:10-11.\quad\small Ev. Matt 16:13-19\\
+\small Com. ef-advent-2-saturday\\
+
+\medskip
+
+
+\textbf{ 12 } \quad ef-advent-sunday-3\\
+\small class-1 \textperiodcentered\ rose\\
+\small Ep. Phil 4:4-7\quad\small Ev. John 1:19-28\\
+
+\medskip
+
+
+\textbf{ 13 } \quad lucy\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 2 Cor 10:17-18; 11:1-2\quad\small Ev. Matt 13:44-52.\\
+\small Com. ef-advent-3-monday\\
+
+\medskip
+
+
+\textbf{ 14 } \quad ef-advent-3-tuesday\\
+\small class-3 \textperiodcentered\ violet\\
+\small Ep. Phil 4:4-7\quad\small Ev. John 1:19-28\\
+
+\medskip
+
+
+\textbf{ 15 } \quad ef-advent-ember-wed\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. Isa 7:10-15\quad\small Ev. Luke 1:26-38\\
+
+\medskip
+
+
+\textbf{ 16 } \quad eusebius\\
+\small class-3 \textperiodcentered\ red\\
+\small Ep. 2 Cor. 1:3-7\quad\small Ev. Matt 16:24-27.\\
+\small Com. ef-advent-3-thursday\\
+
+\medskip
+
+
+\textbf{ 17 } \quad ef-advent-ember-fri\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. Isa 11:1-5\quad\small Ev. Luke 1:39-47\\
+
+\medskip
+
+
+\textbf{ 18 } \quad ef-advent-ember-sat\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. 2 Thess 2:1-8\quad\small Ev. Luke 3:1-6\\
+
+\medskip
+
+
+\textbf{ 19 } \quad ef-advent-sunday-4\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. 1 Cor. 4:1-5\quad\small Ev. Luke 3:1-6\\
+
+\medskip
+
+
+\textbf{ 20 } \quad ef-advent-4-monday\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. 1 Cor. 4:1-5\quad\small Ev. Luke 3:1-6\\
+
+\medskip
+
+
+\textbf{ 21 } \quad thomas\\
+\small class-2 \textperiodcentered\ red\\
+\small Ep. Eph 2:19-22\quad\small Ev. John 20:24-29\\
+\small Com. ef-advent-4-tuesday\\
+
+\medskip
+
+
+\textbf{ 22 } \quad ef-advent-4-wednesday\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. 1 Cor. 4:1-5\quad\small Ev. Luke 3:1-6\\
+
+\medskip
+
+
+\textbf{ 23 } \quad ef-advent-4-thursday\\
+\small class-2 \textperiodcentered\ violet\\
+\small Ep. 1 Cor. 4:1-5\quad\small Ev. Luke 3:1-6\\
+
+\medskip
+
+
+\textbf{ 24 } \quad ef-nativity-vigil\\
+\small class-1 \textperiodcentered\ violet\\
+\small Ep. Rom 1:1-6\quad\small Ev. Matt 1:18-21\\
+
+\medskip
+
+
+\textbf{ 25 } \quad ef-nativity\\
+\small class-1 \textperiodcentered\ white\\
+\small Ep. Heb 1:1-12\quad\small Ev. John 1:1-14\\
+
+\medskip
+
+
+\textbf{ 26 } \quad ef-christmas-sunday-0\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Gal 4:1-7\quad\small Ev. Luke 2:33-40\\
+\small Com. stephen\\
+
+\medskip
+
+
+\textbf{ 27 } \quad john-the-evangelist\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Ecclus 15:1-6\quad\small Ev. John 21:19-24\\
+\small Com. ef-nativity-octave-day-3\\
+
+\medskip
+
+
+\textbf{ 28 } \quad holy-innocents\\
+\small class-2 \textperiodcentered\ red\\
+\small Ep. Apoc 14:1-5\quad\small Ev. Matt 2:13-18\\
+\small Com. ef-nativity-octave-day-4\\
+
+\medskip
+
+
+\textbf{ 29 } \quad ef-nativity-octave-day-5\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Titus 3:4-7\quad\small Ev. Luke 2:15-20\\
+\small Com. thomas-becket\\
+
+\medskip
+
+
+\textbf{ 30 } \quad ef-nativity-octave-day-6\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Titus 3:4-7\quad\small Ev. Luke 2:15-20\\
+
+\medskip
+
+
+\textbf{ 31 } \quad ef-nativity-octave-day-7\\
+\small class-2 \textperiodcentered\ white\\
+\small Ep. Titus 3:4-7\quad\small Ev. Luke 2:15-20\\
+\small Com. silvester\\
+
+\medskip
+
+
+
+\end{document}
diff --git a/test/golden/ordo-2027.txt b/test/golden/ordo-2027.txt
new file mode 100644
index 0000000..daf66e3
--- /dev/null
+++ b/test/golden/ordo-2027.txt
@@ -0,0 +1,1986 @@
+
+Ianuarius 2027
+
+1 ef-circumcision
+ class-1 · white
+ Ep. Titus 2:11-15
+ Ev. Luke 2:21
+
+2 ef-christmas-1-saturday
+ class-4 · white
+ Ep. Titus 3:4-7
+ Ev. Luke 2:15-20
+
+3 ef-holy-name-sunday
+ class-2 · white
+ Ep. Acts 4:8-12
+ Ev. Luke 2:21
+
+4 ef-christmas-1-monday
+ class-4 · white
+ Ep. Titus 2:11-15
+ Ev. Luke 2:21
+
+5 ef-christmas-1-tuesday
+ class-4 · white
+ Ep. Titus 2:11-15
+ Ev. Luke 2:21
+ Com. telesphorus-pope-and-martyr
+
+6 ef-epiphany
+ class-1 · white
+ Ep. Isa 60:1-6
+ Ev. Matt 2:1-12
+
+7 ef-christmas-2-thursday
+ class-4 · white
+ Ep. Isa 60:1-6
+ Ev. Matt 2:1-12
+
+8 ef-christmas-2-friday
+ class-4 · white
+ Ep. Isa 60:1-6
+ Ev. Matt 2:1-12
+
+9 ef-christmas-2-saturday
+ class-4 · white
+ Ep. Titus 3:4-7
+ Ev. Luke 2:15-20
+
+10 ef-time-after-epiphany-sunday-1
+ class-2 · white
+ Ep. Col 3:12-17
+ Ev. Luke 2:42-52
+
+11 ef-time-after-epiphany-1-monday
+ class-4 · white
+ Ep. Rom 12:1-5
+ Ev. Luke 2:42-52
+ Com. hyginus-pope-and-martyr
+
+12 ef-time-after-epiphany-1-tuesday
+ class-4 · white
+ Ep. Rom 12:1-5
+ Ev. Luke 2:42-52
+
+13 commemoration-of-the-baptism-of-the-lord
+ class-2 · white
+ Ep. Isa 60:1-6
+ Ev. John 1:29-34
+
+14 hilary
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+ Com. felicis
+
+15 paul-the-first-hermit
+ class-3 · white
+ Ep. Phil 3:7-12
+ Ev. Matt 11:25-30
+ Com. maur-abbot
+
+16 marcellus-i
+ class-3 · red
+ Ep. 1 Pet 5:1-4; 5:10-11.
+ Ev. Matt 16:13-19
+
+17 ef-time-after-epiphany-sunday-2
+ class-2 · green
+ Ep. Rom 12:6-16
+ Ev. John 2:1-11
+
+18 ef-time-after-epiphany-2-monday
+ class-4 · green
+ Ep. Rom 12:6-16
+ Ev. John 2:1-11
+ Com. prisca
+
+19 ef-time-after-epiphany-2-tuesday
+ class-4 · green
+ Ep. Rom 12:6-16
+ Ev. John 2:1-11
+ Com. canute-martyr
+ Com. sts-marius-martha-audifax-abachum
+
+20 sts-fabian-sebastian
+ class-3 · red
+ Ep. Heb 11:33-39
+ Ev. Luke 6:17-23
+
+21 agnes
+ class-3 · red
+ Ep. Sir 51:1-8; 51:12
+ Ev. Matt 25:1-13.
+
+22 sts-vincent-anastasius
+ class-3 · red
+ Ep. Wis 3:1-8
+ Ev. Luke 21:9-19
+
+23 raymond-of-pe-afort
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Luke 12:35-40
+ Com. emerentiana
+
+24 ef-septuagesima-sunday-1
+ class-2 · violet
+ Ep. 1 Cor. 9:24-27; 10:1-5
+ Ev. Matt 20:1-16
+
+25 conversion-of-st-paul
+ class-3 · white
+ Ep. Acts 9:1-22
+ Ev. Matt 19:27-29.
+ Com. peter
+
+26 polycarp
+ class-3 · red
+ Ep. 1 John 3:10-16
+ Ev. Matt 10:26-32.
+
+27 john-chrysostom
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+
+28 peter-nolasco
+ class-3 · white
+ Ep. 1 Cor. 4:9-14
+ Ev. Luke 12:32-34
+ Com. agnes-secundo
+
+29 francis-de-sales
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+
+30 martina
+ class-3 · red
+ Ep. Sir 51:1-8; 51:12
+ Ev. Matt 25:1-13.
+
+31 ef-septuagesima-sunday-2
+ class-2 · violet
+ Ep. 2 Cor. 11:19-33; 12:1-9
+ Ev. Luke 8:4-15
+
+
+Februarius 2027
+
+1 ignatius-of-antioch
+ class-3 · red
+ Ep. Rom 8:35-39
+ Ev. John 12:24-26
+
+2 purification-of-the-blessed-virgin-mary
+ class-2 · white
+ Ep. Mal 3:1-4
+ Ev. Luke 2:22-32
+
+3 ef-septuagesima-2-wednesday
+ class-4 · violet
+ Ep. 2 Cor. 11:19-33; 12:1-9
+ Ev. Luke 8:4-15
+ Com. blaise
+
+4 andrew-corsini
+ class-3 · white
+ Ep. Sir 44:16-27; 45:3-20
+ Ev. Matt 25:14-23
+
+5 agatha
+ class-3 · red
+ Ep. 1 Cor. 1:26-31
+ Ev. Matt 19:3-12.
+
+6 titus
+ class-3 · white
+ Ep. Sir 44:16-27; 45:3-20
+ Ev. Luke 10:1-9
+ Com. dorothy
+
+7 ef-septuagesima-sunday-3
+ class-2 · violet
+ Ep. 1 Cor. 13:1-13
+ Ev. Luke 18:31-43
+
+8 john-of-matha
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Luke 12:35-40
+
+9 cyril-of-alexandria
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+ Com. appollonia
+
+10 ef-ash-wednesday
+ class-1 · violet
+ Ep. Joel 2:12-19
+ Ev. Matt 6:16-21
+
+11 ef-lent-after-ashes-thursday
+ class-3 · violet
+ Ep. Isa 38:1-6
+ Ev. Matt 8:5-13
+ Com. our-lady-of-lourdes
+
+12 ef-lent-after-ashes-friday
+ class-3 · violet
+ Ep. Isa 58:1-9
+ Ev. Matt 5:43-48; 6:1-4
+ Com. seven-holy-servite-founders
+
+13 ef-lent-after-ashes-saturday
+ class-3 · violet
+ Ep. Isa 58:9-14
+ Ev. Mark 6:47-56
+
+14 ef-lent-sunday-1
+ class-1 · violet
+ Ep. 2 Cor. 6:1-10
+ Ev. Matt 4:1-11
+
+15 ef-lent-1-monday
+ class-3 · violet
+ Ep. Ezech 34:11-16
+ Ev. Matt 25:31-46
+ Com. sts-faustinus-jovita
+
+16 ef-lent-1-tuesday
+ class-3 · violet
+ Ep. Isa 55:6-11
+ Ev. Matt 21:10-17
+
+17 ef-lent-ember-wed
+ class-2 · violet
+ Ep. 3 Kgs. 19:3-8
+ Ev. Matt 12:38-50
+
+18 ef-lent-1-thursday
+ class-3 · violet
+ Ep. Ezech 18:1-9
+ Ev. Matt 15:21-28
+ Com. simeon
+
+19 ef-lent-ember-fri
+ class-2 · violet
+ Ep. Ezech 18:20-28
+ Ev. John 5:1-15
+
+20 ef-lent-ember-sat
+ class-2 · violet
+ Ep. 1 Thess. 5:14-23
+ Ev. Matt 17:1-9
+
+21 ef-lent-sunday-2
+ class-1 · violet
+ Ep. 1 Thess. 4:1-7
+ Ev. Matt 17:1-9
+
+22 chair-of-st-peter
+ class-2 · white
+ Ep. 1 Pet 1:1-7
+ Ev. Matt 16:13-19
+ Com. ef-lent-2-monday
+ Com. paul
+
+23 ef-lent-2-tuesday
+ class-3 · violet
+ Ep. 3 Kings 17:8-16
+ Ev. Matt 23:1-12
+ Com. peter-damien
+
+24 matthias
+ class-2 · red
+ Ep. Acts 1:15-26
+ Ev. Matt 11:25-30
+ Com. ef-lent-2-wednesday
+
+25 ef-lent-2-thursday
+ class-3 · violet
+ Ep. Jer 17:5-10
+ Ev. Luke 16:19-31
+
+26 ef-lent-2-friday
+ class-3 · violet
+ Ep. Gen 37:6-22
+ Ev. Matt 21:33-46
+
+27 ef-lent-2-saturday
+ class-3 · violet
+ Ep. Gen 27:6-40
+ Ev. Luke 15:11-32
+ Com. gabriel-of-our-lady-of-sorrows
+
+28 ef-lent-sunday-3
+ class-1 · violet
+ Ep. Eph 5:1-9
+ Ev. Luke 11:14-28
+
+
+Martius 2027
+
+1 ef-lent-3-monday
+ class-3 · violet
+ Ep. 4 Kings 5:1-15
+ Ev. Luke 4:23-30
+
+2 ef-lent-3-tuesday
+ class-3 · violet
+ Ep. 4 Kings 4:1-7
+ Ev. Matt 18:15-22
+
+3 ef-lent-3-wednesday
+ class-3 · violet
+ Ep. Ex 20:12-24
+ Ev. Matt 15:1-20
+
+4 ef-lent-3-thursday
+ class-3 · violet
+ Ep. Jer 7:1-7
+ Ev. Luke 4:38-44.
+ Com. casimir
+ Com. lucius
+
+5 ef-lent-3-friday
+ class-3 · violet
+ Ep. Num 20:1, 3; 6-13.
+ Ev. John 4:5-42
+
+6 ef-lent-3-saturday
+ class-3 · violet
+ Ep. Dan 13:1-9, 15-17, 19-30, 33-62.
+ Ev. John 8:1-11
+ Com. sts-felicitas-perpetua
+
+7 ef-lent-sunday-4
+ class-1 · rose
+ Ep. Gal 4:22-31
+ Ev. John 6:1-15
+
+8 ef-lent-4-monday
+ class-3 · violet
+ Ep. 3 Kings 3:16-28
+ Ev. John 2:13-25
+ Com. john-of-god
+
+9 ef-lent-4-tuesday
+ class-3 · violet
+ Ep. Ex 32:7-14
+ Ev. John 7:14-31
+ Com. frances-rome
+
+10 ef-lent-4-wednesday
+ class-3 · violet
+ Ep. Isa. 1:16-19
+ Ev. John 9:1-38
+ Com. forty-holy-martyrs-of-sebaste
+
+11 ef-lent-4-thursday
+ class-3 · violet
+ Ep. 4 Kings 4:25-38
+ Ev. Luke 7:11-16
+
+12 ef-lent-4-friday
+ class-3 · violet
+ Ep. 3 Kings 17:17-24
+ Ev. John 11:1-45
+ Com. gregory-the-great
+
+13 ef-lent-4-saturday
+ class-3 · violet
+ Ep. Isa 49:8-15
+ Ev. John 8:12-20
+
+14 ef-passion-sunday
+ class-1 · violet
+ Ep. Heb 9:11-15.
+ Ev. John 8:46-59.
+
+15 ef-passiontide-1-monday
+ class-3 · violet
+ Ep. Jonas 3:1-10
+ Ev. John 7:32-39
+
+16 ef-passiontide-1-tuesday
+ class-3 · violet
+ Ep. Dan 14:27, 28-42
+ Ev. John 7:1-13
+
+17 ef-passiontide-1-wednesday
+ class-3 · violet
+ Ep. Lev 19:1-2, 11-19, 25
+ Ev. John 10:22-38
+ Com. patrick
+
+18 ef-passiontide-1-thursday
+ class-3 · violet
+ Ep. Dan 3:25, 34-45.
+ Ev. Luke 7:36-50
+ Com. cyril-of-jerusalem
+
+19 joseph-spouse-of-the-bl-virgin-mary
+ class-1 · white
+ Ep. Ecclus 45:1-6
+ Ev. Matt 1:18-21
+ Com. ef-passiontide-1-friday
+
+20 ef-passiontide-1-saturday
+ class-3 · violet
+ Ep. Jer 18:18-23
+ Ev. John 12:10-36
+
+21 ef-palm-sunday
+ class-1 · violet
+ Ep. Phil 2:5-11
+ Ev. Matt. 26:36-75; 27:1-60.
+
+22 ef-passiontide-2-monday
+ class-1 · violet
+ Ep. Isa 50:5-10
+ Ev. John 12:1-9
+
+23 ef-passiontide-2-tuesday
+ class-1 · violet
+ Ep. Jer 11:18-20
+ Ev. Mark 14:32-72; 15, 1-46
+
+24 ef-passiontide-2-wednesday
+ class-1 · violet
+ Ep. Isa 53:1-12
+ Ev. Luke 22:39-71; 23:1-53
+
+25 ef-passiontide-2-thursday
+ class-1 · white
+ Ep. 1 Cor 11:20-32
+ Ev. John 13:1-15
+
+26 ef-passiontide-2-friday
+ class-1 · black
+ Ep. Ex 12:1-11
+ Ev. John 18:1-40; 19:1-42
+
+27 ef-passiontide-2-saturday
+ class-1 · violet
+ Ep. Col 3:1-4
+ Ev. Matt 28:1-7
+
+28 ef-easter-sunday
+ class-1 · white
+ Ep. 1 Cor 5:7-8
+ Ev. Mark 16:1-7
+
+29 ef-easter-1-monday
+ class-1 · white
+ Ep. Acts 10:37-43.
+ Ev. Luke 24:13-35
+
+30 ef-easter-1-tuesday
+ class-1 · white
+ Ep. Acts 13:16; 13:26-33
+ Ev. Luke 24:36-47
+
+31 ef-easter-1-wednesday
+ class-1 · white
+ Ep. Acts 3:13-15; 3:17-19
+ Ev. John 21:1-14
+
+
+Aprilis 2027
+
+1 ef-easter-1-thursday
+ class-1 · white
+ Ep. Acts 8:26-40
+ Ev. John 20:11-18
+
+2 ef-easter-1-friday
+ class-1 · white
+ Ep. 1 Pet 3:18-22
+ Ev. Matt 28:16-20
+
+3 ef-easter-1-saturday
+ class-1 · white
+ Ep. 1 Pet 2:1-10
+ Ev. John 20:1-9
+
+4 ef-low-sunday
+ class-1 · white
+ Ep. 1 John 5:4-10
+ Ev. John 20:19-31
+
+5 annunciation-of-the-blessed-virgin-mary
+ class-1 · white
+ Ep. Isa 7:10-15
+ Ev. Luke 1:26-38
+
+6 ef-easter-2-tuesday
+ class-4 · white
+ Ep. 1 John 5:4-10
+ Ev. John 20:19-31
+
+7 ef-easter-2-wednesday
+ class-4 · white
+ Ep. 1 John 5:4-10
+ Ev. John 20:19-31
+
+8 ef-easter-2-thursday
+ class-4 · white
+ Ep. 1 John 5:4-10
+ Ev. John 20:19-31
+
+9 ef-easter-2-friday
+ class-4 · white
+ Ep. 1 John 5:4-10
+ Ev. John 20:19-31
+
+10 ef-easter-2-saturday
+ class-4 · white
+ Ep. Ecclus 24:14-16
+ Ev. John 19:25-27
+
+11 ef-easter-sunday-3
+ class-2 · white
+ Ep. 1 Pet 2:21-25
+ Ev. John 10:11-16
+
+12 ef-easter-3-monday
+ class-4 · white
+ Ep. 1 Pet 2:21-25
+ Ev. John 10:11-16
+
+13 hermenegild
+ class-3 · red
+ Ep. Wis 10:10-14
+ Ev. Luke 14:26-33.
+
+14 justin
+ class-3 · red
+ Ep. 1 Cor 1:18-25; 1:30;
+ Ev. Luke 12:2-8
+ Com. sts-tiburtius-valerian-et-maximus-martyrs
+
+15 ef-easter-3-thursday
+ class-4 · white
+ Ep. 1 Pet 2:21-25
+ Ev. John 10:11-16
+
+16 ef-easter-3-friday
+ class-4 · white
+ Ep. 1 Pet 2:21-25
+ Ev. John 10:11-16
+
+17 ef-easter-3-saturday
+ class-4 · white
+ Ep. Ecclus 24:14-16
+ Ev. John 19:25-27
+ Com. anicetus
+
+18 ef-easter-sunday-4
+ class-2 · white
+ Ep. 1 Pet 2:11-19
+ Ev. John 16:16-22
+
+19 ef-easter-4-monday
+ class-4 · white
+ Ep. 1 Pet 2:11-19
+ Ev. John 16:16-22
+
+20 ef-easter-4-tuesday
+ class-4 · white
+ Ep. 1 Pet 2:11-19
+ Ev. John 16:16-22
+
+21 anselm
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+
+22 sts-soter-caius
+ class-3 · red
+ Ep. 1 Pet 5:1-4; 5:10-11.
+ Ev. Matt 16:13-19
+
+23 ef-easter-4-friday
+ class-4 · white
+ Ep. 1 Pet 2:11-19
+ Ev. John 16:16-22
+ Com. george
+
+24 fidelis-of-sigmaringen
+ class-3 · red
+ Ep. Wis 5:1-5
+ Ev. John 15:1-7
+
+25 ef-easter-sunday-5
+ class-2 · white
+ Ep. Jas 1:17-21
+ Ev. John 16:5-14
+ Com. major-litanies
+
+26 sts-cletus-marcellinus
+ class-3 · red
+ Ep. 1 Pet 5:1-4; 5:10-11.
+ Ev. Matt 16:13-19
+
+27 peter-canisius
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+
+28 paul-of-the-cross
+ class-3 · white
+ Ep. 1 Cor 1:17-25.
+ Ev. Luke 10:1-9
+
+29 peter-of-verona
+ class-3 · red
+ Ep. 2 Tim. 2:8-10; 3:10-12.
+ Ev. Matt 10:34-42
+
+30 catherine-of-siena
+ class-3 · white
+ Ep. 2 Cor 10:17-18; 11:1-2
+ Ev. Matt 25:1-13.
+
+
+Maius 2027
+
+1 joseph-the-workman
+ class-1 · white
+ Ep. Col. 3:14-15, 17, 23-24
+ Ev. Matt 13:54-58
+
+2 ef-easter-sunday-6
+ class-2 · white
+ Ep. Jas 1:22-27
+ Ev. John 16:23-30
+
+3 ef-rogation-monday
+ class-4 · violet
+ Ep. Jas 1:22-27
+ Ev. John 16:23-30
+ Com. sts-alexander-companions
+
+4 monica
+ class-3 · white
+ Ep. 1 Tim. 5:3-10.
+ Ev. Luke 7:11-16
+
+5 ef-ascension-vigil
+ class-2 · white
+ Ep. Eph. 4:7-13.
+ Ev. John 17:1-11.
+ Com. pius-v
+
+6 ef-ascension
+ class-1 · white
+ Ep. Acts 1:1-11
+ Ev. Mark 16:14-20
+
+7 stanislaus
+ class-3 · red
+ Ep. Wis 5:1-5
+ Ev. John 15:1-7
+
+8 ef-easter-6-saturday
+ class-4 · white
+ Ep. Ecclus 24:14-16
+ Ev. John 19:25-27
+
+9 ef-easter-sunday-7
+ class-2 · white
+ Ep. 1 Pet 4:7-11.
+ Ev. John 15:26-27; 16:1-4.
+
+10 antoninus
+ class-3 · white
+ Ep. Sir 44:16-27; 45:3-20
+ Ev. Matt 25:14-23
+ Com. gordiano-and-epimacho
+
+11 sts-philip-james
+ class-2 · red
+ Ep. Wis. 5:1-5
+ Ev. John 14:1-13
+
+12 sts-nereus-achilleus-domitilla-pancras
+ class-3 · red
+ Ep. Wis. 5:1-5
+ Ev. John 4:46-53
+
+13 robert-bellarmine
+ class-3 · white
+ Ep. Wis 7:7-14.
+ Ev. Matt 5:13-19
+
+14 ef-easter-7-friday
+ class-4 · white
+ Ep. 1 Pet 4:7-11.
+ Ev. John 15:26-27; 16:1-4.
+ Com. boniface-martyr
+
+15 ef-pentecost-vigil
+ class-1 · red
+ Ep. Acts 19:1-8.
+ Ev. John 14:15-21.
+
+16 ef-pentecost
+ class-1 · red
+ Ep. Acts 2:1-11.
+ Ev. John 14:23-31.
+
+17 ef-easter-8-monday
+ class-1 · red
+ Ep. Acts 10:34, 42-48
+ Ev. John 3:16-21
+
+18 ef-easter-8-tuesday
+ class-1 · red
+ Ep. Acts 8:14-17.
+ Ev. John 10:1-10.
+
+19 ef-pentecost-ember-wed
+ class-1 · red
+ Ep. Acts 5:12-16
+ Ev. John 6:44-52.
+
+20 ef-easter-8-thursday
+ class-1 · red
+ Ep. Acts 8:5-8
+ Ev. Luke 9:1-6
+
+21 ef-pentecost-ember-fri
+ class-1 · red
+ Ep. Joel 2:23-24; 26-27
+ Ev. Luke 5:17-26
+
+22 ef-pentecost-ember-sat
+ class-1 · red
+ Ep. Rom 5:1-5.
+ Ev. Luke 4:38-44.
+
+23 ef-trinity
+ class-1 · white
+ Ep. Rom 11:33-36.
+ Ev. Matt 28:18-20
+
+24 ef-time-after-pentecost-1-monday
+ class-4 · green
+ Ep. 1 John 4:8-21
+ Ev. Luke 6:36-42
+
+25 gregory-vii
+ class-3 · white
+ Ep. 1 Pet 5:1-4; 5:10-11.
+ Ev. Matt 16:13-19
+ Com. urban-pope-and-martyr
+
+26 philip-neri
+ class-3 · white
+ Ep. Wis 7:7-14.
+ Ev. Luke 12:35-40
+ Com. eleutherius
+
+27 ef-corpus-christi
+ class-1 · white
+ Ep. 1 Cor 11:23-29
+ Ev. John 6:56-59
+
+28 augustine-of-canterbury
+ class-3 · white
+ Ep. 1 Thess 2:2-9
+ Ev. Luke 10:1-9
+
+29 mary-magdalene-de-pazzi
+ class-3 · white
+ Ep. 2 Cor 10:17-18; 11:1-2
+ Ev. Matt 25:1-13.
+
+30 ef-time-after-pentecost-sunday-2
+ class-2 · green
+ Ep. 1 John 3:13-18.
+ Ev. Luke 14:16-24.
+
+31 queenship-of-the-blessed-virgin-mary
+ class-2 · white
+ Ep. Eccli 24:5; 14:7; 14:9-11; 24:30-31
+ Ev. Luke 1:26-33
+ Com. petronilla
+
+
+Iunius 2027
+
+1 angela-merici
+ class-3 · white
+ Ep. 2 Cor 10:17-18; 11:1-2
+ Ev. Matt 25:1-13.
+
+2 ef-time-after-pentecost-2-wednesday
+ class-4 · green
+ Ep. 1 John 3:13-18.
+ Ev. Luke 14:16-24.
+ Com. sts-marcellinus-peter-erasmus
+
+3 ef-time-after-pentecost-2-thursday
+ class-4 · green
+ Ep. 1 John 3:13-18.
+ Ev. Luke 14:16-24.
+
+4 ef-sacred-heart
+ class-1 · white
+ Ep. Eph 3:8-12, 14-19
+ Ev. John 19:31-37
+
+5 boniface
+ class-3 · red
+ Ep. Ecclus 44:1-15
+ Ev. Matt 5:1-12
+
+6 ef-time-after-pentecost-sunday-3
+ class-2 · green
+ Ep. 1 Pet. 5:6-11
+ Ev. Luke 15:1-10
+
+7 ef-time-after-pentecost-3-monday
+ class-4 · green
+ Ep. 1 Pet. 5:6-11
+ Ev. Luke 15:1-10
+
+8 ef-time-after-pentecost-3-tuesday
+ class-4 · green
+ Ep. 1 Pet. 5:6-11
+ Ev. Luke 15:1-10
+
+9 ef-time-after-pentecost-3-wednesday
+ class-4 · green
+ Ep. 1 Pet. 5:6-11
+ Ev. Luke 15:1-10
+ Com. sts-primus-felicianus
+
+10 margaret-of-scotland
+ class-3 · white
+ Ep. Prov 31:10-31
+ Ev. Matt 13:44-52.
+
+11 barnabas
+ class-3 · red
+ Ep. Acts 11:21-26; 13:1-3
+ Ev. Matt 10:16-22
+
+12 john-of-san-fecundo
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Luke 12:35-40
+ Com. basilidus
+
+13 ef-time-after-pentecost-sunday-4
+ class-2 · green
+ Ep. Rom 8:18-23
+ Ev. Luke 5:1-11
+
+14 basil-the-great
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Luke 14:26-35
+
+15 ef-time-after-pentecost-4-tuesday
+ class-4 · green
+ Ep. Rom 8:18-23
+ Ev. Luke 5:1-11
+ Com. vitus
+
+16 ef-time-after-pentecost-4-wednesday
+ class-4 · green
+ Ep. Rom 8:18-23
+ Ev. Luke 5:1-11
+
+17 gregory-barbarigo
+ class-3 · white
+ Ep. Sir 44:16-27; 45:3-20
+ Ev. Matt 25:14-23
+
+18 ephrem-of-syria
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+ Com. marcus-and-marcellianus
+
+19 julia-of-falconieri
+ class-3 · white
+ Ep. 2 Cor 10:17-18; 11:1-2
+ Ev. Matt 25:1-13.
+ Com. sts-gervasius-and-protasius
+
+20 ef-time-after-pentecost-sunday-5
+ class-2 · green
+ Ep. 1 Pet 3:8-15.
+ Ev. Matt 5:20-24.
+
+21 aloysius-gongzaga
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Matt 22:29-40
+
+22 paulinus-of-nola
+ class-3 · white
+ Ep. 2 Cor. 8:9-15
+ Ev. Luke 12:32-34
+
+23 vigil-of-the-nativity-of-st-john-the-baptist
+ class-2 · violet
+ Ep. Jer 1:4-10
+ Ev. Luke 1:5-17
+
+24 nativity-of-st-john-the-baptist
+ class-1 · white
+ Ep. Isa 49:1-3, 5-7.
+ Ev. Luke 1:57-68
+
+25 william
+ class-3 · white
+ Ep. Ecclus 45:1-6
+ Ev. Matt 19:27-29.
+
+26 sts-john-paul
+ class-3 · red
+ Ep. Eccli 44:10-15
+ Ev. Luke 12:1-8
+
+27 ef-time-after-pentecost-sunday-6
+ class-2 · green
+ Ep. Rom 6:3-11.
+ Ev. Mark 8:1-9
+
+28 vigil-of-sts-peter-paul
+ class-2 · violet
+ Ep. Acts 3:1-10
+ Ev. John 21:15-19
+
+29 sts-peter-paul
+ class-1 · red
+ Ep. Acts 12:1-11
+ Ev. Matt 16:13-19
+
+30 in-commemoratione-sancti-pauli-apostoli
+ class-3 · red
+ Ep. Gal 1:11-20
+ Ev. Matt 10:16-22
+ Com. commemoration-of-st-peter
+
+
+Iulius 2027
+
+1 precious-blood-of-our-lord-jesus-christ
+ class-1 · red
+ Ep. Heb 9:11-15.
+ Ev. John 19:30-35
+
+2 visitation-of-the-blessed-virgin-mary
+ class-2 · white
+ Ep. Song 2:8-14
+ Ev. Luke 1:39-47
+ Com. processus-and-martinian
+
+3 irenaeus
+ class-3 · red
+ Ep. 2 Tim. 3:14-17; 4:1-5
+ Ev. Matt 10:28-33
+
+4 ef-time-after-pentecost-sunday-7
+ class-2 · green
+ Ep. Rom 6:19-23
+ Ev. Matt 7:15-21
+
+5 anthony-mary-zaccariah
+ class-3 · white
+ Ep. 1 Tim. 4:8-16
+ Ev. Mark 10:15-21
+
+6 ef-time-after-pentecost-7-tuesday
+ class-4 · green
+ Ep. Rom 6:19-23
+ Ev. Matt 7:15-21
+
+7 sts-cyril-methodius
+ class-3 · white
+ Ep. Heb 7:23-27
+ Ev. Luke 10:1-9
+
+8 elizabeth-of-portugal
+ class-3 · white
+ Ep. Prov 31:10-31
+ Ev. Matt 13:44-52.
+
+9 ef-time-after-pentecost-7-friday
+ class-4 · green
+ Ep. Rom 6:19-23
+ Ev. Matt 7:15-21
+
+10 seven-holy-brothers-and-sts-rufina-secunda
+ class-3 · red
+ Ep. Prov 31:10-31
+ Ev. Matt 12:46-50
+
+11 ef-time-after-pentecost-sunday-8
+ class-2 · green
+ Ep. Rom 8:12-17
+ Ev. Luke 16:1-9
+
+12 john-gualbert
+ class-3 · white
+ Ep. Ecclus 45:1-6
+ Ev. Matt 5:43-48
+ Com. naboris-et-felicis
+
+13 ef-time-after-pentecost-8-tuesday
+ class-4 · green
+ Ep. Rom 8:12-17
+ Ev. Luke 16:1-9
+
+14 bonaventure
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+
+15 henry-the-emperor
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Luke 12:35-40
+
+16 ef-time-after-pentecost-8-friday
+ class-4 · green
+ Ep. Rom 8:12-17
+ Ev. Luke 16:1-9
+ Com. our-lady-of-mt-carmel
+
+17 ef-time-after-pentecost-8-saturday
+ class-4 · white
+ Ep. Ecclus 24:14-16
+ Ev. Luke 11:27-28
+ Com. alexis
+
+18 ef-time-after-pentecost-sunday-9
+ class-2 · green
+ Ep. 1 Cor. 10:6-13
+ Ev. Luke 19:41-47
+
+19 vincent-de-paul
+ class-3 · white
+ Ep. 1 Cor. 4:9-14
+ Ev. Luke 10:1-9
+
+20 jerome-emiliani
+ class-3 · white
+ Ep. Isa 58:7-11
+ Ev. Matt 19:13-21
+ Com. margaret
+
+21 laurence-of-brindisi
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+ Com. praxedis-virginis
+
+22 mary-magdalene
+ class-3 · white
+ Ep. Song 3:2-5; 8:6-7
+ Ev. Luke 7:36-50
+
+23 apollinaris
+ class-3 · red
+ Ep. 1 Pet. 5:1-11
+ Ev. Luke 22:24-30
+ Com. liborii
+
+24 ef-time-after-pentecost-9-saturday
+ class-4 · white
+ Ep. Ecclus 24:14-16
+ Ev. Luke 11:27-28
+ Com. christina
+
+25 ef-time-after-pentecost-sunday-10
+ class-2 · green
+ Ep. 1 Cor. 12:2-11
+ Ev. Luke 18:9-14
+ Com. james-the-greater
+
+26 anne-mother-of-the-blessed-virgin
+ class-2 · white
+ Ep. Prov 31:10-31
+ Ev. Matt 13:44-52.
+
+27 ef-time-after-pentecost-10-tuesday
+ class-4 · green
+ Ep. 1 Cor. 12:2-11
+ Ev. Luke 18:9-14
+ Com. pantaleon
+
+28 sts-nazarius-celsus-st-victor-i-st-innocent-i
+ class-3 · red
+ Ep. Wis 10:17-20
+ Ev. Luke 21:9-19
+
+29 martha
+ class-3 · white
+ Ep. 2 Cor 10:17-18; 11:1-2
+ Ev. Luke 10:38-42
+ Com. felicis-simplicii-faustini-et-beatricis
+
+30 ef-time-after-pentecost-10-friday
+ class-4 · green
+ Ep. 1 Cor. 12:2-11
+ Ev. Luke 18:9-14
+ Com. sts-abdon-sennen
+
+31 ignatius-loyola
+ class-3 · white
+ Ep. 2 Tim. 2:8-10; 3:10-12.
+ Ev. Luke 10:1-9
+
+
+Augustus 2027
+
+1 ef-time-after-pentecost-sunday-11
+ class-2 · green
+ Ep. 1 Cor. 15:1-10
+ Ev. Mark 7:31-37
+
+2 alphonsus-liguori
+ class-3 · white
+ Ep. 2 Tim. 2:1-7
+ Ev. Luke 10:1-9
+ Com. stephen-i-pope-and-martyr
+
+3 ef-time-after-pentecost-11-tuesday
+ class-4 · green
+ Ep. 1 Cor. 15:1-10
+ Ev. Mark 7:31-37
+
+4 dominic
+ class-3 · white
+ Ep. 2 Tim. 4:1-8
+ Ev. Luke 12:35-40
+
+5 dedication-of-the-basilica-of-st-mary-major
+ class-3 · white
+ Ep. Ecclus 24:14-16
+ Ev. Luke 11:27-28
+
+6 transfiguration-of-our-lord
+ class-2 · white
+ Ep. 2 Pet. 1:16-19
+ Ev. Matt 17:1-9
+ Com. pope-sixtus-ii-felicissimus-and-agapitus-martyrs
+
+7 cajetan
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Matt 6:24-33
+ Com. donatus
+
+8 ef-time-after-pentecost-sunday-12
+ class-2 · green
+ Ep. 2 Cor. 3:4-9
+ Ev. Luke 10:23-37
+
+9 vigil-of-st-lawrence
+ class-3 · violet
+ Ep. Ecclus 51:1-8, 12
+ Ev. Matt 16:24-27
+ Com. romanus
+
+10 lawrence
+ class-2 · red
+ Ep. 2 Cor. 9:6-10
+ Ev. John 12:24-26
+
+11 ef-time-after-pentecost-12-wednesday
+ class-4 · green
+ Ep. 2 Cor. 3:4-9
+ Ev. Luke 10:23-37
+ Com. sts-tiburtius-susanna
+
+12 clare
+ class-3 · white
+ Ep. 2 Cor 10:17-18; 11:1-2
+ Ev. Matt 25:1-13.
+
+13 ef-time-after-pentecost-12-friday
+ class-4 · green
+ Ep. 2 Cor. 3:4-9
+ Ev. Luke 10:23-37
+ Com. sts-hippolytus-cassian
+
+14 vigil-of-the-assumption
+ class-2 · violet
+ Ep. Sir 24:23-31
+ Ev. Luke 11:27-28
+ Com. eusebius-confessor
+
+15 assumption-of-the-blessed-virgin-mary
+ class-1 · white
+ Ep. Judith 13:22-25; 15:10
+ Ev. Luke 1:41-50
+ Com. ef-time-after-pentecost-sunday-13
+
+16 joachim-father-of-the-blessed-virgin
+ class-2 · white
+ Ep. Sir 31:8-11
+ Ev. Matt 1:1-16
+
+17 hyacinth
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Luke 12:35-40
+
+18 ef-time-after-pentecost-13-wednesday
+ class-4 · green
+ Ep. Gal 3:16-22
+ Ev. Luke 17:11-19
+ Com. agapitus
+
+19 john-eudes
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Luke 12:35-40
+
+20 bernard-of-clairvaux
+ class-3 · white
+ Ep. Ecclus 39:6-14
+ Ev. Matt 5:13-19
+
+21 jane-frances-de-chantal
+ class-3 · white
+ Ep. Prov 31:10-31
+ Ev. Matt 13:44-52.
+
+22 ef-time-after-pentecost-sunday-14
+ class-2 · green
+ Ep. Gal 5:16-24
+ Ev. Matt 6:24-33
+ Com. immaculate-heart-of-mary
+
+23 philip-benizi
+ class-3 · white
+ Ep. 1 Cor. 4:9-14
+ Ev. Luke 12:32-34
+
+24 bartholomew
+ class-2 · red
+ Ep. 1 Cor. 12:27-31
+ Ev. Luke 6:12-19
+
+25 louis-ix
+ class-3 · white
+ Ep. Wis 10:10-14
+ Ev. Luke 19:12-26
+
+26 ef-time-after-pentecost-14-thursday
+ class-4 · green
+ Ep. Gal 5:16-24
+ Ev. Matt 6:24-33
+ Com. zephyrinus
+
+27 joseph-calasance
+ class-3 · white
+ Ep. Wis 10:10-14
+ Ev. Matt 18:1-5
+
+28 augustine
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+ Com. hermes
+
+29 ef-time-after-pentecost-sunday-15
+ class-2 · green
+ Ep. Gal 5:25-26; 6:1-10
+ Ev. Luke 7:11-16
+
+30 rose-of-lima
+ class-3 · white
+ Ep. 2 Cor 10:17-18; 11:1-2
+ Ev. Matt 25:1-13.
+ Com. sts-felix-and-adauctus
+
+31 raymond-nonnatus
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Luke 12:35-40
+
+
+September 2027
+
+1 ef-time-after-pentecost-15-wednesday
+ class-4 · green
+ Ep. Gal 5:25-26; 6:1-10
+ Ev. Luke 7:11-16
+ Com. giles
+ Com. twelve-holy-brothers-martyrs
+
+2 stephen-of-hungary
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Luke 19:12-26
+
+3 pius-x
+ class-3 · white
+ Ep. 1 Thess. 2:2-8
+ Ev. John 21:15-17
+
+4 ef-time-after-pentecost-15-saturday
+ class-4 · white
+ Ep. Ecclus 24:14-16
+ Ev. Luke 11:27-28
+
+5 ef-time-after-pentecost-sunday-16
+ class-2 · green
+ Ep. Eph 3:13-21
+ Ev. Luke 14:1-11
+
+6 ef-time-after-pentecost-16-monday
+ class-4 · green
+ Ep. Eph 3:13-21
+ Ev. Luke 14:1-11
+
+7 ef-time-after-pentecost-16-tuesday
+ class-4 · green
+ Ep. Eph 3:13-21
+ Ev. Luke 14:1-11
+
+8 nativity-of-the-blessed-virgin-mary
+ class-2 · white
+ Ep. Prov 8:22-35
+ Ev. Matt 1:1-16
+ Com. hadriani
+
+9 ef-time-after-pentecost-16-thursday
+ class-4 · green
+ Ep. Eph 3:13-21
+ Ev. Luke 14:1-11
+ Com. gorgonius
+
+10 nicholas-of-tolentino
+ class-3 · white
+ Ep. 1 Cor. 4:9-14
+ Ev. Luke 12:32-34
+
+11 ef-time-after-pentecost-16-saturday
+ class-4 · white
+ Ep. Ecclus 24:14-16
+ Ev. Luke 11:27-28
+ Com. sts-protus-hyacinth
+
+12 ef-time-after-pentecost-sunday-17
+ class-2 · green
+ Ep. Eph 4:1-6
+ Ev. Matt 22:34-46
+
+13 ef-time-after-pentecost-17-monday
+ class-4 · green
+ Ep. Eph 4:1-6
+ Ev. Matt 22:34-46
+
+14 exaltation-of-the-holy-cross
+ class-2 · red
+ Ep. Phil 2:5-11
+ Ev. John 12:31-36
+
+15 seven-sorrows-of-the-blessed-virgin-mary
+ class-2 · white
+ Ep. Judith 13:22; 13:23-25
+ Ev. John 19:25-27
+ Com. nicomedes
+
+16 sts-cornelius-cyprian
+ class-3 · red
+ Ep. Wis 3:1-8
+ Ev. Luke 21:9-19
+ Com. sts-euphemia-lucy-and-geminianus
+
+17 ef-time-after-pentecost-17-friday
+ class-4 · green
+ Ep. Eph 4:1-6
+ Ev. Matt 22:34-46
+ Com. stigmata-of-st-francis
+
+18 joseph-of-cupertino
+ class-3 · white
+ Ep. 1 Cor 13:1-8
+ Ev. Matt 22:1-14
+
+19 ef-time-after-pentecost-sunday-18
+ class-2 · green
+ Ep. 1 Cor. 1:4-8
+ Ev. Matt 9:1-8
+
+20 ef-time-after-pentecost-18-monday
+ class-4 · green
+ Ep. 1 Cor. 1:4-8
+ Ev. Matt 9:1-8
+ Com. sts-eustace-companions
+
+21 matthew
+ class-2 · red
+ Ep. Ezek 1:10-14
+ Ev. Matt 9:9-13
+
+22 ef-september-ember-wed
+ class-2 · violet
+ Ep. 2 Esd. 8:1-10
+ Ev. Mark 9:16-28
+ Com. thomas-of-villanova
+
+23 linus
+ class-3 · red
+ Ep. 1 Pet 5:1-4; 5:10-11.
+ Ev. Matt 16:13-19
+ Com. thecla
+
+24 ef-september-ember-fri
+ class-2 · violet
+ Ep. Osee 14:2-10
+ Ev. Luke 7:36-50
+ Com. our-lady-of-ransom
+
+25 ef-september-ember-sat
+ class-2 · violet
+ Ep. Heb 9:2-12
+ Ev. Luke 13:6-17
+
+26 ef-time-after-pentecost-sunday-19
+ class-2 · green
+ Ep. Eph 4:23-28
+ Ev. Matt 22:1-14
+
+27 sts-cosmas-damian
+ class-3 · red
+ Ep. Wis 5:16-20
+ Ev. Luke 6:17-23
+
+28 wenceslaus
+ class-3 · red
+ Ep. Wis 10:10-14
+ Ev. Matt 10:34-42
+
+29 dedication-of-st-michael-the-archangel
+ class-1 · white
+ Ep. Rev 1:1-5
+ Ev. Matt 18:1-10
+
+30 jerome
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+
+
+October 2027
+
+1 ef-time-after-pentecost-19-friday
+ class-4 · green
+ Ep. Eph 4:23-28
+ Ev. Matt 22:1-14
+ Com. remigius
+
+2 holy-guardian-angels
+ class-3 · white
+ Ep. Exod 23:20-23
+ Ev. Matt 18:1-10
+
+3 ef-time-after-pentecost-sunday-20
+ class-2 · green
+ Ep. Eph 5:15-21
+ Ev. John 4:46-53
+
+4 francis-of-assisi
+ class-3 · white
+ Ep. Gal 6:14-18
+ Ev. Matt 11:25-30
+
+5 ef-time-after-pentecost-20-tuesday
+ class-4 · green
+ Ep. Eph 5:15-21
+ Ev. John 4:46-53
+ Com. placid-companions
+
+6 bruno
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Luke 12:35-40
+
+7 our-lady-of-the-rosary
+ class-2 · white
+ Ep. Prov 8:22-24, 32-35.
+ Ev. Luke 1:26-38
+ Com. mark-i
+
+8 bridget-of-sweden
+ class-3 · white
+ Ep. 1 Tim. 5:3-10.
+ Ev. Matt 13:44-52.
+ Com. sergio-baccho-marcello-and-apulejo-martyrs
+
+9 john-leonardi
+ class-3 · white
+ Ep. 2 Cor 4:1-6; 4:15-18
+ Ev. Luke 10:1-9
+ Com. dionysius-and-companions
+
+10 ef-time-after-pentecost-sunday-21
+ class-2 · green
+ Ep. Eph 6:10-17
+ Ev. Matt 18:23-35
+
+11 maternity-of-the-blessed-virgin-mary
+ class-2 · white
+ Ep. Sir 24:23-31
+ Ev. Luke 2:43-51
+
+12 ef-time-after-pentecost-21-tuesday
+ class-4 · green
+ Ep. Eph 6:10-17
+ Ev. Matt 18:23-35
+
+13 edward
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Luke 12:35-40
+
+14 callistus-i
+ class-3 · red
+ Ep. 1 Pet 5:1-4; 5:10-11.
+ Ev. Matt 16:13-19
+
+15 teresa-of-avila
+ class-3 · white
+ Ep. 2 Cor 10:17-18; 11:1-2
+ Ev. Matt 25:1-13.
+
+16 hedwig
+ class-3 · white
+ Ep. Prov 31:10-31
+ Ev. Matt 13:44-52.
+
+17 ef-time-after-pentecost-sunday-22
+ class-2 · green
+ Ep. Phil 1:6-11
+ Ev. Matt 22:15-21
+
+18 luke-the-evangelist
+ class-2 · red
+ Ep. 2 Cor. 8:16-24
+ Ev. Luke 10:1-9
+
+19 peter-of-alcantara
+ class-3 · white
+ Ep. Phil 3:7-12
+ Ev. Luke 12:32-34
+
+20 john-cantius
+ class-3 · white
+ Ep. James 2:12-17
+ Ev. Luke 12:35-40
+
+21 ef-time-after-pentecost-22-thursday
+ class-4 · green
+ Ep. Phil 1:6-11
+ Ev. Matt 22:15-21
+ Com. hilarion
+ Com. ursula-and-companions
+
+22 ef-time-after-pentecost-22-friday
+ class-4 · green
+ Ep. Phil 1:6-11
+ Ev. Matt 22:15-21
+
+23 anthony-mary-claret
+ class-3 · white
+ Ep. Heb 7:23-27
+ Ev. Matt 24:42-47
+
+24 ef-time-after-pentecost-sunday-23
+ class-2 · green
+ Ep. Phil 3:17-21; 4:1-3
+ Ev. Matt 9:18-26
+
+25 ef-time-after-pentecost-23-monday
+ class-4 · green
+ Ep. Phil 3:17-21; 4:1-3
+ Ev. Matt 9:18-26
+ Com. sts-chrysanthus-daria
+
+26 ef-time-after-pentecost-23-tuesday
+ class-4 · green
+ Ep. Phil 3:17-21; 4:1-3
+ Ev. Matt 9:18-26
+ Com. evaristus
+
+27 ef-time-after-pentecost-23-wednesday
+ class-4 · green
+ Ep. Phil 3:17-21; 4:1-3
+ Ev. Matt 9:18-26
+
+28 sts-simon-jude
+ class-2 · red
+ Ep. Eph. 4:7-13.
+ Ev. John 15:17-25
+
+29 ef-time-after-pentecost-23-friday
+ class-4 · green
+ Ep. Phil 3:17-21; 4:1-3
+ Ev. Matt 9:18-26
+
+30 ef-time-after-pentecost-23-saturday
+ class-4 · white
+ Ep. Ecclus 24:14-16
+ Ev. Luke 11:27-28
+
+31 ef-christ-the-king
+ class-1 · white
+ Ep. Col 1:12-20.
+ Ev. John 18:33-37
+
+
+November 2027
+
+1 all-saints
+ class-1 · white
+ Ep. Apoc 7:2-12
+ Ev. Matt 5:1-12
+
+2 commemoration-of-all-souls
+ class-1 · black
+ Ep. 1 Cor. 15:51-57
+ Ev. John 5:25-29
+
+3 ef-time-after-pentecost-24-wednesday
+ class-4 · green
+ Ep. Col 1:12-20.
+ Ev. John 18:33-37
+
+4 charles-borromeo
+ class-3 · white
+ Ep. Sir 44:16-27; 45:3-20
+ Ev. Matt 25:14-23
+ Com. sts-vitalis-and-agricola-martyrs
+
+5 ef-time-after-pentecost-24-friday
+ class-4 · green
+ Ep. Col 1:12-20.
+ Ev. John 18:33-37
+
+6 ef-time-after-pentecost-24-saturday
+ class-4 · white
+ Ep. Ecclus 24:14-16
+ Ev. Luke 11:27-28
+
+7 ef-time-after-epiphany-sunday-5
+ class-2 · green
+ Ep. Col 3:12-17
+ Ev. Matt 13:24-30
+
+8 ef-time-after-pentecost-25-monday
+ class-4 · green
+ Ep. Col 3:12-17
+ Ev. Matt 13:24-30
+ Com. four-holy-crowned-martyrs
+
+9 dedication-of-the-archbasilica-of-our-holy-savior
+ class-2 · white
+ Ep. Rev 21:2-5
+ Ev. Luke 19:1-10
+ Com. theodore
+
+10 andrew-avellino
+ class-3 · white
+ Ep. Sir 31:8-11
+ Ev. Luke 12:35-40
+ Com. sts-tryphonis-respicii-et-nymphae
+
+11 martin-of-tours
+ class-3 · white
+ Ep. Sir 44:16-27; 45:3-20
+ Ev. Luke 11:33-36
+ Com. menna
+
+12 martin-i
+ class-3 · red
+ Ep. 1 Pet 5:1-4; 5:10-11.
+ Ev. Matt 16:13-19
+
+13 didacus
+ class-3 · white
+ Ep. 1 Cor 4:9-14
+ Ev. Luke 12:32-34
+
+14 ef-time-after-epiphany-sunday-6
+ class-2 · green
+ Ep. 1 Thess 1:2-10
+ Ev. Matt 13:31-35
+
+15 albert-the-great
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+
+16 gertrude-the-great
+ class-3 · white
+ Ep. 2 Cor 10:17-18; 11:1-2
+ Ev. Matt 25:1-13.
+
+17 gregory-the-wonderworker
+ class-3 · white
+ Ep. Sir 44:16-27; 45:3-20
+ Ev. Mark 11:22-24
+
+18 dedication-of-the-basilicas-of-sts-peter-paul
+ class-3 · white
+ Ep. Rev 21:2-5
+ Ev. Luke 19:1-10
+
+19 elizabeth-of-hungary
+ class-3 · white
+ Ep. Prov 31:10-31
+ Ev. Matt 13:44-52.
+ Com. pontian
+
+20 felix-of-valois
+ class-3 · white
+ Ep. 1 Cor. 4:9-14
+ Ev. Luke 12:32-34
+
+21 ef-time-after-pentecost-sunday-24
+ class-2 · green
+ Ep. Col 1:9-14
+ Ev. Matt 24:15-35
+
+22 cecilia
+ class-3 · red
+ Ep. Sir 51:13-17.
+ Ev. Matt 25:1-13.
+
+23 clement-i
+ class-3 · red
+ Ep. Phil 3:17-21; 4:1-3
+ Ev. Matt 16:13-19
+ Com. felicity
+
+24 john-of-the-cross
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+ Com. chrysogonus
+
+25 catherine-of-alexandria
+ class-3 · red
+ Ep. Sir 51:1-8; 51:12
+ Ev. Matt 25:1-13.
+
+26 sylvester
+ class-3 · white
+ Ep. Ecclus 45:1-6
+ Ev. Matt 19:27-29.
+ Com. peter-of-alexandria
+
+27 ef-time-after-pentecost-27-saturday
+ class-4 · white
+ Ep. Ecclus 24:14-16
+ Ev. Luke 11:27-28
+
+28 ef-advent-sunday-1
+ class-1 · violet
+ Ep. Rom 13:11-14
+ Ev. Luke 21:25-33
+
+29 ef-advent-1-monday
+ class-3 · violet
+ Ep. Rom 13:11-14
+ Ev. Luke 21:25-33
+ Com. saturninus
+
+30 andrew
+ class-2 · red
+ Ep. Rom 10:10-18
+ Ev. Matt 4:18-22
+ Com. ef-advent-1-tuesday
+
+
+December 2027
+
+1 ef-advent-1-wednesday
+ class-3 · violet
+ Ep. Rom 13:11-14
+ Ev. Luke 21:25-33
+
+2 vivian
+ class-3 · red
+ Ep. Sir 51:13-17.
+ Ev. Matt 13:44-52.
+ Com. ef-advent-1-thursday
+
+3 francis-xavier
+ class-3 · white
+ Ep. Rom 10:10-18
+ Ev. Mark 16:15-18
+ Com. ef-advent-1-friday
+
+4 peter-chrysologus
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+ Com. ef-advent-1-saturday
+ Com. barbara
+
+5 ef-advent-sunday-2
+ class-1 · violet
+ Ep. Rom 15:4-13
+ Ev. Matt 11:2-10
+
+6 nicholas
+ class-3 · white
+ Ep. Heb 13:7-17
+ Ev. Matt 25:14-23
+ Com. ef-advent-2-monday
+
+7 ambrose
+ class-3 · white
+ Ep. 2 Tim 4:1-8
+ Ev. Matt 5:13-19
+ Com. ef-advent-2-tuesday
+
+8 immaculate-conception-of-the-blessed-virgin-mary
+ class-1 · white
+ Ep. Prov 8:22-35
+ Ev. Luke 1:26-28
+ Com. ef-advent-2-wednesday
+
+9 ef-advent-2-thursday
+ class-3 · violet
+ Ep. Rom 15:4-13
+ Ev. Matt 11:2-10
+
+10 ef-advent-2-friday
+ class-3 · violet
+ Ep. Rom 15:4-13
+ Ev. Matt 11:2-10
+ Com. melchiades
+
+11 damasus-i
+ class-3 · white
+ Ep. 1 Pet 5:1-4; 5:10-11.
+ Ev. Matt 16:13-19
+ Com. ef-advent-2-saturday
+
+12 ef-advent-sunday-3
+ class-1 · rose
+ Ep. Phil 4:4-7
+ Ev. John 1:19-28
+
+13 lucy
+ class-3 · red
+ Ep. 2 Cor 10:17-18; 11:1-2
+ Ev. Matt 13:44-52.
+ Com. ef-advent-3-monday
+
+14 ef-advent-3-tuesday
+ class-3 · violet
+ Ep. Phil 4:4-7
+ Ev. John 1:19-28
+
+15 ef-advent-ember-wed
+ class-2 · violet
+ Ep. Isa 7:10-15
+ Ev. Luke 1:26-38
+
+16 eusebius
+ class-3 · red
+ Ep. 2 Cor. 1:3-7
+ Ev. Matt 16:24-27.
+ Com. ef-advent-3-thursday
+
+17 ef-advent-ember-fri
+ class-2 · violet
+ Ep. Isa 11:1-5
+ Ev. Luke 1:39-47
+
+18 ef-advent-ember-sat
+ class-2 · violet
+ Ep. 2 Thess 2:1-8
+ Ev. Luke 3:1-6
+
+19 ef-advent-sunday-4
+ class-1 · violet
+ Ep. 1 Cor. 4:1-5
+ Ev. Luke 3:1-6
+
+20 ef-advent-4-monday
+ class-2 · violet
+ Ep. 1 Cor. 4:1-5
+ Ev. Luke 3:1-6
+
+21 thomas
+ class-2 · red
+ Ep. Eph 2:19-22
+ Ev. John 20:24-29
+ Com. ef-advent-4-tuesday
+
+22 ef-advent-4-wednesday
+ class-2 · violet
+ Ep. 1 Cor. 4:1-5
+ Ev. Luke 3:1-6
+
+23 ef-advent-4-thursday
+ class-2 · violet
+ Ep. 1 Cor. 4:1-5
+ Ev. Luke 3:1-6
+
+24 ef-nativity-vigil
+ class-1 · violet
+ Ep. Rom 1:1-6
+ Ev. Matt 1:18-21
+
+25 ef-nativity
+ class-1 · white
+ Ep. Heb 1:1-12
+ Ev. John 1:1-14
+
+26 ef-christmas-sunday-0
+ class-2 · white
+ Ep. Gal 4:1-7
+ Ev. Luke 2:33-40
+ Com. stephen
+
+27 john-the-evangelist
+ class-2 · white
+ Ep. Ecclus 15:1-6
+ Ev. John 21:19-24
+ Com. ef-nativity-octave-day-3
+
+28 holy-innocents
+ class-2 · red
+ Ep. Apoc 14:1-5
+ Ev. Matt 2:13-18
+ Com. ef-nativity-octave-day-4
+
+29 ef-nativity-octave-day-5
+ class-2 · white
+ Ep. Titus 3:4-7
+ Ev. Luke 2:15-20
+ Com. thomas-becket
+
+30 ef-nativity-octave-day-6
+ class-2 · white
+ Ep. Titus 3:4-7
+ Ev. Luke 2:15-20
+
+31 ef-nativity-octave-day-7
+ class-2 · white
+ Ep. Titus 3:4-7
+ Ev. Luke 2:15-20
+ Com. silvester
+
+
diff --git a/test/test_colitur.ml b/test/test_colitur.ml
index 76ff685..04bbdee 100644
--- a/test/test_colitur.ml
+++ b/test/test_colitur.ml
@@ -6,4 +6,12 @@ let () =
Test_calendar.suite; Test_precedence_ef.suite; Test_sanctoral_ef.suite; Test_rite_ef.suite;
Test_differential.suite; Test_oracle.suite; Test_oracle.suite_2038; Test_oracle.suite_2035; Test_golden.suite;
("lectionary", Test_lectionary.suite);
- ("lectionary-ef", Test_lectionary_ef.suite) ]
+ ("lectionary-ef", Test_lectionary_ef.suite);
+ Test_escape.suite;
+ Test_template.suite;
+ Test_template.render_suite;
+ Test_view.suite;
+ Test_emit.suite;
+ Test_emit.xml_suite;
+ Test_ics.suite;
+ Test_render_golden.suite ]
diff --git a/test/test_emit.ml b/test/test_emit.ml
new file mode 100644
index 0000000..a22eaaf
--- /dev/null
+++ b/test/test_emit.ml
@@ -0,0 +1,203 @@
+module V = Colitur_render.View
+module Csv = Colitur_render.Emit_csv
+module Json = Colitur_render.Emit_json
+module Xml = Colitur_render.Emit_xml
+
+let view_2027 () = Test_view.view_of 2027
+
+(* Substring search shared by several live-data checks below (CSV, XML), in
+ place of a repeated inline recursive finder. *)
+let contains ~needle hay =
+ let n = String.length needle and h = String.length hay in
+ let rec go i = i + n <= h && (String.sub hay i n = needle || go (i + 1)) in
+ go 0
+
+(* A byte-accurate RFC 4180 field splitter. [String.split_on_char ','] cannot
+ be trusted to count fields: a correctly QUOTED field is legally allowed to
+ contain a comma (exactly what Joseph's own name field does below), so a
+ naive split over-counts by the number of internal commas whether or not
+ they are correctly quoted -- it cannot tell the difference, which is
+ precisely why the test this replaced was vacuous. *)
+let parse_csv_row line =
+ let n = String.length line in
+ let fields = ref [] in
+ let buf = Buffer.create 32 in
+ let i = ref 0 in
+ while !i < n do
+ if line.[!i] = '"' then begin
+ incr i;
+ let closed = ref false in
+ while (not !closed) && !i < n do
+ if line.[!i] = '"' then
+ if !i + 1 < n && line.[!i + 1] = '"' then begin
+ Buffer.add_char buf '"';
+ i := !i + 2
+ end
+ else begin
+ incr i;
+ closed := true
+ end
+ else begin
+ Buffer.add_char buf line.[!i];
+ incr i
+ end
+ done
+ end
+ else if line.[!i] = ',' then begin
+ fields := Buffer.contents buf :: !fields;
+ Buffer.clear buf;
+ incr i
+ end
+ else begin
+ Buffer.add_char buf line.[!i];
+ incr i
+ end
+ done;
+ fields := Buffer.contents buf :: !fields;
+ List.rev !fields
+
+let test_csv_header_and_rows () =
+ let out = Csv.year (view_2027 ()) in
+ let lines = String.split_on_char '\n' out |> List.filter (fun l -> l <> "") in
+ Alcotest.(check int) "366 lines: header + 365 days" 366 (List.length lines);
+ Alcotest.(check string) "header"
+ "date,rite,season,week,slug,rank,colour,subject,name_la,name_en,first,gospel,comms"
+ (List.hd lines);
+ Alcotest.(check bool) "first row is 1 January" true
+ (String.length (List.nth lines 1) > 10 && String.sub (List.nth lines 1) 0 10 = "2027-01-01")
+
+(* RFC 4180: a field containing a comma, quote or newline is quoted, and an
+ embedded quote is doubled. Feast names contain commas ("St. Joseph, Spouse
+ of the Bl. Virgin Mary"), so this is live on real data, not hypothetical. *)
+let test_csv_quotes_commas () =
+ Alcotest.(check string) "comma quoted" "\"a,b\"" (Csv.escape_field "a,b");
+ Alcotest.(check string) "quote doubled" "\"a\"\"b\"" (Csv.escape_field "a\"b");
+ Alcotest.(check string) "plain unquoted" "ab" (Csv.escape_field "ab");
+ let out = Csv.year (view_2027 ()) in
+ let joseph =
+ List.find
+ (fun l -> String.length l > 10 && String.sub l 0 10 = "2027-03-19")
+ (String.split_on_char '\n' out)
+ in
+ (* The check this replaced inspected the length of the FIRST field only --
+ always the 10-char ISO date, which can never contain a comma, so it
+ could never fail. Parse the row as RFC 4180 actually requires
+ (quote-aware) and check the FIELD COUNT against the header: a comma
+ that escapes its quoting produces 14 fields, not 13. Also assert the
+ quoted substring appears literally, byte for byte -- belt and braces,
+ and closer to what a human reviewing the CSV would actually look for. *)
+ Alcotest.(check int) "the row has exactly 13 fields, same as the header"
+ 13 (List.length (parse_csv_row joseph));
+ Alcotest.(check bool) "Joseph's comma-bearing name is quoted whole, not split" true
+ (contains ~needle:"\"St. Joseph, Spouse of the Bl. Virgin Mary\"" joseph)
+
+let test_json_parses_back () =
+ let out = Json.year (view_2027 ()) in
+ Alcotest.(check bool) "starts as an object" true (out.[0] = '{');
+ let count sub =
+ let n = String.length sub in
+ let rec go i acc =
+ if i + n > String.length out then acc
+ else go (i + 1) (if String.sub out i n = sub then acc + 1 else acc)
+ in
+ go 0 0
+ in
+ Alcotest.(check bool) "has a days array" true (count "\"days\":[" >= 1);
+ (* Every ISO date the view produced appears in the JSON -- that is the
+ property under test, not a specific occurrence count. The count is NOT
+ 1: the view deliberately offers both artefacts at every level (view.mli)
+ -- the flat top-level [days], each month's own [days], and that month's
+ [weeks] grid cell -- so an ordinary date's "iso" field appears 3 times.
+ Verified against the real 2027 engine output (all 365 dates checked);
+ the one exception is legitimate, not a bug: 2027-04-05 appears 6 times
+ because the Annunciation (25 March, impeded by Holy Week) transfers to
+ it under RG 96/98, and its own "to" target string is the identical
+ literal, tripled by the same structural redundancy. *)
+ Alcotest.(check int) "1 January appears (flat days + month days + week grid)" 3
+ (count "\"2027-01-01\"");
+ Alcotest.(check int) "31 December appears (flat days + month days + week grid)" 3
+ (count "\"2027-12-31\"")
+
+let test_json_escapes () =
+ Alcotest.(check string) "quote" "\"a\\\"b\"" (Json.escape_string "a\"b");
+ Alcotest.(check string) "backslash" "\"a\\\\b\"" (Json.escape_string "a\\b");
+ Alcotest.(check string) "newline" "\"a\\nb\"" (Json.escape_string "a\nb");
+ Alcotest.(check string) "tab" "\"a\\tb\"" (Json.escape_string "a\tb");
+ (* Control characters below 0x20 must be \u-escaped (RFC 8259 section 7). *)
+ Alcotest.(check string) "control" "\"a\\u0001b\"" (Json.escape_string "a\001b")
+
+let test_utf8_passes_through_json () =
+ Alcotest.(check string) "polish" "\"\xc5\x9awi\xc4\x99tej\"" (Json.escape_string "\xc5\x9awi\xc4\x99tej")
+
+let suite =
+ ( "Emit/csv+json",
+ [ Alcotest.test_case "csv header and rows" `Quick test_csv_header_and_rows;
+ Alcotest.test_case "csv quotes commas" `Quick test_csv_quotes_commas;
+ Alcotest.test_case "json parses back" `Quick test_json_parses_back;
+ Alcotest.test_case "json escapes" `Quick test_json_escapes;
+ Alcotest.test_case "json passes utf8 through" `Quick test_utf8_passes_through_json ] )
+
+let test_xml_shape () =
+ let out = Xml.year (view_2027 ()) in
+ Alcotest.(check bool) "declaration" true
+ (String.length out > 5 && String.sub out 0 5 = "<?xml");
+ Alcotest.(check bool) "root element" true
+ (contains ~needle:"<calendar rite=\"ef\" year=\"2027\">" out)
+
+(* Every '<' in the output must open a tag: an unescaped '<' inside a feast
+ name is the failure that makes a whole feed unparseable. *)
+let test_xml_tags_balance () =
+ let out = Xml.year (view_2027 ()) in
+ let opens = ref 0 and closes = ref 0 in
+ String.iter (fun c -> if c = '<' then incr opens else if c = '>' then incr closes) out;
+ Alcotest.(check int) "every < has a >" !opens !closes
+
+let test_xml_escapes_data () =
+ Alcotest.(check string) "amp" "a &amp; b" (Xml.escape "a & b");
+ Alcotest.(check string) "angle" "&lt;x&gt;" (Xml.escape "<x>")
+
+(* [is_entity_at s i] recognises the five predefined XML entities and a
+ numeric character reference starting at [s.[i]] = '&'. Anything else
+ starting at a '&' is a bare, illegal ampersand -- exactly what
+ [xmllint --noout] refuses a document over. *)
+let is_entity_at s i =
+ let n = String.length s in
+ let starts_with prefix =
+ let pn = String.length prefix in
+ i + pn <= n && String.sub s i pn = prefix
+ in
+ starts_with "&amp;" || starts_with "&lt;" || starts_with "&gt;"
+ || starts_with "&quot;" || starts_with "&apos;"
+ ||
+ (* &#NNN; -- one or more digits then ';'. *)
+ (i + 2 < n && s.[i + 1] = '#'
+ &&
+ let j = ref (i + 2) in
+ while !j < n && s.[!j] >= '0' && s.[!j] <= '9' do
+ incr j
+ done;
+ !j > i + 2 && !j < n && s.[!j] = ';')
+
+(* Live-data check. [test_xml_escapes_data] above proves [Escape.Xml] is
+ correct in isolation; it proves nothing about whether [Emit_xml.year]
+ actually CALLS it on every interpolated value -- bypassing that call
+ while leaving [Escape.Xml] itself untouched left every test in this suite
+ green (mutation-proven; see the branch review that found this). Real 2035
+ output carries "Sts. Fabian & Sebastian" (20 January) unescaped in the
+ source data, which is exactly the case that must come out as "&amp;", and
+ the whole document must then contain no OTHER bare '&' anywhere. *)
+let test_xml_escapes_live_data () =
+ let out = Xml.year (Test_view.view_of 2035) in
+ Alcotest.(check bool) "Fabian & Sebastian's ampersand is escaped" true
+ (contains ~needle:"&amp;" out);
+ let bare = ref 0 in
+ String.iteri (fun i c -> if c = '&' && not (is_entity_at out i) then incr bare) out;
+ Alcotest.(check int) "no bare, unescaped '&' anywhere in the document" 0 !bare
+
+let xml_suite =
+ ( "Emit/xml",
+ [ Alcotest.test_case "shape" `Quick test_xml_shape;
+ Alcotest.test_case "tags balance" `Quick test_xml_tags_balance;
+ Alcotest.test_case "escapes data" `Quick test_xml_escapes_data;
+ Alcotest.test_case "escapes live data (2035, Fabian & Sebastian)" `Quick
+ test_xml_escapes_live_data ] )
diff --git a/test/test_escape.ml b/test/test_escape.ml
new file mode 100644
index 0000000..35a9b9d
--- /dev/null
+++ b/test/test_escape.ml
@@ -0,0 +1,119 @@
+module E = Colitur_render.Escape
+
+let check = Alcotest.(check string)
+
+let test_latex () =
+ check "ampersand" "\\&" (E.apply E.Latex "&");
+ check "percent" "\\%" (E.apply E.Latex "%");
+ check "underscore" "\\_" (E.apply E.Latex "_");
+ check "braces" "\\{\\}" (E.apply E.Latex "{}");
+ check "backslash first" "\\textbackslash{}" (E.apply E.Latex "\\");
+ (* A real feast name that would otherwise break a .tex build. *)
+ check "real name" "Ss.mi Nominis Iesu \\& Mari\xc3\xa6"
+ (E.apply E.Latex "Ss.mi Nominis Iesu & Mari\xc3\xa6")
+
+let test_groff () =
+ check "backslash" "\\e" (E.apply E.Groff "\\");
+ (* RG-irrelevant but groff-critical: a leading dot starts a request. *)
+ check "leading dot" "\\&.Ss" (E.apply E.Groff ".Ss");
+ check "leading quote" "\\&'tis" (E.apply E.Groff "'tis");
+ check "interior dot untouched" "Ss.mi" (E.apply E.Groff "Ss.mi")
+
+let test_html_xml () =
+ check "amp first" "&amp;lt;" (E.apply E.Html "&lt;");
+ check "angles" "&lt;b&gt;" (E.apply E.Html "<b>");
+ check "quote" "&quot;" (E.apply E.Html "\"");
+ check "xml same" "&lt;b&gt;" (E.apply E.Xml "<b>")
+
+let test_ics () =
+ check "comma" "\\," (E.apply E.Ics ",");
+ check "semicolon" "\\;" (E.apply E.Ics ";");
+ check "backslash" "\\\\" (E.apply E.Ics "\\");
+ check "newline" "\\n" (E.apply E.Ics "\n")
+
+let test_none_is_identity () =
+ check "none" "& < > \\ % {}" (E.apply E.None_ "& < > \\ % {}")
+
+let test_flavour_names () =
+ List.iter
+ (fun f -> Alcotest.(check bool) "roundtrip" true (E.of_string (E.to_string f) = Some f))
+ [ E.Latex; E.Groff; E.Html; E.Xml; E.Ics; E.None_ ];
+ Alcotest.(check bool) "tex" true (E.of_extension ".tex" = Some E.Latex);
+ Alcotest.(check bool) "ms" true (E.of_extension ".ms" = Some E.Groff);
+ Alcotest.(check bool) "mom" true (E.of_extension ".mom" = Some E.Groff);
+ Alcotest.(check bool) "html" true (E.of_extension ".html" = Some E.Html);
+ Alcotest.(check bool) "md is none" true (E.of_extension ".md" = Some E.None_);
+ Alcotest.(check bool) "adoc is none" true (E.of_extension ".adoc" = Some E.None_);
+ Alcotest.(check bool) "txt is none" true (E.of_extension ".txt" = Some E.None_);
+ (* Spec section 5: an unknown extension is an ERROR, never a silent fallback. *)
+ Alcotest.(check bool) "unknown is None" true (E.of_extension ".wat" = None)
+
+let test_fold_short_line_unchanged () =
+ check "short" "SUMMARY:Feast\r\n" (E.fold_ics "SUMMARY:Feast")
+
+let test_fold_long_line () =
+ let long = "DESCRIPTION:" ^ String.make 200 'x' in
+ let out = E.fold_ics long in
+ let lines = String.split_on_char '\n' out in
+ List.iter
+ (fun l ->
+ let l = if l <> "" && l.[String.length l - 1] = '\r' then String.sub l 0 (String.length l - 1) else l in
+ if String.length l > 75 then Alcotest.failf "line of %d octets exceeds 75" (String.length l))
+ (List.filter (fun l -> l <> "") lines);
+ (* Continuation lines begin with exactly one space (RFC 5545 section 3.1). *)
+ match lines with
+ | _ :: second :: _ -> Alcotest.(check bool) "continuation starts with space" true (second.[0] = ' ')
+ | _ -> Alcotest.fail "expected the line to fold"
+
+(* RFC 5545 section 3.1 folds on OCTET boundaries; splitting mid-UTF-8 corrupts
+ Polish and Latin names, which is the whole reason this is not a template job. *)
+let test_fold_never_splits_utf8 () =
+ let long = "SUMMARY:" ^ String.concat "" (List.init 40 (fun _ -> "\xc4\x99\xc5\x9b\xc4\x87")) in
+ let out = E.fold_ics long in
+ let chunks =
+ List.filter_map
+ (fun l ->
+ let l = if l <> "" && l.[String.length l - 1] = '\r' then String.sub l 0 (String.length l - 1) else l in
+ if l = "" then None else if l.[0] = ' ' then Some (String.sub l 1 (String.length l - 1)) else Some l)
+ (String.split_on_char '\n' out)
+ in
+ (* The named property: no chunk may START with a UTF-8 continuation byte
+ (0x80-0xBF) -- that would mean the previous fold cut mid-character.
+ Unfolding losslessly (below) cannot detect this on its own: concatenation
+ is insensitive to where the cuts fell, so a fold at ANY position still
+ round-trips. *)
+ List.iter
+ (fun c ->
+ if String.length c > 0 then
+ Alcotest.(check bool) "chunk does not start mid-UTF-8" true (Char.code c.[0] land 0xC0 <> 0x80))
+ chunks;
+ let stripped = String.concat "" chunks in
+ check "unfolds to the original" long stripped
+
+(* B1 regression: 100 consecutive UTF-8 continuation bytes (0x80-0xBF) is not
+ producible by valid UTF-8 (whose longest continuation run is 3), but
+ fold_ics must stay TOTAL on arbitrary octet strings. A backoff loop with no
+ hard-cut fallback backs `cut` all the way down to `pos`, yielding a
+ zero-length chunk and recursing on the identical position forever. *)
+let test_fold_pathological_input_terminates () =
+ let pathological = String.make 100 '\x80' in
+ let out = E.fold_ics pathological in
+ let lines = String.split_on_char '\n' out in
+ List.iter
+ (fun l ->
+ let l = if l <> "" && l.[String.length l - 1] = '\r' then String.sub l 0 (String.length l - 1) else l in
+ if String.length l > 75 then Alcotest.failf "line of %d octets exceeds 75" (String.length l))
+ (List.filter (fun l -> l <> "") lines)
+
+let suite =
+ ( "Escape",
+ [ Alcotest.test_case "latex" `Quick test_latex;
+ Alcotest.test_case "groff" `Quick test_groff;
+ Alcotest.test_case "html/xml" `Quick test_html_xml;
+ Alcotest.test_case "ics" `Quick test_ics;
+ Alcotest.test_case "none is identity" `Quick test_none_is_identity;
+ Alcotest.test_case "flavour names" `Quick test_flavour_names;
+ Alcotest.test_case "fold: short unchanged" `Quick test_fold_short_line_unchanged;
+ Alcotest.test_case "fold: long line" `Quick test_fold_long_line;
+ Alcotest.test_case "fold: never splits utf8" `Quick test_fold_never_splits_utf8;
+ Alcotest.test_case "fold: pathological input terminates" `Quick test_fold_pathological_input_terminates ] )
diff --git a/test/test_ics.ml b/test/test_ics.ml
new file mode 100644
index 0000000..7d1ca37
--- /dev/null
+++ b/test/test_ics.ml
@@ -0,0 +1,143 @@
+module Ics = Colitur_render.Emit_ics
+
+let out_2027 () = Ics.year (Test_view.view_of 2027)
+
+let lines s =
+ String.split_on_char '\n' s
+ |> List.map (fun l -> if l <> "" && l.[String.length l - 1] = '\r' then String.sub l 0 (String.length l - 1) else l)
+ |> List.filter (fun l -> l <> "")
+
+let count_prefix p ls =
+ List.length (List.filter (fun l -> String.length l >= String.length p && String.sub l 0 (String.length p) = p) ls)
+
+let test_envelope () =
+ let ls = lines (out_2027 ()) in
+ Alcotest.(check string) "first line" "BEGIN:VCALENDAR" (List.hd ls);
+ Alcotest.(check string) "last line" "END:VCALENDAR" (List.nth ls (List.length ls - 1));
+ Alcotest.(check int) "version" 1 (count_prefix "VERSION:2.0" ls);
+ Alcotest.(check int) "prodid" 1 (count_prefix "PRODID:" ls);
+ Alcotest.(check int) "365 events" 365 (count_prefix "BEGIN:VEVENT" ls)
+
+(* RFC 5545 section 3.6.1: for an all-day event DTEND is EXCLUSIVE. Getting
+ this wrong shows every event a day short in every client. *)
+let test_dtend_is_exclusive () =
+ let ls = lines (out_2027 ()) in
+ let starts = List.filter_map (fun l ->
+ if count_prefix "DTSTART;VALUE=DATE:" [l] = 1 then
+ Some (String.sub l (String.length "DTSTART;VALUE=DATE:") 8) else None) ls in
+ let ends = List.filter_map (fun l ->
+ if count_prefix "DTEND;VALUE=DATE:" [l] = 1 then
+ Some (String.sub l (String.length "DTEND;VALUE=DATE:") 8) else None) ls in
+ Alcotest.(check int) "same count" (List.length starts) (List.length ends);
+ Alcotest.(check string) "1 Jan starts" "20270101" (List.hd starts);
+ Alcotest.(check string) "1 Jan ends on the 2nd" "20270102" (List.hd ends);
+ Alcotest.(check string) "31 Dec ends on 1 Jan next" "20280101"
+ (List.nth ends (List.length ends - 1))
+
+let test_uids_unique_and_shaped () =
+ let ls = lines (out_2027 ()) in
+ let uids = List.filter_map (fun l ->
+ if count_prefix "UID:" [l] = 1 then Some (String.sub l 4 (String.length l - 4)) else None) ls in
+ Alcotest.(check int) "365 uids" 365 (List.length uids);
+ let sorted = List.sort_uniq String.compare uids in
+ Alcotest.(check int) "all unique" 365 (List.length sorted);
+ Alcotest.(check string) "shape" "20270101-ef@colitur" (List.hd uids)
+
+(* The rule that punishes silently, months later, in someone else's phone:
+ regenerating a feed must not duplicate every event. *)
+let test_output_is_byte_stable_across_runs () =
+ Alcotest.(check string) "two runs identical" (out_2027 ()) (out_2027 ())
+
+let test_every_line_folded_and_crlf () =
+ let raw = out_2027 () in
+ List.iter
+ (fun l ->
+ if String.length l > 75 then Alcotest.failf "line of %d octets: %s" (String.length l) l)
+ (lines raw);
+ (* Every physical line ends CRLF (RFC 5545 section 3.1). *)
+ let n = String.length raw in
+ let rec check i =
+ if i >= n then ()
+ else if raw.[i] = '\n' then (
+ if i = 0 || raw.[i - 1] <> '\r' then Alcotest.failf "bare LF at offset %d" i;
+ check (i + 1))
+ else check (i + 1)
+ in
+ check 0
+
+let test_no_rrule () =
+ Alcotest.(check int) "no RRULE" 0 (count_prefix "RRULE" (lines (out_2027 ())))
+
+let test_text_escaped () =
+ let ls = lines (Ics.year (Test_view.view_of 2035)) in
+ (* 2035-04-03 is St Joseph, whose English name contains a comma. *)
+ let joseph = List.find (fun l -> count_prefix "SUMMARY:St. Joseph" [l] = 1) ls in
+ Alcotest.(check bool) "comma escaped" true
+ (let re = "\\," in
+ let n = String.length re in
+ let rec f i = i + n <= String.length joseph && (String.sub joseph i n = re || f (i + 1)) in
+ f 0)
+
+let test_dtstamp_is_a_parameter () =
+ let a = Ics.year ~dtstamp:"20200101T000000Z" (Test_view.view_of 2027) in
+ let b = Ics.year ~dtstamp:"20210101T000000Z" (Test_view.view_of 2027) in
+ Alcotest.(check bool) "differs with the parameter" true (a <> b);
+ (* DTSTAMP is a per-VEVENT property (RFC 5545 section 3.8.7.2), not a
+ calendar-level one -- every one of the 365 events carries the same
+ default value, not just one line in the whole feed. *)
+ Alcotest.(check int) "default is deterministic" 365
+ (count_prefix "DTSTAMP:20270101T000000Z" (lines (out_2027 ())))
+
+(* F1 (fix round 1, 2026-08-19): 9999 is the domain's own last civil year.
+ Its last VEVENT's successor date (10000-01-01) falls outside the
+ 1583..9999 domain [Date.make] enforces (date.mli) -- [Date.add_days] is
+ itself unbounded, and [to_iso8601] pads but never truncates, so the naive
+ successor string would be 9 digits, not 8. RFC 5545 section 3.6.1 makes a
+ DATE-valued DTSTART with neither DTEND nor DURATION mean exactly one day,
+ so [dtend_of] omits the DTEND line entirely for that one event rather than
+ emit it malformed. *)
+let out_9999 () = Ics.year (Test_view.view_of 9999)
+
+let test_dtend_omitted_at_domain_end () =
+ let ls = Array.of_list (lines (out_9999 ())) in
+ let n = Array.length ls in
+ let idx = ref (-1) in
+ Array.iteri (fun i l -> if l = "DTSTART;VALUE=DATE:99991231" then idx := i) ls;
+ if !idx < 0 then Alcotest.fail "DTSTART;VALUE=DATE:99991231 not found";
+ let next_line = if !idx + 1 < n then ls.(!idx + 1) else "" in
+ Alcotest.(check bool) "no DTEND line follows DTSTART 99991231" true
+ (count_prefix "DTEND;VALUE=DATE:" [ next_line ] = 0);
+ Alcotest.(check bool) "SUMMARY follows DTSTART directly instead" true
+ (count_prefix "SUMMARY:" [ next_line ] = 1)
+
+(* The general form of F1's bug class: every DTEND value anywhere in the
+ feed must be an 8-digit YYYYMMDD, never 9 (a future domain-boundary
+ regression anywhere else in 1583..9999 would show up here too). *)
+let test_all_9999_dtends_are_eight_digits () =
+ let ls = lines (out_9999 ()) in
+ let prefix = "DTEND;VALUE=DATE:" in
+ let ends =
+ List.filter_map
+ (fun l ->
+ if count_prefix prefix [ l ] = 1 then
+ Some (String.sub l (String.length prefix) (String.length l - String.length prefix))
+ else None)
+ ls
+ in
+ Alcotest.(check bool) "at least one DTEND present in 9999" true (List.length ends > 0);
+ List.iter
+ (fun v -> if String.length v <> 8 then Alcotest.failf "DTEND value %S is %d digits, not 8" v (String.length v))
+ ends
+
+let suite =
+ ( "Emit/ics",
+ [ Alcotest.test_case "envelope" `Quick test_envelope;
+ Alcotest.test_case "DTEND exclusive" `Quick test_dtend_is_exclusive;
+ Alcotest.test_case "uids unique and shaped" `Quick test_uids_unique_and_shaped;
+ Alcotest.test_case "byte-stable across runs" `Quick test_output_is_byte_stable_across_runs;
+ Alcotest.test_case "folded and CRLF" `Quick test_every_line_folded_and_crlf;
+ Alcotest.test_case "no RRULE" `Quick test_no_rrule;
+ Alcotest.test_case "text escaped" `Quick test_text_escaped;
+ Alcotest.test_case "DTSTAMP is a parameter" `Quick test_dtstamp_is_a_parameter;
+ Alcotest.test_case "DTEND omitted at domain end" `Quick test_dtend_omitted_at_domain_end;
+ Alcotest.test_case "all 9999 DTENDs are eight digits" `Quick test_all_9999_dtends_are_eight_digits ] )
diff --git a/test/test_render_golden.ml b/test/test_render_golden.ml
new file mode 100644
index 0000000..6340109
--- /dev/null
+++ b/test/test_render_golden.ml
@@ -0,0 +1,42 @@
+(* Pins the six shipped ordo booklet templates, one per flavour, under
+ templates/ef/, against a byte-for-byte golden render of 2027. These are
+ the templates a real user ships with colitur, rendered through the same
+ Template.render_string / View.of_days path colitur table uses -- so a
+ change to the view shape, the escaping rules, or the templates themselves
+ that alters output is caught here, not only in test_view.ml's shape
+ assertions. *)
+
+module T = Colitur_render.Template
+module E = Colitur_render.Escape
+
+let render_template path year =
+ let ic = open_in_bin path in
+ let src = really_input_string ic (in_channel_length ic) in
+ close_in ic;
+ let ext =
+ match String.rindex_opt path '.' with
+ | Some i -> String.sub path i (String.length path - i)
+ | None -> ""
+ in
+ let flavour = match E.of_extension ext with Some f -> f | None -> Alcotest.failf "flavour for %s" ext in
+ let v = Test_view.view_of year in
+ match T.render_string ~flavour src v with Ok s -> s | Error e -> Alcotest.failf "%s: %s" path e
+
+let read path =
+ let ic = open_in_bin path in
+ let s = really_input_string ic (in_channel_length ic) in
+ close_in ic;
+ s
+
+let check_golden name =
+ let got = render_template ("../templates/ef/" ^ name) 2027 in
+ let want = read ("golden/" ^ Filename.remove_extension name ^ "-2027" ^ Filename.extension name) in
+ Alcotest.(check string) name want got
+
+let cases =
+ [ "ordo.tex"; "ordo.ms"; "ordo.html"; "ordo.adoc"; "ordo.md"; "ordo.txt";
+ "grid.tex"; "grid.ms"; "grid.html" ]
+
+let suite =
+ ( "Render/golden",
+ List.map (fun n -> Alcotest.test_case n `Quick (fun () -> check_golden n)) cases )
diff --git a/test/test_support.ml b/test/test_support.ml
new file mode 100644
index 0000000..7d7662f
--- /dev/null
+++ b/test/test_support.ml
@@ -0,0 +1,65 @@
+(* Loaders for the real EF data (data/ef/*.sexp), extracted from
+ bin/main.ml's [load_ef_layer]/[load_ef_lectionary]/[load_ef_commons]
+ (bin/main.ml:154, :193, :206) and simplified to what the test suite
+ needs: no [~user_overlays], no COLITUR_DATA_DIR/installed-prefix
+ indirection (that machinery exists so the CLI finds its data next to
+ wherever it was installed or built -- tests always run from test/, where
+ test/dune already declares the four data/ef/*.sexp paths as [deps]).
+ Reading them via the same "../data/ef/..." relative paths test_calendar.ml,
+ test_rite_ef.ml and test_lectionary_ef.ml already use, not [bin/]'s own
+ [data_dir ()].
+
+ Deliberately NOT shared as a library with bin/main.ml: [bin/] and [test/]
+ are separate dune stanzas, and three small loaders duplicated here is
+ cheaper than a new library built just to serve them. bin/main.ml is not
+ changed to use this module -- the CLI keeps its own copy, already pinned
+ by test/cli.t. *)
+
+let sanctoral_path = "../data/ef/sanctoral.sexp"
+let adjustments_path = "../data/ef/adjustments.sexp"
+let lectionary_path = "../data/ef/lectionary.sexp"
+let commons_path = "../data/ef/commons.sexp"
+
+(* Mirrors bin/main.ml's [load_ef_layer]: the shipped sanctoral layer with
+ the shipped adjustments overlay merged on top (RG 110's 30 June
+ companion, the Major Litanies, Barbara, Rogation Wednesday -- see
+ adjustments.sexp's own header). No user overlays: the test suite always
+ wants the plain shipped calendar. Diagnostics are discarded rather than
+ surfaced -- the shipped overlay is asserted elsewhere (test_overlay.ml,
+ the "check" path) to merge clean; a test that wants to see them can
+ still call {!Colitur_kernel.Overlay.merge} directly. *)
+let load_ef_layer () =
+ match Colitur_kernel.Layer.load Rite_ef.Vocab_ef.rank_of_sexp sanctoral_path with
+ | Error e -> Error (Printf.sprintf "failed to load %s: %s" sanctoral_path e)
+ | Ok layer -> (
+ match Colitur_kernel.Overlay.load Rite_ef.Vocab_ef.rank_of_sexp adjustments_path with
+ | Error e -> Error (Printf.sprintf "failed to load %s: %s" adjustments_path e)
+ | Ok overlay ->
+ let layer, _diagnostics = Colitur_kernel.Overlay.merge layer [ overlay ] in
+ Ok layer)
+
+(* Mirrors bin/main.ml's [load_ef_lectionary]. *)
+let load_ef_lectionary () =
+ match Colitur_kernel.Lectionary.load lectionary_path with
+ | Error e -> Error (Printf.sprintf "failed to load %s: %s" lectionary_path e)
+ | Ok l -> Ok l
+
+(* Mirrors bin/main.ml's [load_ef_commons]. *)
+let load_ef_commons () =
+ match Rite_ef.Lectionary_ef.Commons.load commons_path with
+ | Error e -> Error (Printf.sprintf "failed to load %s: %s" commons_path e)
+ | Ok c -> Ok c
+
+(* Assembles [Rite_ef.context] the way bin/main.ml:328 does, over the real
+ shipped lectionary and Commons. Raises on a load failure rather than
+ returning a [result]: the four data files are declared [deps] in
+ test/dune, so a failure here means the test tree itself is broken, the
+ same condition test_calendar.ml's and test_rite_ef.ml's own
+ module-level loaders already treat as fatal. *)
+let ef_context () =
+ match load_ef_lectionary () with
+ | Error e -> failwith e
+ | Ok lectionary -> (
+ match load_ef_commons () with
+ | Error e -> failwith e
+ | Ok commons -> Rite_ef.context ~lectionary ~commons)
diff --git a/test/test_template.ml b/test/test_template.ml
new file mode 100644
index 0000000..b83c378
--- /dev/null
+++ b/test/test_template.ml
@@ -0,0 +1,165 @@
+module T = Colitur_render.Template
+
+let parse_ok s = match T.parse s with Ok ns -> ns | Error e -> Alcotest.failf "parse: %s" e
+
+let test_plain_text () =
+ Alcotest.(check bool) "text only" true (parse_ok "hello" = [ T.Text "hello" ])
+
+let test_var () =
+ Alcotest.(check bool) "var" true (parse_ok "{{name}}" = [ T.Var [ "name" ] ]);
+ Alcotest.(check bool) "dotted" true (parse_ok "{{name.la}}" = [ T.Var [ "name"; "la" ] ]);
+ Alcotest.(check bool) "spaces trimmed" true (parse_ok "{{ name.la }}" = [ T.Var [ "name"; "la" ] ])
+
+let test_section () =
+ Alcotest.(check bool) "section" true
+ (parse_ok "{{#days}}x{{/days}}" = [ T.Section ([ "days" ], [ T.Text "x" ]) ]);
+ Alcotest.(check bool) "inverted" true
+ (parse_ok "{{^days}}x{{/days}}" = [ T.Inverted ([ "days" ], [ T.Text "x" ]) ])
+
+let test_nested_sections () =
+ Alcotest.(check bool) "nested" true
+ (parse_ok "{{#months}}{{#weeks}}w{{/weeks}}{{/months}}"
+ = [ T.Section ([ "months" ], [ T.Section ([ "weeks" ], [ T.Text "w" ]) ]) ])
+
+let test_comment_is_dropped () =
+ Alcotest.(check bool) "comment" true (parse_ok "a{{! note }}b" = [ T.Text "a"; T.Text "b" ])
+
+let test_unclosed_section_is_an_error () =
+ match T.parse "{{#days}}x" with
+ | Error _ -> ()
+ | Ok _ -> Alcotest.fail "an unclosed section must be a parse error, not silently accepted"
+
+let test_mismatched_close_is_an_error () =
+ match T.parse "{{#days}}x{{/weeks}}" with
+ | Error _ -> ()
+ | Ok _ -> Alcotest.fail "a mismatched close tag must be a parse error"
+
+let test_unterminated_tag_is_an_error () =
+ match T.parse "{{name" with
+ | Error _ -> ()
+ | Ok _ -> Alcotest.fail "an unterminated tag must be a parse error"
+
+(* The safety promise (spec section 5): a template is data, never a program.
+ There is no raw/triple-brace form to opt out of escaping, and no partial. *)
+let test_no_raw_or_partial_form () =
+ (* {{{name}}} is not a triple-brace "unescaped" form -- there is no such
+ form in this engine, so this assertion states what parsing it ACTUALLY
+ produces rather than gesturing at a guarantee it cannot check: the
+ lexer only recognises double braces, so it reads an ordinary var whose
+ path is the literal string "{name", then a leftover "}" as text. The
+ real guarantee against a raw form is structural, not this assertion:
+ [node] has exactly four constructors -- Text, Var, Section, Inverted --
+ and none of them is raw/unescaped. If [node] ever grows a fifth, raw
+ constructor, this test is not what will catch it. *)
+ Alcotest.(check bool) "triple brace parses as var + stray text" true
+ (parse_ok "{{{name}}}" = [ T.Var [ "{name" ]; T.Text "}" ]);
+ match T.parse "{{>partial}}" with
+ | Error _ -> ()
+ | Ok _ -> Alcotest.fail "partials must not parse: a template may not pull in another file"
+
+(* No "current context" concept exists in this engine (sections push an
+ object; lookup falls back outward), so a bare-dot or empty-sigil path has
+ no meaning. Reject at parse time rather than inventing behaviour Task 3's
+ renderer would otherwise have to define for a case nobody designed. *)
+let test_empty_path_is_an_error () =
+ let expect_error label s =
+ match T.parse s with
+ | Error _ -> ()
+ | Ok _ -> Alcotest.failf "%s: an empty tag path must be a parse error" label
+ in
+ expect_error "{{.}}" "{{.}}";
+ expect_error "{{ . }}" "{{ . }}";
+ expect_error "{{#}}{{/}}" "{{#}}{{/}}";
+ expect_error "{{^}}{{/}}" "{{^}}{{/}}"
+
+let suite =
+ ( "Template/parse",
+ [ Alcotest.test_case "plain text" `Quick test_plain_text;
+ Alcotest.test_case "vars" `Quick test_var;
+ Alcotest.test_case "sections" `Quick test_section;
+ Alcotest.test_case "nested sections" `Quick test_nested_sections;
+ Alcotest.test_case "comments dropped" `Quick test_comment_is_dropped;
+ Alcotest.test_case "unclosed section errors" `Quick test_unclosed_section_is_an_error;
+ Alcotest.test_case "mismatched close errors" `Quick test_mismatched_close_is_an_error;
+ Alcotest.test_case "unterminated tag errors" `Quick test_unterminated_tag_is_an_error;
+ Alcotest.test_case "no raw or partial form" `Quick test_no_raw_or_partial_form;
+ Alcotest.test_case "empty path errors" `Quick test_empty_path_is_an_error ] )
+
+module E = Colitur_render.Escape
+
+let render ?(flavour = E.None_) tpl v =
+ match T.render_string ~flavour tpl v with Ok s -> s | Error e -> Alcotest.failf "render: %s" e
+
+let obj kvs = T.Obj kvs
+
+let test_render_var () =
+ Alcotest.(check string) "var" "Hilary" (render "{{name}}" (obj [ ("name", T.Str "Hilary") ]));
+ Alcotest.(check string) "dotted" "Hilarii"
+ (render "{{name.la}}" (obj [ ("name", obj [ ("la", T.Str "Hilarii") ]) ]))
+
+(* A missing key renders empty. This is the ONE silent case, and it is
+ deliberate: a template written for a rite that does not set every optional
+ field must still render (spec section 5). *)
+let test_missing_key_is_empty () =
+ Alcotest.(check string) "missing" "[]" (render "[{{nope}}]" (obj [ ("name", T.Str "x") ]))
+
+let test_section_iterates () =
+ let v = obj [ ("days", T.List [ obj [ ("dom", T.Str "1") ]; obj [ ("dom", T.Str "2") ] ]) ] in
+ Alcotest.(check string) "iterate" "1|2|" (render "{{#days}}{{dom}}|{{/days}}" v)
+
+let test_bool_section () =
+ Alcotest.(check string) "true" "yes" (render "{{#f}}yes{{/f}}" (obj [ ("f", T.Bool true) ]));
+ Alcotest.(check string) "false" "" (render "{{#f}}yes{{/f}}" (obj [ ("f", T.Bool false) ]));
+ Alcotest.(check string) "inverted true" "" (render "{{^f}}no{{/f}}" (obj [ ("f", T.Bool true) ]));
+ Alcotest.(check string) "inverted false" "no" (render "{{^f}}no{{/f}}" (obj [ ("f", T.Bool false) ]))
+
+let test_empty_list_section_is_skipped () =
+ Alcotest.(check string) "empty list" "" (render "{{#days}}x{{/days}}" (obj [ ("days", T.List []) ]));
+ Alcotest.(check string) "inverted empty list" "none"
+ (render "{{^days}}none{{/days}}" (obj [ ("days", T.List []) ]))
+
+let test_outer_scope_visible_inside_section () =
+ let v = obj [ ("year", T.Str "2027"); ("days", T.List [ obj [ ("dom", T.Str "1") ] ]) ] in
+ Alcotest.(check string) "outer visible" "2027-1"
+ (render "{{#days}}{{year}}-{{dom}}{{/days}}" v)
+
+(* THE safety property (spec section 9.2): a data value can never escape its
+ flavour. This is the test that must redden if any escape rule is broken. *)
+let test_data_cannot_escape_flavour () =
+ let nasty = obj [ ("name", T.Str "A & B \\ 50% {x} $y_z") ] in
+ let out = render ~flavour:E.Latex "{{name}}" nasty in
+ Alcotest.(check string) "fully escaped" "A \\& B \\textbackslash{} 50\\% \\{x\\} \\$y\\_z" out;
+ let hout = render ~flavour:E.Html "{{name}}" (obj [ ("name", T.Str "<script>") ]) in
+ Alcotest.(check string) "html escaped" "&lt;script&gt;" hout
+
+(* Literal template text is NOT escaped -- it is the author's own markup. Only
+ interpolated DATA is escaped. Getting this backwards would make every
+ template render as visible source. *)
+(* NOTE: the brief's own example here was "\textbf{{{name}}}", i.e. a literal
+ "{" immediately followed by "{{name}}". That does not parse the way the
+ brief assumes: this engine's lexer (Task 2, frozen) is greedy left-to-right
+ and has no triple-brace special case (by design -- there is no raw form),
+ so three consecutive "{" are read as an ordinary tag opener "{{" followed
+ by a path that literally starts with "{" ("{name"), which resolves to
+ nothing and renders empty, plus a stray literal "}" -- exactly what
+ test_no_raw_or_partial_form above already documents for "{{{name}}}" on
+ its own. Verified live: the brief's original line reddens with "\textbf}",
+ not "\textbf{Hilary}". Rewritten below to put a character between the
+ literal "{" and the tag's own "{{", which sidesteps the ambiguity while
+ still proving the same property: literal backslash/braces from Text survive
+ unescaped, where a wrongly-escaped Text node would turn "\textbf{" into
+ "\textbackslash{}\{". *)
+let test_literal_markup_is_not_escaped () =
+ Alcotest.(check string) "literal kept" "\\textbf{Name: Hilary}"
+ (render ~flavour:E.Latex "\\textbf{Name: {{name}}}" (obj [ ("name", T.Str "Hilary") ]))
+
+let render_suite =
+ ( "Template/render",
+ [ Alcotest.test_case "vars" `Quick test_render_var;
+ Alcotest.test_case "missing key is empty" `Quick test_missing_key_is_empty;
+ Alcotest.test_case "section iterates" `Quick test_section_iterates;
+ Alcotest.test_case "bool sections" `Quick test_bool_section;
+ Alcotest.test_case "empty list sections" `Quick test_empty_list_section_is_skipped;
+ Alcotest.test_case "outer scope visible" `Quick test_outer_scope_visible_inside_section;
+ Alcotest.test_case "data cannot escape flavour" `Quick test_data_cannot_escape_flavour;
+ Alcotest.test_case "literal markup unescaped" `Quick test_literal_markup_is_not_escaped ] )
diff --git a/test/test_view.ml b/test/test_view.ml
new file mode 100644
index 0000000..e595357
--- /dev/null
+++ b/test/test_view.ml
@@ -0,0 +1,119 @@
+module V = Colitur_render.View
+module T = Colitur_render.Template
+
+(* Build one civil year of resolved days exactly as the CLI does. *)
+let days_of_year y =
+ let layer =
+ match Test_support.load_ef_layer () with Ok l -> l | Error e -> Alcotest.failf "layer: %s" e
+ in
+ let context = Test_support.ef_context () in
+ let module Cal = Colitur_kernel.Calendar in
+ let module D = Colitur_kernel.Date in
+ let tbl = Hashtbl.create 400 in
+ let index days =
+ Array.iter (fun d -> Hashtbl.replace tbl (D.to_rata d.Colitur_kernel.Liturgical_day.date) d) days
+ in
+ index (Cal.year context layer (y - 1));
+ index (Cal.year context layer y);
+ let jan1 = Result.get_ok (D.make ~year:y ~month:1 ~day:1) in
+ let dec31 = Result.get_ok (D.make ~year:y ~month:12 ~day:31) in
+ let out = ref [] and d = ref jan1 in
+ while D.compare !d dec31 <= 0 do
+ (match Hashtbl.find_opt tbl (D.to_rata !d) with Some x -> out := x :: !out | None -> ());
+ d := D.add_days !d 1
+ done;
+ List.rev !out
+
+let view_of y =
+ V.of_days ~vocab:Rite_ef.Vocab_ef.vocab ~rite:"ef" ~year:y (days_of_year y)
+
+let get path v =
+ let rec go v = function
+ | [] -> v
+ | k :: tl -> (
+ match v with
+ | T.Obj kvs -> (
+ match List.assoc_opt k kvs with Some v' -> go v' tl | None -> Alcotest.failf "no key %s" k)
+ | _ -> Alcotest.failf "not an object at %s" k)
+ in
+ go v path
+
+let as_list = function T.List l -> l | _ -> Alcotest.fail "expected a list"
+let as_str = function T.Str s -> s | _ -> Alcotest.fail "expected a string"
+let as_bool = function T.Bool b -> b | _ -> Alcotest.fail "expected a bool"
+
+let test_year_shape () =
+ let v = view_of 2027 in
+ Alcotest.(check string) "rite" "ef" (as_str (get [ "rite" ] v));
+ Alcotest.(check string) "year" "2027" (as_str (get [ "year" ] v));
+ Alcotest.(check int) "twelve months" 12 (List.length (as_list (get [ "months" ] v)));
+ Alcotest.(check int) "365 days" 365 (List.length (as_list (get [ "days" ] v)))
+
+(* THE property the grid depends on: weeks flatten to the month's days plus
+ padding, and every real day appears exactly once (spec section 9.3). *)
+let test_weeks_flatten_to_days () =
+ let v = view_of 2027 in
+ List.iter
+ (fun m ->
+ let weeks = as_list (get [ "weeks" ] m) in
+ let cells = List.concat_map (fun w -> as_list (get [ "days" ] w)) weeks in
+ List.iter
+ (fun w -> Alcotest.(check int) "seven cells per week" 7 (List.length (as_list (get [ "days" ] w))))
+ weeks;
+ let real = List.filter (fun c -> as_bool (get [ "in_month" ] c)) cells in
+ let own = as_list (get [ "days" ] m) in
+ Alcotest.(check int) "real cells = month days" (List.length own) (List.length real);
+ List.iter2
+ (fun a b -> Alcotest.(check string) "same day, same order" (as_str (get [ "iso" ] a)) (as_str (get [ "iso" ] b)))
+ own real)
+ (as_list (get [ "months" ] v))
+
+let test_padding_cells_are_flagged () =
+ let v = view_of 2027 in
+ let jan = List.hd (as_list (get [ "months" ] v)) in
+ let first_week = List.hd (as_list (get [ "weeks" ] jan)) in
+ let cells = as_list (get [ "days" ] first_week) in
+ (* 1 January 2027 is a Friday, so the first week has five padding cells. *)
+ Alcotest.(check int) "five padding cells" 5
+ (List.length (List.filter (fun c -> not (as_bool (get [ "in_month" ] c))) cells));
+ List.iter
+ (fun c ->
+ if not (as_bool (get [ "in_month" ] c)) then
+ Alcotest.(check string) "padding has empty iso" "" (as_str (get [ "iso" ] c)))
+ cells
+
+let test_day_fields () =
+ let v = view_of 2027 in
+ let d =
+ List.find (fun d -> as_str (get [ "iso" ] d) = "2027-01-13") (as_list (get [ "days" ] v))
+ in
+ Alcotest.(check string) "slug" "commemoration-of-the-baptism-of-the-lord" (as_str (get [ "slug" ] d));
+ Alcotest.(check string) "colour" "white" (as_str (get [ "colour" ] d));
+ Alcotest.(check bool) "is_white" true (as_bool (get [ "is_white" ] d));
+ Alcotest.(check bool) "is_violet" false (as_bool (get [ "is_violet" ] d));
+ Alcotest.(check int) "dow friday" 3 (int_of_string (as_str (get [ "dow" ] d)));
+ Alcotest.(check bool) "first citation present" true (as_str (get [ "first" ] d) <> "");
+ Alcotest.(check bool) "gospel citation present" true (as_str (get [ "gospel" ] d) <> "")
+
+(* Exactly one of the six colour booleans is true on every day of a whole year:
+ a template that keys a cell colour off them can never get no colour or two. *)
+let test_exactly_one_colour_flag () =
+ let v = view_of 2027 in
+ List.iter
+ (fun d ->
+ let n =
+ List.length
+ (List.filter
+ (fun k -> as_bool (get [ k ] d))
+ [ "is_white"; "is_red"; "is_green"; "is_violet"; "is_rose"; "is_black" ])
+ in
+ if n <> 1 then Alcotest.failf "%s has %d colour flags set" (as_str (get [ "iso" ] d)) n)
+ (as_list (get [ "days" ] v))
+
+let suite =
+ ( "View",
+ [ Alcotest.test_case "year shape" `Quick test_year_shape;
+ Alcotest.test_case "weeks flatten to days" `Quick test_weeks_flatten_to_days;
+ Alcotest.test_case "padding cells flagged" `Quick test_padding_cells_are_flagged;
+ Alcotest.test_case "day fields" `Quick test_day_fields;
+ Alcotest.test_case "exactly one colour flag" `Quick test_exactly_one_colour_flag ] )