Read the statement by Michael Teeuw here.
Calendar not updating
-
pi@magicmirror:~/MagicMirror $ cat somefile.txt | grep calendar [02.01.2024 14:56.40.510] [LOG] Module helper loaded: calendar [02.01.2024 14:56.42.557] [LOG] Connecting socket for: calendar [02.01.2024 14:56.42.558] [LOG] Starting node helper for: calendar [02.01.2024 14:56.46.986] [LOG] Create new calendarfetcher for url: https://my.cal.url - Interval: 120000 [02.01.2024 14:57.13.099] [INFO] Calendar-Fetcher: Broadcasting 379 events from https://my.cal.url. [02.01.2024 14:59.23.139] [ERROR] Calendar Error. Could not fetch calendar: https://my.cal.url TypeError: fetch failed
-
[02.01.2024 14:59.23.139] [ERROR] Calendar Error. Could not fetch calendar: https://my.cal.url TypeError: fetch failed at Object.fetch (node:internal/deps/undici/undici:11576:11) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { cause: ConnectTimeoutError: Connect Timeout Error at onConnectTimeout (node:internal/deps/undici/undici:8522:28) at node:internal/deps/undici/undici:8480:50 at Immediate._onImmediate (node:internal/deps/undici/undici:8511:13) at process.processImmediate (node:internal/timers:476:21) { code: 'UND_ERR_CONNECT_TIMEOUT' } }
Timeout…
Let me know if the full somefile.txt by email is still wanted. -
@matt216 no… not needed…
-
@sdetweil If I enter my calendar URL in to a web browser I can download the ics file fine, FYI
-
@matt216 yes, it was a momentary delay, which caused the timeout… trying to see why the catch() block didn’t
-
@matt216 can u try updating modules/default/calendar/calendarfetcher.js like this
replace lines 58-84 with this . also added this to the issuetry { /// new code here // this will be the new line 58 fetch(url, { headers: headers, agent: httpsAgent }) .then(NodeHelper.checkFetchStatus) .then((response) => response.text()) .then((responseData) => { let data = []; try { data = ical.parseICS(responseData); Log.debug(`parsed data=${JSON.stringify(data)}`); events = CalendarFetcherUtils.filterEvents(data, { excludedEvents, includePastEvents, maximumEntries, maximumNumberOfDays }); } catch (error) { fetchFailedCallback(this, error); scheduleTimer(); return; } this.broadcastEvents(); scheduleTimer(); }) .catch((error) => { fetchFailedCallback(this, error); scheduleTimer(); }); } // new code here ========= catch(error){ console.error( "fetch for calendar url" +url + "failed error="+error.code); fetchFailedCallback(this, error); scheduleTimer(); } // end new code =====
-
@sdetweil Doesn’t like that - mirror won’t load. Got to pick up my little boy now, so reverted back (mirror loads ok again). Will try again and look at logs.
-
-
@sdetweil can you tell I’m not a developer…?!
Ok, I’ve replaced the whole block, then pm2 stop all, cd ~/MagicMirror, npm start…
Mirror starts but still no new calendar events are showing where I would expect to be. Interestingly I can see that edits to existing events that I’ve made are showing up on the mirror, so there is some communication. Just no new events are being picked up.
Thanks again,
Matt -
By existing and new events I mean with reference to the point I added the calendar server to the calendar module. That first initial sync (if that’s the right word) of the .ics file.