GNOME Bugzilla – Bug 689571
Meetings have incorrect timezone, offset by current time zone offset as though invite used UTC
Last modified: 2019-11-12 17:33:32 UTC
I use Evolution 3.4.4 on Debian GNU/Linux sid with evolution-ews. Meeting invites received from Exchange/Outlook users work fine. However, meeting invites received from Google Calendar users or users of some other calendaring software end up on my calendar at an incorrect time: I work in the US/Pacific timezone, currently UTC-8, and those meetings show up on my calendar 8 hours ahead, as though specified in UTC rather than UTC-8. Earlier in the year, when US/Pacific corresponded to UTC-7, such meetings would end up on my calendar 7 hours ahead. The meeting invite itself, as displayed in Evolution's email view, shows the correct time.
Created attachment 230595 [details] Invite that shows up with incorrect time zone Attaching the invite.ics file from that invite (with names, email addresses, and description anonymized).
That invite *should* become a meeting from 11:30AM to 12:30AM, at least in current US/Pacific (UTC-8).
DTSTART:20121206T193000Z DTEND:20121206T203000Z That meeting is supposed to be 19:30 UTC to 20:30 UTC. So 11:30AM-12:30PM (UTC-8). If you accept this to a local calendar which is otherwise empty, can you show what ends up in the resulting local ical file? If you mail yourself an invite identical to this from an account which *isn't* EWS, does it do the same thing? I'm assuming so.
Note that this item came from an EWS calendar. I worked with David via IRC to debug this interactively. He pointed out that Exchange parsed this calendar item directly before Evolution saw it, and evolution-ews just sent an ack when I accepted. Working with David via IRC, I managed to directly fetch this item from the EWS server with a GetItem SOAP request, and got the following lines in the response: <t:Start>2012-12-06T19:30:00Z</t:Start> <t:End>2012-12-06T20:30:00Z</t:End> <t:TimeZone>UTC</t:TimeZone>
The following test procedure reliably reproduces the issue: - Have an EWS account and calendar set up, in a time zone other than UTC. - Create a Google account. - Set your Google Calendar time zone to another non-UTC time zone *other* than the one you use with Evolution and EWS. (Not sure if this test works if the time zones match; seems like it should, but I didn't test that.) - Create a Google Calendar event, set its time and title, and add your EWS account's email address as a guest. Save the event, and let Google Calendar send out an invite. - Wait until you receive the invite in your EWS inbox. - Click on the invite, and click "accept". - Check your calendar. If your EWS account and calendar use time zone UTC-N, you should find that the event shows up N hours later than the time you set it for. (Likewise for UTC+N and N hours earlier, I'd guess.) I'll attach the .ics entry saved from the Evolution calendar with "Save as iCalendar...", the full invite mail received at a different address also invited to the meeting (via a normal mail server, IMAP, and mutt, so nothing should have mangled it), and the <GetItemResponse> from the EWS server as obtained via "EWS_DEBUG=2 /usr/lib/evolution/evolution-calendar-factory --keep-running".
Created attachment 230611 [details] .ics file from test meeting, saved from evolution calendar
Created attachment 230612 [details] GetItemResponse from EWS when retrieving the test meeting GetItemResponse, via "EWS_DEBUG=2 /usr/lib/evolution/evolution-calendar-factory --keep-running". Oddly, this GetItemResponse contains the time zone (<t:TimeZone>UTC</t:TimeZone>) but not the time. However, retrieving that item directly from EWS via GetItem gives me the following: <t:Start>2012-12-05T18:00:00Z</t:Start> <t:End>2012-12-05T19:00:00Z</t:End> <t:TimeZone>UTC</t:TimeZone>
ping? I still regularly observe this issue with current Evolution and EWS.
I'm seeing the same issue running Linux Mint with 3.6.2 and evolution-ews. All my customers and management are located in EST5EDT ... exchange is set up with UTC-5 as the default timezone. For example, a new standing meeting was added for 11 UTC-5, but shows up in my calendar as 11 UTC-6 .. or more precisely .. the event shows up at the base time of the event without taking into consideration the timezone.
I suppose bug #722419 and bug #734747 are related to this one. The fixes are included in the 3.12.11 of evolution-ews. The newer version you use the better (as the current stable version is 3.16.3). Could you retest this with more recent version of evolution-ews, please?
(In reply to Josh Triplett from comment #6) > Created attachment 230611 [details] > .ics file from test meeting, saved from evolution calendar This Google calendar's event has set floating times, without any timezone. That means, whatever timezone user uses, the event is always shown at the time it has set, like in this case, 18:00-19:00. (In reply to Josh Triplett from comment #7) > Created attachment 230612 [details] > GetItemResponse from EWS when retrieving the test meeting The stored mime-content, as provided by the Exchange server, shows: DTSTART;TZID=Pacific Standard Time:20121205T100000 DTEND;TZID=Pacific Standard Time:20121205T110000 This can be fixed by the bug #734747. ------------------------------------------------------------------------------- I re-read the bug and from what I understand there are two issues. One is that the evolution-ews gives odd times/timezones, which is addressed by the two above mentioned bugs. Then there is a Google calendar issue using floating times. Why it does so I do not know. When I create an event in the Google calendar, then it shows the right setting, which is: DTSTART;TZID=Europe/Prague:20150625T110000 DTEND;TZID=Europe/Prague:20150625T113000 just as I saved it. It's possible that the Google server also had some updates meanwhile.
Considering all the moving parts and the lack of activity here, let's assume this is not relevant anymore. Feel free to reopen in case it still is.