romcal icon indicating copy to clipboard operation
romcal copied to clipboard

Historical and extraordinary form calendar

Open tukusejssirs opened this issue 6 years ago • 10 comments

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).

tukusejssirs avatar Mar 16 '18 10:03 tukusejssirs

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.

tukusejssirs avatar May 22 '18 17:05 tukusejssirs

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.

agbloomfield avatar Jul 11 '18 11:07 agbloomfield

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).

tukusejssirs avatar Jul 11 '18 13:07 tukusejssirs

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?

agbloomfield avatar Jul 12 '18 15:07 agbloomfield

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.

tukusejssirs avatar Jul 12 '18 15:07 tukusejssirs

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.

tukusejssirs avatar Feb 13 '19 13:02 tukusejssirs

Absolutely; I'll have to carve out time to orient myself to the data, but yes -- let's use a single sheet.

agbloomfield avatar Feb 13 '19 13:02 agbloomfield

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

tukusejssirs avatar Mar 08 '20 15:03 tukusejssirs

I think we need to separate this issue into three, because we are dealing here we three different stuff:

  1. 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.)

  1. Historical calendars (aka histcal; calendars before cal1962).

  2. 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?

tukusejssirs avatar May 06 '20 10:05 tukusejssirs

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.

emagnier avatar Dec 31 '21 22:12 emagnier