@sdetweil thanks for the heads up. I’ll make sure to use the new supported method next release.
Awesome support as always!
@sdetweil thanks for the heads up. I’ll make sure to use the new supported method next release.
Awesome support as always!
@sdetweil Replacing the user agent string resolved the issue immediately - thank you.
My Outlook calendar is no longer working, displaying an error for the last several days. I’m using the default calendar module.
I think this is some stupid Microsoft issue but perhaps someone has the knowledge to confirm and perhaps even suggest a fix.
This shows in the log (this is a test calendar I setup - the URL is real):
[2025-08-24 21:38:11.500] [ERROR] Calendar Error. Could not fetch calendar: https://outlook.live.com/owa/calendar/00000000-0000-0000-0000-000000000000/8e3c6cdd-2ee7-43e3-b963-6b7e3efa6d3e/cid-5751C32C44CE49E6/calendar.ics Error: Internal Server Error
at NodeHelper.checkFetchStatus (/home/user/MagicMirror/js/node_helper.js:102:9)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
I’ve poked around and found that I cannot wget that URL from my pi as it throws a 302 error and doesn’t properly redirect. However if I add my user agent string from my Windows laptop it does work:
wget -U 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0' https://outlook.live.com/owa/calendar/00000000-0000-0000-0000-000000000000/8e3c6cdd-2ee7-43e3-b963-6b7e3efa6d3e/cid-5751C32C44CE49E6/calendar.ics
What have Microsoft done now?
Hi Sam,
I’m afraid this issue has reoccurred on an event that is not full day but instead is supposed to be the last in a series. I believe it’s the same issue though where the timezone / BST is causing the problem.
Sample ICS data below:
BEGIN:VCALENDAR
METHOD:PUBLISH
PRODID:Microsoft Exchange Server 2010
VERSION:2.0
X-WR-CALNAME:Test Calendar
BEGIN:VTIMEZONE
TZID:GMT Standard Time
BEGIN:STANDARD
DTSTART:16010101T020000
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T010000
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
RRULE:FREQ=WEEKLY;UNTIL=20250630T173000Z;INTERVAL=1;BYDAY=MO;WKST=MO
UID:040000008200E00074C5B7101A82E00800000000E05582F27408DB01000000000000000
010000000E892CDFA6C0E4E4298E1C987B4791120
SUMMARY:Calendar Event
DTSTART;TZID=GMT Standard Time:20250331T183000
DTEND;TZID=GMT Standard Time:20250331T200000
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20250630T164141Z
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
LOCATION:
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INSTTYPE:1
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT
X-MICROSOFT-ISRESPONSEREQUESTED:FALSE
END:VEVENT
END:VCALENDAR
I’ve stripped out most of the content other than the event in question and the timezone info.
You’ll see that the DTSTART and DTEND data shows the correct start and end time but the RRULE shows the UNTIL as an hour before the event so the event does not show on the MM calendar module.
The event in Outlook shows the series being every Monday until 1st July.
I’m not sure if this “bug” is a problem with Outlook or MagicMirror.
Happy to start a new thread, or log a bug on GitHub if either of those is preferrable.
@sdetweil Thank you - that has fixed my upcoming calendar event 👍
@sdetweil I’m in the UK. Since it’s British summer time I don’t know if that means I’m UTC+1 or something else… GMT, BST… Stupid changing clocks!
@sdetweil Here is a problematic event:
BEGIN:VEVENT
DESCRIPTION:\n
RRULE:FREQ=YEARLY;UNTIL=20250504T230000Z;INTERVAL=1;BYMONTHDAY=5;BYMONTH=5
UID:040000008200E00074C5B7101A82E00800000000DAEF6ED30D9FDA01000000000000000
010000000D37F812F0777844A93E97B96AD2D278B
SUMMARY:Person A's Birthday
DTSTART;VALUE=DATE:20250505
DTEND;VALUE=DATE:20250506
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20250428T133000Z
TRANSP:TRANSPARENT
STATUS:CONFIRMED
SEQUENCE:0
LOCATION:
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INSTTYPE:1
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT
X-MICROSOFT-ISRESPONSEREQUESTED:FALSE
END:VEVENT
And here is a working event:
BEGIN:VEVENT
DESCRIPTION:\n
RRULE:FREQ=YEARLY;UNTIL=20250503T000000Z;INTERVAL=1;BYMONTHDAY=3;BYMONTH=5
UID:040000008200E00074C5B7101A82E00800000000591C9B3BAA0EDA01000000000000000
01000000005E6F2F9D20F7947B69F54FBF0794A6D
SUMMARY:Person B's Birthday
DTSTART;VALUE=DATE:20250503
DTEND;VALUE=DATE:20250504
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20250428T133000Z
TRANSP:TRANSPARENT
STATUS:CONFIRMED
SEQUENCE:0
LOCATION:
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INSTTYPE:1
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MICROSOFT-REQUESTEDATTENDANCEMODE:DEFAULT
X-MICROSOFT-ISRESPONSEREQUESTED:FALSE
END:VEVENT
Thanks for taking a look.
Hello all.
I’m having some issues with Outlook calendar events in the default calendar app and I think I have narrowed it down to a daylight savings issue (bug?):
As you can see above, the recurring rule is expiring the evening before the event so these events do not show in my calendar.
I realise this is looking like a Microsoft issue but I wondered if anyone had encountered this before and knows how to fix it?
One thing that appears to work is setting my timezone to UTC then re-saving the event which I guess I can do unless someone has a better idea… Doing this sets the “UNTIL” time to 00:00 on the day of the actual event.
@sdetweil Thanks Sam. I actually prefer them to not be there at all, even on the Todoist module. Thanks for the tip though.