Read the statement by Michael Teeuw here.
MMM-Calendar always shows 23:59 if showEndTime: True
-
@SwissChemist if it were easy!!!
the rule processor has a bug w timezones
and apparently with multiple whole day events, and with dst/std adjustmentand the calendar parser is not ours, and the rule processor is not ours,
and we are split into get dates to show and show dates… show dates(calendar.js) doesn’t know anything about the cal entry. it’s just gets a list of start and end times, in utc time
-
I just uploaded another calendarfetcher.js to dropbox which corrects the timezone adjustment for daylight/std switch
I was using the local system time instead of the calendar event start time to compare offsets with the rule created time
-
I like how it behaves now… we are both currently on DST, you switch the daylight 1st (Oct 25), and the events when system is on my timezone, change, and then we change later to daylight (Nov 1), and then we are back on the same adjustment again and the event times adjust again correctly…
-
@sdetweil
Wow, that looks great! Thanks very much for your endurance!There is only that persistent ‘3-weekly whole day’ problem. It’s still one day too late. Most probably that’s so difficult, as it is a user defined interval, something strange seems to bring the parser to a wrong date…
For testing, I have added a 3-daily event. This shows correct start/end…But the rest is great! Thanks very much!!!

-
@SwissChemist check the end date in your cal entry it was set for the next day.
2 -day event
-
@sdetweil
All whole day events start at the right day and end one day later. There is no difference in the calendar file, whether it is a weekly, 2-weekly or 3-weekly event.
That’s why I do not understand, why weeklies and 2-weeklies are shown correctly and the 3-weekly is shown one day too late… -
@SwissChemist but, whole day events are defined as starting and ending on the SAME day.
-
@SwissChemist yeh, that 3-weekly whole day event seems to cause a problem in the rule handler…
for THAT rule, it returns the repeating day as the 1st of the 2, (the last of the 2 for the others)
but if u take off the ;BYDAY=TH
is works properly… (and gives the thrusday date)so, some bug in the rrule module… (not our code)
that is also the only weekly whole day rule you have which has a ByDay set.
-
@sdetweil
As I wondered if the format of an 3-weekly event in ical has an issue, I set up a 3-weekly event in Google calendar and compared the files:BEGIN:VEVENT DTSTART;VALUE=DATE:20201005 DTEND;VALUE=DATE:20201006 RRULE:FREQ=WEEKLY;INTERVAL=3;BYDAY=MO DTSTAMP:20201005T195008Z UID:835F136F-35A4-44C6-AA16-481F02E5A2D1 CREATED:20201005T120626Z DESCRIPTION: LAST-MODIFIED:20201005T120626Z LOCATION: SEQUENCE:0 STATUS:CONFIRMED SUMMARY:3-weekly whole day test TRANSP:OPAQUE END:VEVENTEvent has been set to 5th of October and DTEND is also one day later than DTSTART for a whole-day-event and it also shows a BYDAY, that means it’s absolutely identical to the ical file…
-
@SwissChemist like I said, bug in the repeating rule processor, RRULE. not our code.
Remove the byday, or the second day
-
@sdetweil
Sorry for asking:
If I would import a calendar file from a text file, it would be easy to do the correction (change DTEND or remove BYDAY) in any text editor.
But how to proceed if I directly import data from *.ics link? Is there any ‘hack’ I could apply?
Thanks very much for your patience… All other data are really great now! And somehow I rely on a 3-weekly whole day, as we use to have 3-week iterations in our SCRUM process… -
@SwissChemist you could create a batch script, run off cron, or started w pm2 (and use sleep to wait)
curl to download the ics,
sed to fix the file,
and put it into the calendar module folder, and
config mm to use it from there -
@sdetweil
Thanks very much for your help! I highly appreciate it! -
@SwissChemist my pleasure… here is how I config MM to use your file
(note my mm is on a different port)calendars: [ { url: "http://localhost:8090/modules/default/calendar/school-timetable.ics" } ] -
@sdetweil
Thanks for the example. Looks like a next project for me… :thumbs_up: -
could look something like this
#!/bin/bash fn=somecal.ics while true do # get the file from server curl -sL url_of_remote_ics >$fn # remove the trailing byday=??(end of line), file inline, so changed sed -i -e "s/;BYDAY=.*$//g" $fn # copy the modified file to the calendar folder cp $fn ~/MagicMirror/modules/default/calendar # sleep til next cycle sleep ??? (seconds til next curl) donehave to make this executable with chmod +x script_filename
then
pm2 start script_filename
pm2 saveif you use a json config file ui can give a pretty name of the script… see the installers/pm2_magicmirror.json
pm2 start jsonfile
pm2 save -
@SwissChemist I submitted this issue to the RRULE repo
https://github.com/jakubroztocil/rrule/issues/426 -
@sdetweil
Wow, thank you so much for your great support! -
@sdetweil This morning we switched from DST to STD time. No issue at all with the calendar, everything works fine!
Again, thanks very much for your support! -
@SwissChemist nice, thanks for the update
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login