Read the statement by Michael Teeuw here.
MMM-CalendarExt3 BST Timezone issue
-
@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
-
Is MagicMirror installed directly to your Pi, or are you running it inside a Docker or other container? I originally had a similar problem with my MM configs all set properly, and my system time set properly, but for some reason I needed to also force the Docker container to the correct timezone with environment variables in the docker-compose file:
environment: - TZ=America/Los Angeles - SET_CONTAINER_TIMEZONE=true - CONTAINER_TIMEZONE=America/Los_Angeles
Obviously you’d want a different timezone, and you’re probably running MM on your Pi without using Docker, but maybe it’ll help.
-
@shall_ @alaric10000
It happens when the event is regarded as FulldayEvent but not to start at 0 O’clock. I updated the module to fix it.
https://github.com/MMRIZE/MMM-CalendarExt3/pull/141
Update the module and check it. -
Finally I found what was wrong.
The issue lies in the wrong parsing logic from the default calendar module about repeated full-day events with TimeZone by RRULE.
If you have installed CX3 v1.8.2, Reinstall again or back to 1.8.1 (I rolled back again to 1.8.1)
Then see this;
https://github.com/MMRIZE/MMM-CalendarExt3/wiki/To-fix-wrong-repeated-fullday-event-displaying-(MM-2.27) -
@MMRIZE but… for full day, you ignore the time… or reset it to 00:00:00
-
@sdetweil
Of course I can. I have already provided that manual method to my CX3 users. (https://github.com/MMRIZE/MMM-CalendarExt3/wiki/To-fix-wrong-repeated-fullday-event-displaying-(MM-2.27))However, the value of notification should be trustable or consistent. All other kinds of events, like In-A-Day single events, Multiday-but-not-fullday-event, and even Repeated-Not-Fullday-event, could deliver the proper time, but only Repeated-Fullday events delivered the wrong value. That is out of common sense.
At least, it should have been guided as an intentional design. (I wasted several hours trying to guess what happened. Who could imagine the notification value was wrong?)
PS. Ah, I forgot there was another case; imperial units on broadcasted weather information. :)
-
@MMRIZE yes, we have had other users making updates.
-
@MMRIZE Apologies for the delayed reply, i have been busy and then couldn’t log in to the forum.
I have tried updating, installing, and reinstalling. then adding the code into my config file but i still can’t get it to correct. I think i put the code in correctly but i have attached that so you can check. my config file isn’t throwing up any errors?
how do i check what version of CX3 i am running? i did delete the whole folder and redo the git pull/install so i should have whatever is on github?
{ module: "MMM-CalendarExt3", position: "bottom_bar", title: "", config: { mode: "week", //week or month view weeksInView: 5, weekIndex: 0, //-1 start last week, 0 this week, 1 next week. instanceId: "basicCalendar", locale: 'en-GB', maxEventLines: 4, firstDayOfWeek: 1, useWeather: true, weatherLocationName: 'xxxx', eventPayload: (payload) => { for (let ev of payload) { if (ev.fullDayEvent) { let gap = +ev.endDate - +ev.startDate if (gap % (1000 * 60 * 60 * 24) === 0) { ev.startDate = new Date(+ev.startDate).setHours(0, 0, 0, 0) ev.endDate = new Date(+ev.startDate + gap).setMilliseconds(-1) } } } return payload }, eventTransformer: (e) => { e.startDate = new Date(e.start?.date || e.start?.dateTime).valueOf() e.endDate = new Date(e.end?.date || e.end?.dateTime).valueOf() e.title = e.summary e.fullDayEvent = (e.start?.date) ? true : false //return e if (e.title.search('Lates') > -1) e.color = 'mediumvioletred' if (e.title.search('Earlies') > -1) e.color = 'yellow' if (e.title.search('12 hours') > -1) e.color = 'blue' if (e.title.search('12 Hours') > -1) e.color = 'blue' if (e.title.search('12 hrs') > -1) e.color = 'blue' if (e.title.search('Vacation') > -1) e.color = 'blue' if (e.title.search('vacation') > -1) e.color = 'blue' if (e.title.search('Shutdown') > -1) e.color = 'goldenrod' if (e.title.search('My weekend') > -1) e.color = 'deepskyblue' return e } } },