GNOME Bugzilla – Bug 734747
Fails to provide "Eastern Standard Time" timezone
Last modified: 2014-11-25 13:22:41 UTC
If I create an all day event with Evolution or OWA then evolution with show the all day flag ticked, If I create an all day event in iOS or Android using the respective exchange connectors Evolution does not show it as being an all day event although the OWA, iOS, Android and Lightening-with-ews-plugin calenders do.
Thanks for a bug rpeort. Could you create a test event in the Android and/or iOS, view it in evolution, then right-click it in Evolution, save it as iCalendar, remove any sensitive data from the saved event and attach it here, please?
I can't save events from the EWS calendar it fails and evolution report (evolution:19812): calendar-modules-WARNING **: Could not convert item to a string Exporting from other calendar sources work fine.
Hmm, it failed to read a timezone from the calendar for some reason. As the event can be seen in UI, it is stored at ~/.cache/evolution/calendar/<ews-calendar-uid>/<some-weird-id>/calendar.ics where the events are those lines between BEGIN:VEVENT and END:VEVENT inclusive. You can see event's summary in the file too, and find the corresponding one there. Note that they can be in the file multiple times, if it's a recurring event with detached instances.
Non recurring all day events created on iOS and Android. BEGIN:VEVENT SUMMARY;LANGUAGE=en-GB:All day event created on iOS DTSTART;TZID=Eastern Standard Time:20141121T190000 DTEND;TZID=Eastern Standard Time:20141122T190000 UID:0CD932B767F24ECEA7B6F91DDE26F33600000000000000000000000000000000 CLASS:PUBLIC PRIORITY:5 DTSTAMP:20141114T095424Z TRANSP:OPAQUE STATUS:CONFIRMED SEQUENCE:0 X-MICROSOFT-CDO-APPT-SEQUENCE:0 X-MICROSOFT-CDO-OWNERAPPTID:2112583047 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 X-EVOLUTION-ITEMID: AAMkADgxMzJlMDhhLTYyMjEtNDU0ZC05NjQ3LWViMDQxN2NhYjQ4MwBGAAAAAAC7qHnh1V9RQ4 6MS4eMxsVZBwB2vipmjDSHTJiDNJbtae5LAX2z2p10AAAlL/linF7FToz5mWb8OPATAAAi2oKu AAA= X-EVOLUTION-CHANGEKEY:DwAAABYAAAAlL/linF7FToz5mWb8OPATAAAi3dWr END:VEVENT BEGIN:VEVENT SUMMARY;LANGUAGE=en-US:Android created event DTSTART;TZID=Eastern Standard Time:20140829T190000 DTEND;TZID=Eastern Standard Time:20140830T190000 UID:328f9606-81cb-496f-93d9-c55bb9a7496d CLASS:PUBLIC PRIORITY:5 DTSTAMP:20140813T211225Z TRANSP:OPAQUE STATUS:CONFIRMED SEQUENCE:0 X-MICROSOFT-CDO-APPT-SEQUENCE:0 X-MICROSOFT-CDO-OWNERAPPTID:2112383645 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 X-EVOLUTION-ITEMID: AAMkADgxMzJlMDhhLTYyMjEtNDU0ZC05NjQ3LWViMDQxN2NhYjQ4MwBGAAAAAAC7qHnh1V9RQ4 6MS4eMxsVZBwB2vipmjDSHTJiDNJbtae5LAX2z2p10AAB2vipmjDSHTJiDNJbtae5LAsHF23Ly AAA= X-EVOLUTION-CHANGEKEY:DwAAABYAAAB2vipmjDSHTJiDNJbtae5LAsHF24OM BEGIN:VALARM TRIGGER;VALUE=DURATION;RELATED=START:-P1D ACTION:DISPLAY X-EVOLUTION-ALARM-UID: 20141115T092751Z-3109-1001-1-64@latidude.clarkconnect.lan DESCRIPTION:Android created event END:VALARM END:VEVENT
(In reply to comment #4) > DTSTART;TZID=Eastern Standard Time:20141121T190000 > DTEND;TZID=Eastern Standard Time:20141122T190000 > .... > > DTSTART;TZID=Eastern Standard Time:20140829T190000 > DTEND;TZID=Eastern Standard Time:20140830T190000 Thanks for the update. The above means that the event is 24 hours long (like an all day event), but it starts at 7PM EST. Only events from midnight to midnight (in the Evolution's set timezone) are shown and understood as the all day events in Evolution. I do not know why the Android chose to use a 7PM EST, instead of midnight, but the evolution's behaviour is correct in this case. Interesting is that they even claim that the event is not an all day event: > X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
Well, hang on, I'm in the UK and the calendar is hosted in the US. Also why does OWA and Thunderbird EWS show it as an All Day Event?
So that's it is it? OWA, Lightning EWS, MS Outlook, iOS and Android calendar are all wrong and Evolution is right? Are you sure the EWS plugin isn't Failing on the nutty timezone and setting the ALLDAY to FALSE by itself?
I'd not say they are wrong. :) The way evolution-ews interpreted the event is correct with the way evolution itself shows it. There can be multiple issues, like the timezone shift incorrectly calculated during the conversion inside evolution-ews. Could you check your timezone setting in evolution and on the other devices (like the android or OWA), please? You can find it in evolution at Edit->Preferences->Calendar and Tasks->General tab, at the top. The OWA has it buried in settings somewhere (depends on actual exchange server version). Where the Android has it I do not know, maybe in the Calendar application settings as such. If I count it properly, then the EST converted into a UK time is what is expected, the 7PM converts into midnight of the UK time. That should be shown as an all day event in evolution, if the timezone is set properly (and, of course, unless a bug is somewhere there).
Evolution is set to use the System Timezone. My system timezone in Gnome 3 is Europe/London. All of my other devices are set the same.
I tried to reproduce the failure with your timezone and I can confirm it. (In reply to comment #3) > Hmm, it failed to read a timezone from the calendar for some reason. And this ^^^ is the reason. As the timezone is unknown, a floating time is used, which means "whichever timezone is used for the view, the time will stick the same", and it means 7PM - 7PM in our case. I changed the "Eastern Standard Time" to EST in the component and then the event is shown as a whole day event on Saturday, November 22nd. So the bug is that evolution-ews failed to provide the timezone.
It seems to me that iOS and Android are using "windows" timezones, instead of Exchange timezones. The reason is that I cannot select "Eastern Standard Times" in an Outlook or an OWA interface, there are used different timezone names, about which evolution-ews knows. I'll extend the mapping table to know about these "standard" zones as well, which should fix the issue (maybe only after re-download of the local calendar cache).
Hmm, more and more diving into it I find more and more things being different from my personal expectations. I found an event which also reports Eastern Standard Time timezone, the same as I realized the evolution-ews knows about this timezone name, it's only the get_timezone() backend function which doesn't try to convert the timezone name into anything compatible when not found by usual means. I made it try this and it allowed me to save the event (the timezone had been found). I made couple more changes around this, like the population of the windows zones hash tables doesn't overwrite a record with the same name when it is in the hash table already, which also meant that I could remove "Internal fixes" from the XML with the pairs of the compatible timezones in libical and windows. A side effect is that for example the "Eastern Standard Time" newly maps to America/New_York, while it used to map to America/Kentucky/Louisville. Created commit 3ef4c01 in ews master (3.13.9+) [1] Created commit 37ce356 in ews evolution-ews-3-12 (3.12.9+) [1] https://git.gnome.org/browse/evolution-ews/commit/?id=3ef4c01