Read the statement by Michael Teeuw here.
MMM-CalendarExt3 BST Timezone issue
-
@shall_ sorry efit was edit, new phone and thumb havent become friends yet
by default most linux commands produce NO output when successful. they were designed back
in the teletype terminal world, where every character took a long time.so, this means the ics file was downloaded as requested
-
@sdetweil
Ok that makes sense. I have found the generated ics file, however it has a 0 file size and when I open it with text editor it is just an empty file. The file type is listed as “Outlook.File.ics.15”I am using google calendar urls, not sure if that makes any difference? i have tried 3 different urls that I use with the module.
-
@shall_ weird. are using the same url in mm config?
you might also try it in a browser on your pc. it should download the ics (downloads folder)
-
@sdetweil yes i copied each url straight from my config file.
I tried opening them in the browser, it downloaded as described but is still an empty file.I found a work around by just downloading the ics right from google calendar, this is an example of one of the events. with the timezone tied in.
RPi timezone is set to GMT +1 Europe/London (BST)
BEGIN:VCALENDAR PRODID:-//Google Inc//Google Calendar 70.9054//EN VERSION:2.0 CALSCALE:GREGORIAN METHOD:PUBLISH X-WR-CALNAME:Work X-WR-TIMEZONE:Europe/London BEGIN:VEVENT DTSTART;VALUE=DATE:20170626 DTEND;VALUE=DATE:20170701 RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20190331T235959Z;INTERVAL=2;BYDAY=MO DTSTAMP:20240403T224236Z UID:15dcXXXXXXujb@google.com CREATED:20171216T163405Z LAST-MODIFIED:20190330T214112Z SEQUENCE:0 STATUS:CONFIRMED SUMMARY:Earlies TRANSP:TRANSPARENT END:VEVENT
-
@sdetweil this is another entry added this week with the issue.
BEGIN:VEVENT DTSTART;VALUE=DATE:20240402 DTEND;VALUE=DATE:20240403 DTSTAMP:20240403T224236Z UID:70rjap1gXXXXX6oo68db56o@google.com CREATED:20240402T105500Z LAST-MODIFIED:20240402T105500Z SEQUENCE:0 STATUS:CONFIRMED SUMMARY:12 hours TRANSP:OPAQUE END:VEVENT
-
@shall_ ok. weird. anyhow
we dont process anything other than vevents. so the garbage at the top which has the x-wr timezone, we dont see.
so the calendar will be processed in the current system timezone.
if you want to see the debug of processing, add the ,“DEBUG” to the end of the logLevel property in config.js
and then start mm like this
npm start >somefile.txt 2>&1
wait til the cal is up, then ctrl-q quit mm and examine the somefile.txt
-
@shall_ because there is no timezone specified on the entry, it will be processed in the current system timezone
-
I will have to pick this up again tomorrow. i will run the debug when i get home from work.
is there anything I am looking for in particular? -
@shall_ because there is a rrule
the string
dates: …
documents the dates returned from the rrule.between function… yesterday plus 1 year
is the window we create to get recurring events -
@shall_
CX3 doesn’t parse ics file directly, so probably the default calendar app (or any event provider) must have responsibility.But for an instant solution, you can use
preProcessor
orevent payload
to make a hotfix by force.BEFORE
/* in your CX3 module config */ preProcessor: (event) => { if (["SomeCalendarName", "AnotherCalendarName"].includes(event.calendarName)) { event.startDate = Number(event.startDate) - 1000 * 60 * 60 event.endDate = Number(event.endDate) - 1000 * 60 * 60 } return event }
AFTER
If all your calendar has that issue, you can omit if statement.
preProcessor: (event) => { event.startDate = Number(event.startDate) - 1000 * 60 * 60 event.endDate = Number(event.endDate) - 1000 * 60 * 60 return event }