Read the statement by Michael Teeuw here.
Calendar Module not working with Google Calendar
-
Re: Default Modules
Hello. I recently updated to the latest MagicMirror build and my Google Calendar (in ical format) stopped loading. I tried to reset the Private ical link. I also tried the public ical link, but it still will not load. Anyone have any suggestions? I can load the config.js file (redacted) if that will help -
@redink yes, new rrule is having trouble…
lets go back to the prior parser
cd ~/MagicMirror npm install node-ical@0.16.1 -
@jott0204 yes config, url xxx out
also please show the messages where you do npm start
-
I have a very similiar problem. I use two calendar modules, one with dates from the local waste pickup service and another one with multiple google calendars. The waste calendar works fine (so nothing with the module), but google gives errors. I copied out two of the google-calendars:
[03.01.2024 11:05.10.477] [ERROR] Calendar Error. Could not fetch calendar: https://calendar.google.com/calendar/ical/XXXXX/basic.ics RangeError: Invalid time value at Date.toISOString (<anonymous>) at /home/pi/MagicMirror/modules/MMM-MyCalendar/calendarutils.js:314:28 at Array.forEach (<anonymous>) at Object.filterEvents (/home/pi/MagicMirror/modules/MMM-MyCalendar/calendarutils.js:142:24) at /home/pi/MagicMirror/modules/MMM-MyCalendar/calendarfetcher.js:74:29 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) [03.01.2024 11:05.11.076] [ERROR] Calendar Error. Could not fetch calendar: https://calendar.google.com/calendar/ical/XXXXX/basic.ics RangeError: Invalid time value at Date.toISOString (<anonymous>) at /home/pi/MagicMirror/modules/MMM-MyCalendar/calendarutils.js:314:28 at Array.forEach (<anonymous>) at Object.filterEvents (/home/pi/MagicMirror/modules/MMM-MyCalendar/calendarutils.js:142:24) at /home/pi/MagicMirror/modules/MMM-MyCalendar/calendarfetcher.js:74:29 at process.processTicksAndRejections (node:internal/process/task_queues:95:5)I don’t know what
invalid time valuemeans, maybe someone can help -
@AnduriI you need the latest mm version which has a fix for the isostring problem
-
@sdetweil what do you mean with latest mm version? I did
git pull && npm install, so I should have the latest… -
@AnduriI can u chedck the actual version u have
cd ~/MagicMirror grep version package.json -
/MagicMirror $ grep version package.json "version": "2.26.0", -
@AnduriI bizarre.
can u turn on debug in config.js
add
,"DEBUG"to the loglevel: list
then let’s use non pm2 to capture the info
pm2 stop all cd ~/MagicMirror npm start >somefile.txt 2>&1wait til u think the error occurs
ctrl-qto top mm
then look at the somefile.txt
search for the isostring
you should see dates=
for each eventthe problem was the rule.between function which calculates the repeating events would return junk
I put in a filter to remove the junk.anyhow, then remove the DEBUG
thing from config.jsand you can use pm2 to restart mm til we figure it out
if u can, send the somefile.txt to me via email
my userid here at gmail -
@sdetweil wow I was not aware of all old events also being sent and parsed… from 5+ years ago. That’s a lot of entries… (more than 1500 only for my main calendar)
I sent the log via eMail to you. -
@AnduriI yes, the ics holds all that junk
-
@AnduriI are u willing to share one of the trouble cal urls so I can debug?
send in a private chat. not via mail. after use I will delete the data and the chat.
-
@AnduriI also try this
cd ~/MagicMirror npm install electron@28.1.1 -
@sdetweil, would you mind sharing how you set up a filter for the events? I have a suspicion that too many events are causing some items to now show up on calendar.
-
@redink there are no backend (at the ICS parser) filters
on the front end (browser display) there are the following config options that affect event display
maximumEntries,
maximumNumberOfDays,
hidePrivate,
hideOngoing and
hideDuplicatesthe default calendar module NEVER displays events before today. but it will broadcast them for other modules to use ( MMM-CalendarExt3* uses them)
sadly the parser does NOT indicate where today is in the stream of events parsed (the ICS has EVERYTHING in it). the only way to fix this is to make a breaking change, and send two lists, old and future
because of the single list , maximumEntries , CAN/DOES cause the event list to get clipped before any current events can be processed.
-
@sdetweil ok, that makes sense.
My issue is really strange where my two recurring weekly events only show up during the first two weeks of the month, and are ignored the rest of the time until the next month. I even tested installed thunderbird to open the ICS file to check that the issue isn’t with google calendar. Thunderbird displays the recurring events just fine.
It’s making me think if I should hack together some kind a pre-processor to only return events that are relevant to the view.
-
@redink yes, new rrule is having trouble…
lets go back to the prior parser
cd ~/MagicMirror npm install node-ical@0.16.1 -
@sdetweil That did it. Thank you so much. I spent two hours this morning trying to fix this.
How did you know that this was an issue? I need to get better at learning how to troubleshoot this mirror myself. -
@redink we’ve been working it for the last couple weeks. this was a major change for calendar this release. I pushed it cause of all the other recurring events time problems.
I do most of the calendar module parsing support
-
@sdetweil really appreciate your support on this!
-
@AnduriI, I had a similar issue I spent a few hours troubleshooting. MMM-Calendar (connected to private Google calendar ics link), MMM-Wallpaper, and MMM-quote-of-the-day all were black or showing errors. It started with a clean install of Raspberry Pi and MagicMirror 2.26.0 (installed via sdetweil raspberry.sh script) in early January 2024. Installing electron@28.1.1 and node-ical@0.16.1 did not fix the issue.
What fixed this issue for me was disabling IPv6 in the Raspberry Pi by adding 3 lines to the sysctl.conf file. Now all three of these modules work correctly.
sudo nano /etc/sysctl.confAdd these three lines:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1Save (Ctrl + x, y) and reboot
sudo rebootto apply setting.
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