romcal
romcal copied to clipboard
Historical and extraordinary form calendar
I have another suggestion that would require a bit of coding. It is even less important (at least to me) than issue #20, but if we are in the future about to implement it, all the coding from now on should take this in mind.
I propose to add a ’historical calendar.’ What I mean is we would:
- add options for
- forced Novo Ordo Missæ calendar
- forced Traditional (Tridentine) Mass calendar
- automatic detection of calendar (Tridentine calendar between Tridentine and II. Vatican Councils; after II. Vatican Council Novo Ordo calendar)
Nice feature also would be to implement the day of addition of a celebration. What I mean is that a celebration (e.g. a saints day of celebration) is added to the calendar (either general or national) is added continually, not at the beginning. Just remember St John Paul II—before his canonisation there no celebration in the liturgy of this great saint. This would be included in all three ‘options’ listed above, of course, what was added only after II. Vatican Council, should not be added in the Tridentine calendar.
And the reason to have a forced calendar generation option is that (1) the Tridentine Mass wasn’t cancelled yet, and (2) for ‘artificial’ historical calendars generation (just to know, when would a celebration occur and probably even to compare it to the other, real historic calendar).
I think that for beginning we should add two things.
Firstly, add possiblity to change calendar type. For that we need to create const Calendars
in src/constants/Calendars.mjs
(you might want to change anything in it):
const Calendars = {
"tridentine": "Tridentine Calendar", // https://en.wikipedia.org/wiki/Tridentine_Calendar
"cal1954": "General Roman Calendar of 1954", // https://en.wikipedia.org/wiki/General_Roman_Calendar_of_1954
"cal1955": "General Roman Calendar of Pope Pius XII", // https://en.wikipedia.org/wiki/General_Roman_Calendar_of_Pope_Pius_XII
"cal1960": "General Roman Calendar of 1960", // https://en.wikipedia.org/wiki/General_Roman_Calendar_of_1960; this is currently autherised as extraordinary form of the Roman Rite (‘Tridentine Mass’ that might be currently celebrated)
"cal1969": "General Roman Calendar of 1969 (current)" // https://en.wikipedia.org/wiki/Mysterii_Paschalis; this is the current GRC
};
export default Calendars;
Then, we need to have an option choose a calendar in the following method (calendar: 'cal1969'
):
romcal.calendarFor({
year: 2018,
calendar: 'cal1969',
country 'unitedStates',
locale: 'plPl',
christmastideEnds: 't|o|e',
epiphanyOnJan6: true|false,
christmastideIncludesTheSeasonOfEpiphany: true | false,
corpusChristiOnThursday: true|false,
ascensionOnSunday: true|false,
type: 'calendar|liturgical',
query: {
day: 0 - 6, // 0 - Sunday, 6 - Saturday (week beginning with Sunday)
month: 0 - 11, // 0 - Jan, 11 - Dec (month begining with Jan)
group: '',
title: '',
}
},
true|false );
We also need to have separate celebrations for each calendar. We should create a folder for each calendar in src/calendars/
, where the calendar files themselves would be located.
As for the locale keys, I still don’t know if you accept my celebration separation proposal—I presume you’ve accepted it. Then, I suggest to create src/locales/{saints,celebrations}
folders. saints/
would contain the *.mjs
files themselves that contain full names of all saints and blesseds from calendars in localised form (as proposed in separation issue #12, this comment). The same would in celebrations
folder (name change might be required), but for all other celebrations that are not persons (like Presentation of the Lord).
Secondly, I propose to add to celebrations (in src/calendars/*/*.mjs
) a start date and end date of celebration (or from
and to
properties) to all celebrations. The purpose of these is to be able to set a period in which the particular celebration is/was celebrated. See the example (note: this whole example would be included in src/calendars/cal1969/general.mjs
):
{
"key": "maryMagdalene",
"type": Types[5],
"moment": moment.utc({ year: year, month: 6, day: 22 }),
"data": {
"meta": {
"liturgicalColor": LiturgicalColors.WHITE
"from": moment.utc({ year: 1969, month: 1, day: 14 }), // date of release of Mysterii Paschalis
"to": moment.utc({ year: 2016, month: 5, day: 2 }), // date before release of the decree changing the celebration type from memorial to feast
}
}
},
{
"key": "maryMagdalene",
"type": Types[4],
"moment": moment.utc({ year: year, month: 6, day: 22 }),
"data": {
"meta": {
"liturgicalColor": LiturgicalColors.WHITE
"from": moment.utc({ year: 2016, month: 5, day: 3 }), // date of release of the decree changing the celebration type from memorial to feast
}
}
}
Just for visual information, these suggestion would makes these changes under src/
:
src
- calendars
- tridentine
- [country].mjs
- index.mjs
- cal1954
- [country].mjs
- index.mjs
- cal1955
- [country].mjs
- index.mjs
- cal1960
- [country].mjs
- index.mjs
- cal1969
- [country].mjs
- index.mjs
- constants
- Calendars.mjs
- Cycles.mjs
- index.mjs
- LiturgicalColors.mjs
- LiturgicalSeasons.mjs
- PsalterWeeks.mjs
- Titles.mjs
- Types.mjs
- index.mjs
- lib
- Calendar.mjs
- Celebrations.mjs
- Dates.mjs
- index.mjs
- Seasons.mjs
- Utils.mjs
- locales
- saints
- [lang][Country].mjs
- celebrations
- [lang][Country].mjs
- titles
- [lang][Country].mjs
I think for now, we should not concentrate on any other calendar but cal1969
(current / Novo Ordo Missæ). However, these additions are a step towards the historical calendar enhancement.
This is definitely something I'm very interested in assisting with. Even the Sanctoral Cycle would need to have a version available for the 1962 calendar. To my mind, the most valuable calendar would be the one currently in use by the Fraternity of St. Peter, the Institute of Christ the King, etc. (those with apostolates directed to the Extraordinary Form).
This, of course, also requires thinking through the Sundays after Epiphany, the Sundays after Pentecost, and realigning the ranking of Feasts (and possibly allowing commemorations, too). I'm starting on this in earnest this week, and I'll let everyone know my progress.
Well, I must confess, I have never had my hands on the Tridentine Liturgy nor I have attended one (though I’d like to), so I have no idea, what exactly are the liturgical rules and rubrics in the cal1962
.
Okay, so maybe we should create some other calendar specidif subdirs. I’ve seen you just simply modified LiturgicalColors.mjs
to contain black
, so this one does not need to have subdirs.
On the other hand, Cycles.mjs
and LiturgicalSeasons.mjs
, for example, we should create the cal subdirs {cal1954,cal1955,cal1960,cal1962,cal1969}
.
As a side note, I’ve already thought about addition of some/all religious calendars (Dominican, Franciscan, Benedictine, etc) into romcal
, though I have not created a feature request for this yet.
On seasons different from Novo Ordo—I think this might be easily done using the LiturgicalSeasons.mjs
.
On commemorations–see the issue #12, esp. this comment. TL;DR: I’ve suggested to re-code how the celebration names are created, mainly the person (saints/blesseds) celebration names. If I understand it correctly, a commemoration in cal1962
is one celebration, therefore there would be an option to create such a celebration using join
method (or whatever it is / would be).
Has anyone looked at the https://github.com/DivinumOfficium/divinum-officium/blob/master/web/cgi-bin/missa/kalendar.pl repository to see how that has been done?
I’ve just looked at it, but as I have no knowledge of extraordinary form rurbrics and rules, I don’t think I can help you with this. Anyways, I think it has some rules encoded that might be useful, but have to be re-coded into romcal
.
What can I help you with? Should I start separating the celebrations (list saints separately), as I mentioned in previous comment (and in issue #12)? Or would help you?
Edit: @agbloomfield, I wanted to comment this in #51.
Could we collaborate on the list compilation on a single Google Sheets spreadsheet? I’ve already made you an editor (check your email).
Anyway, I’m almost done with the cal1969
saints list, although not all columns are filled and there still some saints duplicates and key duplicates, as well as some other stuff to be resolved.
Absolutely; I'll have to carve out time to orient myself to the data, but yes -- let's use a single sheet.
Helpful links for the Extra-Ordinary Form calendar:
- https://forums.catholic.com/t/calendar-for-extraordinary-form/364927/4
- http://www.liturgyoffice.org.uk/Calendar/Extraordinary/index.shtml
- https://en.wikipedia.org/wiki/General_Roman_Calendar_of_1960
I think we need to separate this issue into three, because we are dealing here we three different stuff:
- Extra-Ordinary form (
cal1962
):
I think that romcal as the base module should include the following:
a. from calendar point of view, the calendars for currently officially used liturgical forms in the RC, which currently are:
-
cal1962
; -
cal1969
.
b. from historical point of view, it should contain all versions of each celebration once celebrated in a partucular calendar (of the Memoria of St Mary Magdalene was celebrated until 2 June 2016; from then on, it was celebrated as a feast; therefore we should have two celebration definitions the this celebrations).
c. from the location perspective:
- GRC;
- continental ‘calendars’ (or additions; e.g. the continental patron saints);
- multi-country / territorial / area ‘calendars’ (like the German-speaking countries supernational calendar);
- country calendar.
(Diocesian, parish and religious/community calendar would be in separate repositories.)
-
Historical calendars (aka histcal; calendars before
cal1962
). -
Historical versions of a calendar celebrations (like
cal1969
in 1990 and 2020; see 1. b. above for an example).
For 2. and 3., we must to keep in mind that the dioceses (and/or countries) might merge or separate over the time (see this current example).
@pejulian, @emagnier, what do you think?
In my point of view, managing different ordos (like the extraordinary form calendar) other than the new ordo from 1969 is out of scope here (in this repository). Because there are too many rules and metadata differences (especially the seasons, the proper of time in general, the different cycles...). It's a good idea, but it's 2 whole different projects.
The only data that could be reused in other ordos could be eventually the martyrology and the localizations. If someday, someone wants to contribute and work on another ordo, he will be more than welcome, but in a separated romcal repository.
The only point I will consider here is an option that's specify the day of addition of a specific liturgical day or blessed / saint people. So if an item is added in 2020 and we generate a calendar for 2019, this item will not be output in the calendar, because it is prior to its date of addition.