Webcal and .ics file events with timezone code set in DTSTART and DTEND are interpreted as being UTC times
See the two attached sample files, both can reproduce the issue. They were obtained by doing downloading the .ics file from the "Add to calendar" link in the sidebar of pretty much any Agenda du Libre calendar event (webcal link), such as this one (.ics) or this one (.ics).
Attached here for posterity:
The contents look something like this (I'm just showing the timestamps here, where you can see the EDT
timezone specified in DTSTART
and DTEND
), for example in sample event 2436:
DTSTAMP;TZID=EDT:20240423T025727
UID:2436@agendadulibre.qc.ca
DTSTART;TZID=EDT:20240505T110000
DTEND;TZID=EDT:20240505T120000
The problem is that although it specifies 11:00 to 12:00 AM EDT, even if your system is on the EDT timezone, it will interpret those DTSTART
and DTEND
times as if they were UTC times instead of EDT somehow, and offset them by many hours (in my case, the event shows up at 7 to 8 AM). This happens both with the webcal subscription method, and the .ics files above imported directly to a local calendar via GNOME Calendar 46's .ics importer. Example with event 2436 in this case, where GNOME Calendar's importer messes up the imported event (not just its display):
GNOME Calendar's .ics importer | How it shows up in Evolution (wrong) | How it shows up in GNOME Calendar (wrong) |
---|---|---|
Importing through Evolution's .ics importer, you get a different result, where it shows up correctly in Evolution:
Evo's .ics importer | How it shows up in Evolution (correct) | How it shows up in GNOME Calendar (wrong) |
---|---|---|
Unlike #1110, there is no recurrence involved here, and unlike most other tickets I've seen, the events here do have a timezone set, they are not just "pure floating time" events.