Read the statement by Michael Teeuw here.
calendar - wrong repeating count when using sliceMultiDayEvents
-
@MarcLandis said in calendar - wrong repeating count when using sliceMultiDayEvents:
sliceMultiDayEvents
thanks for the config
looking at the results without sliceMultiDayEvents
I see
so the parsing was correct, the visual, we only show the start date, even if multi-day
so both are ‘correct’ tho not informativewith split day
I don’t see any difference in the calendar parsing. (add “DEBUG” to the loglevel list in config.js)
and redirect the npm start output to a fileCalendar-Fetcher: Broadcasting 4 events from http://localhost:8090/modules/default/calendar/splitdays_test.ics.
only 4 events… so not calendar parsing,
the only place the split parm is used is in the front end… calendar.js
but my output is different than yours.I am using the develop branch, coming Oct 1. however I don’t see a documented change here
this split code was added in 2019…
also tested on master (2.28.0) with same 4 lines of resultsyou can get the develop branch and try it…
https://forum.magicmirror.builders/topic/14327/testing-new-fixes-or-solving-current-problems-with-next-release-codeI just copy/pasted your ics info in a file, unchanged
I tested with America/Chicago timezone.
-
@sdetweil I am pretty sure it has to do with timezone settings. I am going to test some things on my end.
btw: I have this problem for a long time and more or less always ignored it.
-
@MarcLandis so it doesn’t happen when setting the time zone to America/Chicago but it happens for Europe/Berlin.
-
@MarcLandis ok. system timezone.
-
@MarcLandis interesting…
change calendar.js 3 places
give it a trychange (line 633)
const maxCount = Math.ceil((event.endDate - 1 - moment(event.startDate, "x").endOf("day").format("x")) / ONE_DAY) + 1;
to
const maxCount = Math.round((event.endDate - 1 - moment(event.startDate, "x").endOf("day").format("x")) / ONE_DAY) + 1;
ceil takes 1.04 to 2, round to 1
let midnight = moment(event.startDate, "x") .clone() .startOf("day") .add(1, "day") .endOf('day') // add this (else its start of day, not end) line 641 .format("x");
and recalc of midmnight (line split like above for clarity) line 654
midnight = moment(midnight, "x") .add(1, "day") .endOf('day') // add this .format("x"); // next day works in Europe/Berlin and America/Chicago 2 bugs 1 count incorrect 2 loop control
-
@sdetweil this fixes it. The test calendar looks good and my real one with the birthdays (mostly affected one) is perfect. All other events are good too.
Thx for your help.
-
@MarcLandis i’ll submit an issue and a pr…
and a testcase
-
@MarcLandis
submitted PR https://github.com/MagicMirrorOrg/MagicMirror/pull/3543/
with new testcase to validatehopefully we will get it into next release Oct 1.
-
@sdetweil Thank you - even it doesn’t make it into the next release I have a way to manually fix it now.
-
-
@MarcLandis the fix was accepted and merged