Read the statement by Michael Teeuw here.
2.32.0 Calendar module limitDays and excludedEvents stopped working
-
@mumblebaj for a bit more context I’m using MagicMirrorOS and it’s been great whilst it was working, but certainly seems to make dubugging harder so perhaps I’ll switch back to regular setup when I get a bit more time …
To clarify, I’m only seeing errors when trying to work around lack of access to logs in docker - if I just let the system run normally I’m not getting any errors, just an unexpected change in calendar behaviour.
docker compose up -d
works if I enter /opt/mm/run directory first.
Not sure I need that compose up command though as the container is running ok already.docker exec -it mm bash
works to get into the container, but then I can’t find any debug logs …@KristjanESPERANTO I’m not sure but I think the errors referring to MMM-Remote-Control I posted were more to do with my failed attempts to get logs from the docker container, not the original issue of calendar display … but in case you’re onto something:
> node@magicmirroros:/opt/magic_mirror/modules/MMM-Remote-Control$ grep '"version":' package.json "version": "3.1.4",
-
@AndyHazz said in 2.32.0 Calendar module limitDays and excludedEvents stopped working:
but in case you’re onto something
Not sure, but you have a rather old version of MMM-Remote-Control which is only compatible to a limited extent with MM 2.32.0. If you update MMM-Remote-Control, the start of MM may not abort like above.
-
@KristjanESPERANTO I’ve been able to update MMM-Remote-Control to 3.2.0 and you were right that stops the errors I was getting in the logs when running docker compose up.
Still doesn’t look like there are any clues there for my calendar issues though …
docker compose up > somenewfile.txt ─╯ [+] Running 6/6 ✔ Network magicmirror_default Created0.2s ✔ Container xserver Created0.8s ✔ Container watchtower Created0.7s ✔ Container init Created0.8s ✔ Container mm Created0.2s ✔ Container mmpm Created0.2s xserver | xserver | X.Org X Server 1.21.1.14 xserver | X Protocol Version 11, Revision 0 xserver | Current Operating System: Linux 2133690aa282 6.12.34+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.34-1+rpt1~bookworm (2025-06-26) aarch64 xserver | Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_headphones=0 cgroup_disable=memory snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_hdmi=0 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=ttyS0,115200 console=tty1 root=PARTUUID=de21c80a-02 rootfstype=ext4 fsck.repair=yes rootwait cfg80211.ieee80211_regdom=GB video=HDMI-A-1:1920x1080M@60,rotate=270 xserver | xserver | Current version of pixman: 0.43.4 xserver | Before reporting problems, check http://wiki.x.org xserver | to make sure that you have the latest version. xserver | Markers: (--) probed, (**) from config file, (==) default setting, xserver | (++) from command line, (!!) notice, (II) informational, xserver | (WW) warning, (EE) error, (NI) not implemented, (??) unknown. xserver | (==) Log file: "/var/log/Xorg.0.log", Time: Tue Jul 8 21:49:11 2025 xserver | (==) Using system config directory "/usr/share/X11/xorg.conf.d" watchtower | time="2025-07-08T21:49:12Z" level=info msg="Watchtower 1.7.1" watchtower | time="2025-07-08T21:49:12Z" level=info msg="Using no notifications" watchtower | time="2025-07-08T21:49:12Z" level=info msg="Checking all containers (except explicitly disabled with label)" watchtower | time="2025-07-08T21:49:12Z" level=info msg="Scheduling first run: 2025-07-15 21:49:12 +0000 UTC" watchtower | time="2025-07-08T21:49:12Z" level=info msg="Note that the first check will be performed in 167 hours, 59 minutes, 59 seconds" mm | [2025-07-08 22:50:02.823] [WARN] You're using a full whitelist configuration to allow for all IPs mm | [2025-07-08 22:50:26.661] [ERROR] table not found in HTML. mm | [2025-07-08 22:50:26.684] [ERROR] table not found in HTML. mm | [2025-07-08 22:50:26.765] [ERROR] Tue Jul 08 2025 22:50:26 GMT+0100 (British Summer Time) - WatchDog: Heartbeat timeout. Frontend might have crashed. Exit now. mm | [2025-07-08 22:50:26.873] [ERROR] table not found in HTML. mm | [2025-07-08 22:50:26.888] [ERROR] table not found in HTML. mm | npm notice mm | npm notice New major version of npm available! 10.9.2 -> 11.4.2 mm | npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.4.2 mm | npm notice To update run: npm install -g npm@11.4.2 mm | npm notice mm | [2025-07-08 22:50:56.210] [WARN] You're using a full whitelist configuration to allow for all IPs mm | [2025-07-08 22:51:04.036] [ERROR] table not found in HTML. mm | [2025-07-08 22:51:04.866] [ERROR] Tue Jul 08 2025 22:51:04 GMT+0100 (British Summer Time) - WatchDog: Heartbeat timeout. Frontend might have crashed. Exit now. mm | [2025-07-08 22:51:24.381] [WARN] You're using a full whitelist configuration to allow for all IPs mm | [2025-07-08 22:51:42.944] [ERROR] table not found in HTML. mm | [2025-07-08 22:51:42.966] [ERROR] table not found in HTML. mm | [2025-07-08 22:52:10.109] [ERROR] table not found in HTML. mm | [2025-07-08 22:52:11.413] [ERROR] table not found in HTML.
I think the repeating ‘table not found in HTML’ error is just from my MMM-Scrapey module, as it’s looking for bus times and it’s late, the last bus has gone.
-
@AndyHazz Unfortunately, I don’t know if I can help any further here. The error message (
[ERROR] table not found in HTML.
) is indeed from MMM-Scrapey - I have created a pull request for the module to improve logging, at least in the future. -
Thanks, I’ve merged that logging improvement to MMM-Scrapey.
I suppose my query is simply whether anybody else can see the same calendar functionality issues as me?
- limitDays has changed to limit the number of calendar items, not the number of days worth of calendar items
- excludedEvents appears to do nothing any more, events matching excluded words have started showing when prior to 2.32.0 they were hidden
If it’s only affecting me, I’ll probably try rebuilding my setup from scratch.
-
@AndyHazz what release were you on prior to the upgrade?
I don’t see any code change from 2.31
| correction, there is a test of date after change here. -
@AndyHazz can you show your calendar config, xxx out the URLs.
-
@AndyHazz I should note that this property is NOT a sequential limit of days from today
it is UNIQUE days INCLUDING today
limitDays:2
so if there no events til next Thursday, that is the 1st day
and no events til the following Tuesday, that is the second daywhich is different than event tomorrow and saturday, but only show tomorrow… (2 consecutive days gets today and tomorrow), or two days from NOW gets today/thurs/friday, but still not saturday.
-
@sdetweil yeah that’s what I was using limitDays for and it was working great for my needs until now - I have my kids school lessons synced to a google calendar, and setting limitDays to 1 used to show the full set of lessons for the day. When they get home from school (all events from the current day are in the past), it automatically showed all of the lessons for the following day. Best thing I’ve ever used MM for! Even highlights PE lessons so they know when to bring kit :)
For me now, limitDays: 1 just shows the single next event even when there are 6 more events on that day (and if that event is ‘Tutor time’, it displays when it should be hidden).
I can’t say exactly what version I was on prior to the update but it should have been whatever the previous version was - since I set this up with watchtower in docker I’ve not had to do any manual upgrades.
Here’s my anonamised calendar config - I have 5 different calendar modules running if that’s likely to be a factor, but this is one that has the config issues:
{ module: 'calendar', header: 'School day', position: 'bottom_right', config: { coloredSymbol: true, coloredText: true, showLocation: true, displaySymbol: false, hideTime: true, tableClass: 'medium', flipDateHeaderTitle: true, fade: false, timeFormat: 'absolute', dateFormat: 'ddd', fullDayEventDateFormat: 'ddd', urgency: '0', sliceMultiDayEvents: true, nextDaysRelative: false, limitDays: 1, fetchInterval: '600000', displayRepeatingCountTitle: true, wrapEvents: false, //maxTitleLength: 30, customEvents: [{ keyword: 'Physical Education', symbol: 'volleyball', color: 'Gold' }], excludedEvents: [ 'Tutor time' ], calendars: [ { symbol: 'graduation-cap', url: 'https://calendar.google.com/calendar/ical/REDACTED/basic.ics' } ] } },
-
@AndyHazz Do you mind sharing your ICS, anonymized off course.