Read the statement by Michael Teeuw here.
MMM-Calendar not seem to load .ics
-
@Dennis-010 the browser has error recovery code that we don’t, probably. they’ve had fetch for a long time. years…
this is one of the.problens w trying to keep up with changes and general supportability .
-
@sdetweil
Point is, it has worked before… like a charm for over 2 years.
Recently we moved to another house and we have not been using the mirror for 8-9 months, now I reinstalled the OS and modules and now the calendar stopped working.Is there any way I can try and sort out what the source of this issue could be?
-
@Dennis-010 I hear you.
none of the code that needs to be debugged is ours(mm) it’s all lower layers.
let me see if there is a hacky way to help you out.
-
I’'l be happy to test and try out things or methods to fix this issue.
Thanks in advance -
ok, lets try this
cd ~/MagicMirror/modules/default/calendar cp calendarfetcher.js savefetcher.js nano calendarfetcher.js
then insert this line
const Log = require("logger"); const fetchit = require('node-fetch'); //<----- add this line const NodeHelper = require("node_helper");
then add this line
const nodeVersion = Number(process.version.match(/^v(\d+\.\d+)/)[1]); let fetcher = null //<------ add this line let httpsAgent = null;
then later change this
fetch(url, { headers: headers, agent: httpsAgent })
to this
if (fetcher === null) { fetcher = fetchit(url, { headers: headers, agent: httpsAgent }); } fetcher
then save, (ctrl-o)
and exit nano (ctrl-x)then
cd ~/MagicMirror npm install node-fetch@2
then npm start
calendar should come up
mine works… -
@sdetweil
This seem to work like a charm, thank you for fixing this.Now…when I want to add 2 more url’s I get a new error:
For each of the new url. Both from the same domain.
is it possible to have a hacky line for that as well?[ERROR] Calendar Error. Could not fetch calendar: https://www.xxxxxxxx/ical/**url**/Calendar.ics RangeError: Invalid time value
[23.10.2023 22:56.15.687] [LOG] Create new calendarfetcher for url: https://**url**/ical/**url**/Calendar.ics - Interval: 3600000 [23.10.2023 22:56.15.728] [LOG] Create new calendarfetcher for url: https://**url**/ical/**url**/Calendar.ics - Interval: 3600000 [23.10.2023 22:56.15.733] [LOG] Create new calendarfetcher for url: https://**url**/ical/**url**/Calendar.ics - Interval: 3600000
-
@Dennis-010 this sounds like an ics data format problem
change this line in config.js
logLevel: ["INFO", "LOG", "WARN", "ERROR"],
to
logLevel: ["INFO", "LOG", "WARN", "ERROR","DEBUG"],
then start MM like this
pm2 stop all cd ~/MagicMirror npm start > somefile.txt 2>&1
wait 15 seconds
then in the same window as where you did npm start do
ctrl-c
and then examine the somefile.txt to see where that error is…i’d like to see the ics file entry for that event
npm start -
Is this what you are looking for?
[23.10.2023 23:18.36.721] [ERROR] Calendar Error. Could not fetch calendar: https://**url**/ical/**url**/Calendar.ics RangeError: Invalid time value at Date.toISOString (<anonymous>) at /home/dennis/MagicMirror/modules/default/calendar/calendarfetcherutils.js:312:28 at Array.forEach (<anonymous>) at Object.filterEvents (/home/dennis/MagicMirror/modules/default/calendar/calendarfetcherutils.js:140:24) at /home/dennis/MagicMirror/modules/default/calendar/calendarfetcher.js:72:36 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) [23.10.2023 23:18.38.049] [DEBUG] parsed data={"ecaf4d70-3f05-470f-a8f3-2566b4f2f1b5":{"type":"VTIMEZONE","params":[],"tzid":"Europe/Amsterdam","487c4058-cf12-4ad3-9d19-abf7c43101a2":{> [23.10.2023 23:18.38.053] [DEBUG] There are 327 calendar entries. [23.10.2023 23:18.38.055] [DEBUG] Processing entry... [23.10.2023 23:18.38.058] [DEBUG] Processing entry... [23.10.2023 23:18.38.060] [DEBUG] Event:
[23.10.2023 23:18.38.153] [ERROR] Calendar Error. Could not fetch calendar: https://**url**/ical/**url**/Calendar.ics RangeError: Invalid time value at Date.toISOString (<anonymous>) at /home/dennis/MagicMirror/modules/default/calendar/calendarfetcherutils.js:312:28 at Array.forEach (<anonymous>) at Object.filterEvents (/home/dennis/MagicMirror/modules/default/calendar/calendarfetcherutils.js:140:24) at /home/dennis/MagicMirror/modules/default/calendar/calendarfetcher.js:72:36 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) [23.10.2023 23:18.39.055] [DEBUG] parsed data={"634747":{"type":"VEVENT","params":[],"dtstamp":"2018-03-19T19:38:00.000Z","uid":"634747","description":"Datum: 04/24/2018\nTijd: 19:30\n> [23.10.2023 23:18.39.060] [DEBUG] There are 434 calendar entries. [23.10.2023 23:18.39.061] [DEBUG] Processing entry... [23.10.2023 23:18.39.061] [DEBUG] Event: {"type":"VEVENT","params":[],"dtstamp":"2018-03-19T19:38:00.000Z","uid":"634747","description":"Datum: 04/24/2018\nTijd: 19:30\n\nTot dan!\n\nP.S.: Gebruik je GMAIL? Controleer of de t> [23.10.2023 23:18.39.062] [DEBUG] start: Tue Apr 24 2018 19:30:00 GMT+0200 (Midden-Europese zomertijd)
-
@Dennis-010 thx… I meant download the ics file and find that entry
like this from my calendar
BEGIN:VEVENT DTSTART:20160729T233000Z DTEND:20160730T010000Z DTSTAMP:20231023T212812Z UID:2prgqt2idcgs5jjf0bvd557v6k@google.com CREATED:20160912T121808Z LAST-MODIFIED:20160912T121808Z LOCATION:georgetown SEQUENCE:0 STATUS:CONFIRMED SUMMARY:Dinner at Monument Cafe TRANSP:OPAQUE END:VEVENT
-
@sdetweil
I don’t think I understand what you’re asking.
What event you want me to find?