Read the statement by Michael Teeuw here.
Default Calendar Module - Repeating calendar events with exceptions do not show
-
Platform: Raspberry Pi 3B+
Node Version [ 0.12.13 or later ]:node -v v16.14.2
MagicMirror Version [ V1 / V2-Beta ]: latest
Description: Our recycling bin is emptied every 2 weeks. I can download an iCalendar (https://eb-mainz.de/wir-kommen-zu-ihnen/abfallkalender). Either as a list of single dates “Apple Kalender und alle anderen Kalenderprogramme mit Einzelterminen."
or as recurring dates "MS Outlook, Google Kalender etc. mit Terminserien (nicht für Apple Kalender)”*
I download the second (recurring dates) and import the file into an extra google calendar. This google calendar is displayed on my MagicMirror.
Most dates show up fine, except for predefined exceptions within the downloaded ICS-file.
Google Calendar handles the exceptions just fine (my phone, webbrowser etc show the pick-up dates as intended). My MM however seems to ignore the exceptions.
For example:
Wednesday 20.04.2022 would have been a regular, bi-weekly pickup date for the recycling bin, as Monday, 18.04.2022 was Easter-Monday (and a public holiday in Germany), the pickup date was changed to Thursday 21.04.2022.
All my devices (except MM) showed Thursday, 21.04.2022 as the pick-up day. MM insisted is was Wednesday, 20.04.2022.The downloaded ICS-File contains the following:
BEGIN:VCALENDAR PRODID:-//Grafik-Partner GmbH//Muellmax 7.0 MIMEDIR//EN VERSION:2.0 METHOD:PUBLISH BEGIN:VEVENT DTSTART;VALUE=DATE:20220112 DTEND;VALUE=DATE:20220113 DESCRIPTION:Entsorgungsbetrieb der Stadt Mainz\n Zwerchallee 24\n 55120 Mainz\n \n Telefon: +49 6131 12 34 56 (Abfallberatung)\n Telefax: +49 6131 12 34 83\n \n Der Entsorgungsbetrieb ist ein Eigenbetrieb der Stadt Mainz. LOCATION:XXXXX Mainz, XXXX RRULE:FREQ=WEEKLY;UNTIL=20230101T000000Z; INTERVAL=2;BYDAY=WE;WKST=MO RDATE;VALUE=DATE: 20220421, 20221006, 20221103, 20221229 EXDATE;VALUE=DATE: **20220420**, <-- this the exception I'm talking about 20221005, 20221102, 20221228 TRANSP:TRANSPARENT SEQUENCE:0 UID:16413062851@muellmax.de DTSTAMP:20220104T142445Z SUMMARY:EB Gelber Sack CLASS:PUBLIC CREATED:20211221T125452Z LAST-MODIFIED:20211221T125452Z URL:http://www.muellmax.de END:VEVENT END:VCALENDAR
Steps to Reproduce:
- Download a calendar containing the pick-up dates from https://eb-mainz.de/wir-kommen-zu-ihnen/abfallkalender
1.1) choose "MS Outlook, Google Kalender etc. mit Terminserien (nicht für Apple Kalender)"* - Import it into google calendar as a seperate calendar
- Import this calendar into MM with default calendar module
Expected Results:
Identical entries in google calendar and MM
Actual Results:
MM doesn’t take exceptions, defined within the ICS-File into consideration
Configuration:{ module: "calendar", position: "top_right", config: { colored: false, coloredSymbolOnly: false, maximumEntries: 15, calendars: [ { url: 'xxx', symbol: 'calendar', // BUNDESLIGA }, { url: 'xxx', symbol: 'calendar', // GERMAN HOLIDAYS }, { url: 'xxx', symbol: 'calendar', // MAIN GOOGLE CALENDAR }, { url: 'xxx', symbol: 'calendar', // FORMULA 1 CALENDAR }, { url: 'https://calendar.google.com/calendar/ical/[thisisnoneofyourbusiness]group.calendar.google.com/private-[thisisnoneofyourbusiness]> symbol: 'calendar', // EB MAINZ }, { url: 'xxx' symbol: 'calendar', // PRO RUNDE }, { url: 'xxx' symbol: 'calendar', // BUSINESS TRIPS }, ], },
Additional Notes:
A simple workaround is to just download the calendar with single entries
“Apple Kalender und alle anderen Kalenderprogramme mit Einzelterminen.” and import that one into google-calendar. That works perfectly. Nevertheless it seems as if the default MM-calendar module (and MMM-CalendarExt2 for that matter, same issue) can’t handle exceptions within ics-calendars with repeating entries.Hope this helps. It’s not a deal-breaker, just something I have noticed.
- Download a calendar containing the pick-up dates from https://eb-mainz.de/wir-kommen-zu-ihnen/abfallkalender
-
@p1lspeda we use a library, node-ical, to parse the ics and present dates that fit within the next year based on the ics rules.
-
Hi,
thanks for your reply.
It seems node-ical has an issue with parsing EXDATE Info within the ICS file.https://github.com/jens-maus/node-ical/issues/167
He has the same problem.