Calendar icon indicating copy to clipboard operation
Calendar copied to clipboard

Timezones are not processed correctly at import of ICS file

Open openfnord opened this issue 8 months ago • 4 comments

Checklist

  • [x] I can reproduce the bug with the latest version given here.
  • [x] I made sure that there are no existing issues - open or closed - to which I could contribute my information.
  • [x] I made sure that there are no existing discussions - open or closed - to which I could contribute my information.
  • [x] I have read the FAQs inside the app (Menu -> About -> FAQs) and my problem isn't listed.
  • [x] I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
  • [x] This issue contains only one bug.
  • [x] I have read and understood the contribution guidelines.

Affected app version

1.2.0

Affected Android/Custom ROM version

Android 15 (Xiaomi 2.0.4.0.VNTEUXM)

Affected device model

Redmi13

How did you install the app?

F-Droid / IzzyOnDroid

Which calendar service or provider do you use, if any?

No response

Which sync adapter app do you use for calendar synchronization, if any?

No response

Steps to reproduce the bug

I missed a ms teams conference with my professor regarding my PhD because Calender does not honor time zones correctly. To reproduce open the file msteamsinvite.ics (remove txt for acceptance) with calendar. Note the start time of the meeting is 11h and not 10h as it should be if you have central european summer time. Note the meeting invite uses israeli standard time ;-) Neglect to detail on both sides caused the meeting to fail.

A user would expect calendar at least to produce a pop-up warning about different time zone in the ICS file and the time zone set for the android device.

The critical part in the ICS is here: " BEGIN:VTIMEZONE TZID:Israel Standard Time BEGIN:STANDARD DTSTART:16010101T020000 TZOFFSETFROM:+0300 TZOFFSETTO:+0200 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10 END:STANDARD BEGIN:DAYLIGHT DTSTART:16010101T020000 TZOFFSETFROM:+0200 TZOFFSETTO:+0300 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1FR;BYMONTH=3 END:DAYLIGHT END:VTIMEZONE " We have daylight saving in europe and israel and also we have israeli time zone vs european time zone.

This should be fixed to prevent people missing their important meetings. Best would be to implement proper parsing of ICS VTIMEZONE and time zone handling using a proper library for time zones.

msteamsinvite.ics.txt

Expected behavior

The user imports the ICS file and the timezone is properly parsed and the date is correctly calculated including time and timezone so the meeting is scheduled at the right time regardless which time zone the sender and producer oi ICS uses and the time zone the user of calendar uses.

msteamsinvite.ics.txt

Actual behavior

The user imports the ICS file and the timezone is NOT properly parsed and the date is NOT correctly calculated including time and timezone so the meeting is scheduled at the WRONG time when the time zone of the sender and producer oi ICS is DIFFERENT from the time zone the user of calendar uses.

This leads to missed meetings!

msteamsinvite.ics.txt

Screenshots/Screen recordings

No response

Additional information

No response

openfnord avatar Apr 18 '25 06:04 openfnord

another one.. timezone on the phone and in the ICS are the same, still it should have been starting 2025-04-22T12:30:00+0200 but it was 2025-04-22T14:30+0200 as if the 2 hours UTC offset was simply added.

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-WR-TIMEZONE:Europe/Berlin
BEGIN:VTIMEZONE
TZID:Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
DTSTART:19700329T020000
RRULE:BYMONTH=3;FREQ=YEARLY;BYDAY=-1SU
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19701025T030000
RRULE:BYMONTH=10;FREQ=YEARLY;BYDAY=-1SU
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
ORGANIZER:MAILTO:[email protected]
DTSTART:20250422T123000
DTEND:20250422T131500
TRANSP:OPAQUE
SEQUENCE:0
UID:[email protected]
DTSTAMP:20250415T173253
DESCRIPTION:Gewünschte Dienstleistungen:\n- HERRENHAARSCHNITT\n\nMita
 rbeiter: Susanne (Profi)\n\nDas Someone Somewhere hairdesign Salon 
 -Team freut sich auf Ihren Besuch!\n\n
SUMMARY:Someone Somewhere hairdesign Salon 
PRIORITY:5
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR

savar avatar Apr 23 '25 04:04 savar

Same issue here on 1.2.0 FDroid on graphene os.

My train connection was shown as 2 hours later due to bad timezone interpretation. The time is interpreted as UTC as given but not corrected for the timezone.

kuflierl avatar Apr 23 '25 06:04 kuflierl

I'm also experiencing this issue. Would be good to address timezones.

englut avatar Aug 20 '25 17:08 englut

I experienced a similar bug on version 1.6.2. I almost missed an important job interview because of this. Luckily one of the interviewers sent me an email asking me were I was. This bug can cause some real damage.

watermelonwolverine avatar Oct 22 '25 01:10 watermelonwolverine