GNOME Bugzilla – Bug 769044
Customized timezones not recognized
Last modified: 2016-09-07 13:32:37 UTC
I am in the US EDT timezone (America/New_York). I created (on my Android phone) an appointment in the Europe/Berlin timezone which shows up perfectly on Android and within the Outlook Web Client. HOWEVER, Evolution with EWS imported the transaction in the LOCAL time zone. I.e., the appointment was set for 1400 Europe/Berlin which should be 0800 in US/EDT, but evolution shows the appointment at 1400 US/EDT instead of 0800. Both Android and Outlook showed the appointment correctly at 0800. If I open the appointment editor in Evo, the Timezone selector appears (which seems to imply that Evo recognizes that it's not a current timezone) but the selector box is empty. If I go through and re-select Europe/Berlin it will momentarily move the item to 0800 and then immediately reset back to where it was at 1400. If I *CREATE* the appointment in Evo and set the timezone (after selecting the "View Timezones" menu item in order to choose it) then the right thing happens and the appointment is in the correct timezone, showing at 0800 local both in Evo and on my Android phone. So the issue is only importing items from Office365 in a foreign timezone. I see nothing printed to stdout/stderr that could be related to this issue. I'm happy to provide additional data, if required, and if you walk me through the process of obtaining whatever data you want.
Thanks for a bug report. This sounds very close to bug #740208. The 3.20.4 release contains a fix in this area, made within bug #634294. It would be nice to give it a try, maybe in a virtual machine with a distribution which provides it. Could you do that, please?
Just tried 3.20.4 and, unfortunately, it still has the same bug. I created an entry for today at 2200 GMT+02 (Europe/Berlin) from my android phone. It shows up correctly at 1600 (US/EDT) on my phone and in EWS, but in Evolution is shows up at 2200 US/EDT.
(and for the record, creating the item from evo in the foreign timezone works correctly, just like in 3.18)
From the log Derek sent me, the timezone set from the Android is claimed as "Customized Time Zone", both in the XML: <t:StartTimeZone Name="" Id="Customized Time Zone"> <t:Periods> <t:Period Bias="-PT1H" Name="Standard" Id="trule:Microsoft/Registry/Customized Time Zone/1-Standard"/> <t:Period Bias="-PT2H" Name="Daylight" Id="trule:Microsoft/Registry/Customized Time Zone/1-Daylight"/> </t:Periods> <t:TransitionsGroups> <t:TransitionsGroup Id="0"> <t:RecurringDayTransition> <t:To Kind="Period">trule:Microsoft/Registry/Customized Time Zone/1-Daylight</t:To> <t:TimeOffset>PT2H</t:TimeOffset> <t:Month>3</t:Month> <t:DayOfWeek>Sunday</t:DayOfWeek> <t:Occurrence>-1</t:Occurrence> </t:RecurringDayTransition> <t:RecurringDayTransition> <t:To Kind="Period">trule:Microsoft/Registry/Customized Time Zone/1-Standard</t:To> <t:TimeOffset>PT3H</t:TimeOffset> <t:Month>10</t:Month> <t:DayOfWeek>Sunday</t:DayOfWeek> <t:Occurrence>-1</t:Occurrence> </t:RecurringDayTransition> </t:TransitionsGroup> </t:TransitionsGroups> <t:Transitions> <t:Transition> <t:To Kind="Group">0</t:To> </t:Transition> </t:Transitions> </t:StartTimeZone> and in the iCalendar content as well: BEGIN:VCALENDAR METHOD:PUBLISH PRODID:Microsoft Exchange Server 2010 VERSION:2.0 BEGIN:VTIMEZONE TZID:Customized Time Zone BEGIN:STANDARD DTSTART:16010101T030000 TZOFFSETFROM:+0200 TZOFFSETTO:+0100 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10 END:STANDARD BEGIN:DAYLIGHT DTSTART:16010101T020000 TZOFFSETFROM:+0100 TZOFFSETTO:+0200 RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3 END:DAYLIGHT END:VTIMEZONE BEGIN:VEVENT UID:123 SUMMARY;LANGUAGE=en-US:Test DTSTART;TZID=Customized Time Zone:20160803T180000 DTEND;TZID=Customized Time Zone:20160803T190000 CLASS:PUBLIC PRIORITY:5 DTSTAMP:20160803T134006Z TRANSP:OPAQUE STATUS:CONFIRMED SEQUENCE:0 X-MICROSOFT-CDO-APPT-SEQUENCE:0 X-MICROSOFT-CDO-OWNERAPPTID:2114460992 X-MICROSOFT-CDO-BUSYSTATUS:BUSY X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY X-MICROSOFT-CDO-ALLDAYEVENT:FALSE X-MICROSOFT-CDO-IMPORTANCE:1 X-MICROSOFT-CDO-INSTTYPE:0 X-MICROSOFT-DISALLOW-COUNTER:FALSE BEGIN:VALARM DESCRIPTION:REMINDER TRIGGER;RELATED=START:-PT15M ACTION:DISPLAY END:VALARM END:VEVENT END:VCALENDAR This "Customized Time Zone" cannot be stored in the calendar, because the next event would overwrite it and crating one timezone for each event would just make the cache too large, thus I would rather try to match this timezone to any known to libical and use it instead, even it will not match the location properly in most cases, it'll match only the time offset.
FTR, this seems to be an issue with Android. using custom timezones Apparently OWA uses a correct timezone when you set it in the UI and then create an event (which of course displays correctly both in Evo and on Android). I like the idea of finding a timezone that matches the custom setting. I'm less worried about the geographical area, except making sure the DST settings are correct. E.g. just because I set it to Berlin I'd accept Evo claiming it is Paris. Thanks!!
As I mentioned on the IRC, I changed my mind and I'm not trying to pair the "Customized time zone" with an existing libical timezone, because such code would be over complex and easy to break. Instead, I'm using the timezone as is. The below ews change can read the timezone and use it afterwards, showing the event at the correct time. There is a problem when writing changes into the event, ideally a timezone should be changed too, to the standard libical timezone. Note that only parts which changed are saved to the server, where the timezone itself doesn't qualify as a change, if it uses the same rules as the customized timezone. Created commit dd1f5ee in ews master (3.21.90+) Created commit 222b644 in ews gnome-3-20 (3.20.5+) I found also some issues in the component editor dialog, showing incorrect time zone and when it was expanded (Select button clicked), then the map was not aware of the customized time zone at all. I fixed it too, but only for the development version. Created commit_ab4689b in evo master (3.21.90+) [1] [1] https://git.gnome.org/browse/evolution/commit/?id=ab4689b
I've verified that this fix works for me. Thank you for the quick turnaround!
*** Bug 769668 has been marked as a duplicate of this bug. ***
It seems related but I cannot confirm if it is the same. I cannot check bug769668 because upgrading to 3.20.5 has disappeared the timezone selector in appointments editor.
My fault, previous comment must be in bug769668.