This post looks like a similar issue: https://forum.magicmirror.builders/topic/19273/mmm-calendarext3-not-showing-events-on-calendar-but-does-on-list-after-2-30-update
Read the statement by Michael Teeuw here.
Posts
-
RE: 2.30.0 and MMM-CalendarExt3 missing calendars
@sdetweil I updated my docker server-only install to 2.30.0 to test on. The
config.js
file is almost identical to what I have on my RPi and this is what I see after restarting MagicMirror:[2025-01-01 17:45:14.379] [LOG] Starting MagicMirror: v2.30.0 [2025-01-01 17:45:14.397] [LOG] Loading config ... [2025-01-01 17:45:14.400] [LOG] config template file not exists, no envsubst [2025-01-01 17:45:14.790] [INFO] Checking config file /opt/magic_mirror/config/config.js ... [2025-01-01 17:45:14.889] [INFO] Your configuration file doesn't contain syntax errors :) [2025-01-01 17:45:14.890] [INFO] Checking modules structure configuration ... [2025-01-01 17:45:14.971] [INFO] Your modules structure configuration doesn't contain errors :) [2025-01-01 17:45:15.119] [LOG] Loading module helpers ... [2025-01-01 17:45:15.123] [LOG] No helper found for module: alert. [2025-01-01 17:45:15.140] [LOG] Initializing new module helper ... [2025-01-01 17:45:15.141] [LOG] Module helper loaded: MMM-Wheel [2025-01-01 17:45:15.146] [LOG] No helper found for module: MMM-Carousel. [2025-01-01 17:45:15.194] [LOG] Initializing new module helper ... [2025-01-01 17:45:15.195] [LOG] Module helper loaded: updatenotification [2025-01-01 17:45:15.198] [LOG] No helper found for module: clock. [2025-01-01 17:45:15.211] [LOG] Initializing new module helper ... [2025-01-01 17:45:15.211] [LOG] Module helper loaded: MMM-UCDSB [2025-01-01 17:45:15.214] [LOG] No helper found for module: weather. [2025-01-01 17:45:15.391] [LOG] Initializing new module helper ... [2025-01-01 17:45:15.392] [LOG] Module helper loaded: calendar [2025-01-01 17:45:15.396] [LOG] No helper found for module: MMM-CalendarExt3. [2025-01-01 17:45:15.397] [LOG] All module helpers loaded. [2025-01-01 17:45:15.406] [LOG] Starting server on port 8080 ... [2025-01-01 17:45:15.409] [WARN] You're using a full whitelist configuration to allow for all IPs [2025-01-01 17:45:15.427] [LOG] Server started ... [2025-01-01 17:45:15.428] [LOG] Connecting socket for: MMM-Wheel [2025-01-01 17:45:15.429] [LOG] Starting module helper: MMM-Wheel [2025-01-01 17:45:15.429] [LOG] Connecting socket for: updatenotification [2025-01-01 17:45:15.430] [LOG] Starting module helper: updatenotification [2025-01-01 17:45:15.431] [LOG] Connecting socket for: MMM-UCDSB [2025-01-01 17:45:15.431] [LOG] Starting module helper: MMM-UCDSB [2025-01-01 17:45:15.432] [LOG] Connecting socket for: calendar [2025-01-01 17:45:15.432] [LOG] Starting node helper for: calendar [2025-01-01 17:45:15.432] [LOG] Sockets connected & modules started ... [2025-01-01 17:45:15.433] [INFO] >>> Ready to go! Please point your browser to: http://0.0.0.0:8080 <<< [2025-01-01 17:45:15.669] [INFO] System information: ### SYSTEM: manufacturer: ; model: Docker Container; virtual: false ### OS: platform: linux; distro: Debian GNU/Linux; release: 12; arch: x64; kernel: 5.15.49-linuxkit ### VERSIONS: electron: undefined; used node: 22.12.0; installed node: 22.12.0; npm: 10.9.0; pm2: ### OTHER: timeZone: America/Toronto; ELECTRON_ENABLE_GPU: undefined
I notice that there are no calendar events being broadcast at all (which likely makes sense since nothing has attempted to load the page yet).
After loading the site I get (calendar urls deleted):
[2025-01-01 17:48:40.701] [LOG] Create new calendarfetcher for url: Holidays.ics - Interval: 3600000 [2025-01-01 17:48:40.786] [LOG] Create new calendarfetcher for url: basic1.ics - Interval: 3600000 [2025-01-01 17:48:40.791] [LOG] Create new calendarfetcher for url: calendarId=1509643 - Interval: 3600000 [2025-01-01 17:48:40.797] [LOG] Create new calendarfetcher for url: basic2.ics - Interval: 3600000 [2025-01-01 17:48:40.803] [LOG] Create new calendarfetcher for url: basic3.ics - Interval: 3600000 [2025-01-01 17:48:40.891] [INFO] updatenotification: Updater Class Loaded! [2025-01-01 17:48:40.892] [INFO] updatenotification: Checking PM2 using... [2025-01-01 17:48:40.892] [INFO] updatenotification: Running in docker container, not using PM2 ... [2025-01-01 17:48:40.893] [INFO] Checking git for module: MMM-Wheel [2025-01-01 17:48:40.895] [INFO] Checking git for module: MMM-Carousel [2025-01-01 17:48:40.920] [INFO] Checking git for module: MMM-UCDSB [2025-01-01 17:48:40.942] [INFO] Checking git for module: MMM-CalendarExt3 [2025-01-01 17:48:41.003] [INFO] Calendar-Fetcher: Broadcasting 34 events from Holidays.ics. [2025-01-01 17:48:41.021] [INFO] Checking git for module: MagicMirror [2025-01-01 17:48:41.053] [INFO] Calendar-Fetcher: Broadcasting 61 events from calendarId=1509643. [2025-01-01 17:48:41.112] [INFO] Calendar-Fetcher: Broadcasting 3 events from basic3.ics. [2025-01-01 17:48:41.826] [INFO] Calendar-Fetcher: Broadcasting 294 events from basic1.ics. [2025-01-01 17:48:42.801] [INFO] Calendar-Fetcher: Broadcasting 282 events from basic2.ics.
The
basic3.ics
calendar event show in MMM-CalendarExt3 but nothing else. -
RE: 2.30.0 and MMM-CalendarExt3 missing calendars
@sdetweil manual upgrade. I also did a reinstall of the modules I use since nodes changed.
MMM-CalendarExt3 was installed/working with 2.30.0 as it shows up and has the info for one of the calendars but not for all calendars.
-
2.30.0 and MMM-CalendarExt3 missing calendars
2.30.0 doesn’t seem to be playing nicely with MMM-CalendarExt3 in my setup and I don’t see any clues in the logs as to why. Default calendar modules appears to be working as expected and I can see that the Calendar-Fetcher is broadcasting events for all of my calendars.
Oddly, events from one of the 5 calendars I’m using do appear in MMM-CalendarExt3 correctly. Changing order of calendar definitions in the
config.js
make no difference.The only error I see in logs is shown below but this appears to be related to a known issue in MMM-RemoteControl and MMM-CalendarExt3 (and the error goes away if I disable MMM-RemoteControl) which is also present when I’m running 2.29.0.
0|mm | [2025-01-01 15:51:41.985] [ERROR] ERROR! Could not validate main module js file. 0|mm | [2025-01-01 15:51:41.992] [ERROR] ReferenceError: HTMLElement is not defined 0|mm | at Object.<anonymous> (/home/pi/MagicMirror/modules/MMM-CalendarExt3/MMM-CalendarExt3.js:6:26) 0|mm | at Module._compile (node:internal/modules/cjs/loader:1484:14) 0|mm | at Module._extensions..js (node:internal/modules/cjs/loader:1564:10) 0|mm | at Module.load (node:internal/modules/cjs/loader:1295:32) 0|mm | at Module._load (node:internal/modules/cjs/loader:1111:12) 0|mm | at c._load (node:electron/js2c/node_init:2:17025) 0|mm | at Module.require (node:internal/modules/cjs/loader:1318:19) 0|mm | at require (node:internal/modules/helpers:179:18) 0|mm | at Class.loadModuleDefaultConfig (/home/pi/MagicMirror/modules/MMM-Remote-Control/node_helper.js:317:30) 0|mm | at /home/pi/MagicMirror/modules/MMM-Remote-Control/node_helper.js:271:26 0|mm | at FSReqCallback.oncomplete (node:fs:198:5)
I have since done a revert to 2.29.0 and with the exact same
config.js
etc, MMM-CalendarExt3 is working fine. I’m going to try and spin up a server only version of 2.30.0 to poke at since I can’t wipe out my main installation. -
RE: MMM-CalendarExt3 (or default calendar module?) repeating event shifts to wrong day
@sdetweil OK thanks for the info. If I can squeeze in some time tomorrow I might give the dev branch a try.
Just in case it’s of any use, I looked at two other repeating events that are working and noticed that the RRULE format is different vs the one that isn’t working:
RRULE:FREQ=WEEKLY;WKST=SU;UNTIL=20250227T045959Z
RRULE:FREQ=WEEKLY;WKST=SU;UNTIL=20250530T035959Z;BYDAY=TH
-
MMM-CalendarExt3 (or default calendar module?) repeating event shifts to wrong day
I’ve had this happen a couple times and so far been unable to determine what is wrong. Sometimes deleting the event in the source calendar (Google) and recreating it “fixes” the issue in MMM-CalendarExt3.
“Gym class” event should repeat weekly on Wednesday at 9PM starting Jan 8. Somehow it’s duplicated to Thursday Jan 9 and then repeats on Thursdays going forward?
This is the actual event (with stuff redacted for privacy) and I don’t see anything different vs other events I have created the same way.
BEGIN:VEVENT DTSTART;TZID=America/Toronto:20250108T210000 DTEND;TZID=America/Toronto:20250108T220000 RRULE:FREQ=WEEKLY;UNTIL=20250227T020000Z DTSTAMP:20241229T031726Z UID:42C7D549-D128-46CB-BF43-E380916F7698 CREATED:20241229T025652Z LAST-MODIFIED:20241229T031355Z LOCATION:Gym SEQUENCE:0 STATUS:CONFIRMED SUMMARY:Gym class TRANSP:OPAQUE X-APPLE-STRUCTURED-LOCATION;VALUE=URI;X-ADDRESS="XXX";X-APPLE-MAPKIT-HANDLE=XXX;X-APPLE-RADIUS=XXX;X-APPLE -REFERENCEFRAME=1;X-TITLE=XXX X-APPLE-TRAVEL-START;ROUTING=CAR;VALUE=URI;X-ADDRESS="XX";X-APPLE-MAPKIT-HANDLE=XX;X -APPLE-RADIUS=XX;X-APPLE-REFERENCEFRAME=0;X-TITLE=XXX X-APPLE-TRAVEL-DURATION;VALUE=DURATION:PT5M END:VEVENT
-
RE: MMM-CalendarExt3 - split/skip multiday events on specific days (weekends)
@MMRIZE thanks for the details! I spent some time working with this and ended up leaving it as the default behaviour.
-
MMM-CalendarExt3 - split/skip multiday events on specific days (weekends)
Scenario: A multiday event starts on Thursday and ends on Tuesday which means there is a multiday event bar that goes from Thursday to Tuesday (inclusive) on my calendar. The problem is that the event isn’t actually occurring on the weekend days (Saturday and Sunday for me) - the event is only applicable to the weekdays.
Is there any way to prevent the event from showing on Saturday and Sunday?
Unfortunately I don’t control the source calendar so I can’t modify it.
I tried
sliceMultiDayEvents: true
on the default calendar module source but that doesn’t appear to have made any difference in MMM-CalendarExt3. I was thinking I could use that and then figure out how to make the sliced event not show on the specific days. -
RE: MMM-CalendarExt3 add non-event content to weekday cell
@MMRIZE Thanks!
Intl.dateTimeFormat
worked once I realized what I was trying to compare against was wrong. Probably not actually portable for anyone else but works for me:let isHoliday = holidays.some(holiday => { return holiday === new Intl.DateTimeFormat('en-CA').format(current) })
Overall this isn’t the most efficient code I’ve written. Looping and counting days since a start date for every date cell is expensive. Tim to learn more javascript I guess.
-
RE: MMM-CalendarExt3 add non-event content to weekday cell
@MMRIZE I threw together the following and put it in
manipulateDateCell
. It mostly works for what I want. My check ofcellDom.dataset.date
vs holidays fails as it seems I’m getting a local time vs current which seems to become a UTC time for me?// Calculate tumble days const startDate = "2024-09-02" const holidays = ["2024-09-02","2024-09-03","2024-10-14","2024-10-25","2024-11-22","2024-12-16"] let schoolDays = 0 const cellHeader = cellDom.querySelector('.cellHeader') ?? null if(cellHeader) { const end = new Date(+cellDom.dataset.date) let current = new Date(startDate) while (current <= end) { const dayOfWeek = current.getDay(); // Skip weekends (Saturday = 6, Sunday = 0) if (dayOfWeek !== 0 && dayOfWeek !== 6) { // Check if the current date is not a holiday const isHoliday = holidays.some(holiday => { return new Date(holiday).toDateString() === current.toDateString() }) if (!isHoliday) { schoolDays++; } } // Move to the next day current.setDate(current.getDate() + 1) } const cellTumbleDay = document.createElement('div') cellTumbleDay.classList.add('cellTumbleDay') if (schoolDays%5 == 4) { cellTumbleDay.innerHTML = `Day ${(schoolDays % 5) + 1}.${((schoolDays % 20) + 1)/5}` } else { cellTumbleDay.innerHTML = `Day ${(schoolDays % 5) + 1}` } cellHeader.insertBefore(cellTumbleDay, cellHeader.childNodes[1]) }
Still need to cleanup stuff like skipping days and add more to manage the div with css.