Read the statement by Michael Teeuw here.
MMM-CalendarExt3 BST Timezone issue
-
@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 }
-
@MMRIZE Thanks for your reply.
The timed calendar events with a start/finish time show the correct time with no issue.The issue solely lies with all-day and multi-day events.
All of these events during DST showed correctly, as soon as the timezone changed to BST. They now all rollover into the following day, so my 5 day events are now 6 days, 2 days are now 3, single days 2. -
@shall_
Can you send me the ics file? (eouia0819@gmail.com) -
@MMRIZE i have emailed it over