Read the statement by Michael Teeuw here.
Calendar - only all day events showing - moment timezone issue
-
In my magic-mirror I am using the default calendar module and am connected to a microsoft (Outlook.com) calendar. It is only showing events from a birthday calendar (all-day events). It appears as though moment-timezone is struggling to parse the timezone information from the event. Any ideas as to what might be the problem? The log has a million entries like the one below:
event={“type”:“VEVENT”,“params”:[],“uid”:“[REMOVED]”,“summary”:“[REMOVED]”,“start”:“2021-07-12T14:00:00.000Z”,“datetype”:“date-time”,“end”:“2021-07-12T15:00:00.000Z”,“class”:“PUBLIC”,“priority”:“5”,“dtstamp”:“2021-03-26T00:58:12.000Z”,“transparency”:“OPAQUE”,“status”:“CONFIRMED”,“sequence”:“0”,“location”:“”,“MICROSOFT-CDO-APPT-SEQUENCE”:“0”,“MICROSOFT-CDO-BUSYSTATUS”:“BUSY”,“MICROSOFT-CDO-INTENDEDSTATUS”:“BUSY”,“MICROSOFT-CDO-ALLDAYEVENT”:“FALSE”,“MICROSOFT-CDO-IMPORTANCE”:“1”,“MICROSOFT-CDO-INSTTYPE”:“0”,“MICROSOFT-DONOTFORWARDMEETING”:“FALSE”,“MICROSOFT-DISALLOW-COUNTER”:“FALSE”}
[25.03.2021 20:59.47.298] [DEBUG] start=Mon Jul 12 2021 10:00:00 GMT-0400 (Eastern Daylight Time) end=Mon Jul 12 2021 11:00:00 GMT-0400 (Eastern Daylight Time)
[25.03.2021 20:59.47.304] [DEBUG] initial tz=Customized Time Zone
[25.03.2021 20:59.47.312] [DEBUG] corrected TZ=null
[25.03.2021 20:59.47.326] [DEBUG] corrected tz=Customized Time Zone
[25.03.2021 20:59.47.333] [DEBUG] start date/time=Mon Jul 12 2021 10:00:00 GMT-0400 (Eastern Daylight Time)
[25.03.2021 20:59.47.341] [ERROR] Moment Timezone has no data for Customized Time Zone. See http://momentjs.com/timezone/docs/#/data-loading/.
[25.03.2021 20:59.47.351] [DEBUG] start offset=0
[25.03.2021 20:59.47.364] [ERROR] Moment Timezone has no data for Customized Time Zone. See http://momentjs.com/timezone/docs/#/data-loading/.
[25.03.2021 20:59.47.369] [DEBUG] start date/time w tz =Mon Jul 12 2021 10:00:00 GMT-0400 (Eastern Daylight Time)
[25.03.2021 20:59.47.382] [ERROR] Moment Timezone has no data for Customized Time Zone. See http://momentjs.com/timezone/docs/#/data-loading/.
[25.03.2021 20:59.47.393] [DEBUG] event date=Mon Jul 12 2021 10:00:00 GMT-0400 (Eastern Daylight Time)
[25.03.2021 20:59.47.400] [DEBUG] event offset=0 hour=14 event date=Mon Jul 12 2021 10:00:00 GMT-0400 (Eastern Daylight Time)
[25.03.2021 20:59.47.407] [DEBUG] adjustHours=0
[25.03.2021 20:59.47.424] [DEBUG] have entries
[25.03.2021 20:59.47.431] [DEBUG] -
@magicinme yes, fun times. Microsoft has lots of non-standard timezone definitions.
I just put fixes into the ical parser we use.
hopefully they will be published soon do we can update the dependency list. -
@sdetweil Great, thank you! What do you think the ETA would be? Just for my own sanity :P
-
@magicinme I don’t know. I hope soon so we can include it in the next release on April 1st
-
@sdetweil perfect, thanks a bunch!
-
@magicinme the fix did NOT make 2.15, as the repo published the fixes JUST last night
if u want to test/run with the new code do
cd ~/MagicMirror npm install node-ical
restart MM
same for 2.14 or 2.15
-
@sdetweil Thank you! I am running it now, I’m still getting
[12.04.2021 08:39.20.358] [ERROR] Moment Timezone has no data for Customized Time Zone. See http://momentjs.com/timezone/docs/#/data-loading/.
but it appears as though there are fewer errors and the module does seem to be displaying my events. Perhaps I have some buggy iCal events in there. If I get a chance to dive in more, I’ll see what I can update.
-
@magicinme can u send me your ics file. I thought we put fixes in 2.15 for this
my email is the same user ID at gmail
oh, wait, the fixes are in node-ical
do
cd ~/MagicMirror npm install node-ical
the restart mm
-
@sdetweil
It appears as though the issue arises when the calendar has custom (non-standard) timezones. node-ical parses the file properly however there is no code to digest the parsed VTIMEZONE entries and apply them to referencing events. Looking at this VTIMEZONE entry, it seems rather hack-y so it probably is not worth it to parse. I notice that all of the weird entries are originate from an iPhone.Here’s an example ical file of an offending text:
BEGIN:VCALENDAR PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN VERSION:2.0 METHOD:PUBLISH X-MS-OLK-FORCEINSPECTOROPEN:TRUE BEGIN:VTIMEZONE TZID:Customized Time Zone BEGIN:STANDARD DTSTART:16011104T020000 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11 TZOFFSETFROM:-0400 TZOFFSETTO:-0500 END:STANDARD BEGIN:DAYLIGHT DTSTART:16010311T020000 RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3 TZOFFSETFROM:-0500 TZOFFSETTO:-0400 END:DAYLIGHT END:VTIMEZONE BEGIN:VEVENT CLASS:PUBLIC CREATED:20210906T061657Z DTEND;TZID="Customized Time Zone":20210605T110000 DTSTAMP:20210906T061658Z DTSTART;TZID="Customized Time Zone":20210605T100000 LAST-MODIFIED:20210906T061657Z PRIORITY:5 SEQUENCE:0 SUMMARY;LANGUAGE=en-us:Top secret stuff TRANSP:OPAQUE UID:04000000[.....] X-MICROSOFT-CDO-BUSYSTATUS:BUSY X-MICROSOFT-CDO-IMPORTANCE:1 END:VEVENT END:VCALENDAR
-
@magicinme none of the libraries digest the tz definitions. mm doesn’t either.