Bug 321464 - Invitation received from Microsoft Exchange Server 2010 not recorded in Google calendar
Summary: Invitation received from Microsoft Exchange Server 2010 not recorded in Googl...
Status: RESOLVED FIXED
Alias: None
Product: libkgapi
Classification: Frameworks and Libraries
Component: General (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Daniel Vrátil
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-21 12:09 UTC by Martin van Es
Modified: 2014-04-20 15:25 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 2.0.2


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin van Es 2013-06-21 12:09:22 UTC
When I receive invitations from Microsoft Exchange Server 2010 they appear in my local copy my Google Calendar, but don't appear online. Normal appointments get synchronised both ways without problems

Reproducible: Always

Steps to Reproduce:
1. I receive invitation
2. Choose accept
3. Select Google calendar
4. Event recorded locally

Actual Results:  
Event not recorded in Google calendar

Expected Results:  
Event in Google calendar

The invitation, base64 decoded, depersonalized:

BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:Microsoft Exchange Server 2010
VERSION:2.0
BEGIN:VTIMEZONE
TZID:W. Europe Standard Time
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
ORGANIZER;CN="xxxxxx":MAILTO:xxxxxx@xxxxx.nl
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=xxxxx
  xx:MAILTO:xxx@xxxx.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="xxxxx,
  xxx":MAILTO:xxxxx@xxxxx.nl
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="xxxxxx,
  xxxx":MAILTO:xxxxxx@xxxxxx.nl
DESCRIPTION;LANGUAGE=nl-NL:Wanneer: woensdag 3 juli 2013 11:30-12:30. (UTC+
 01:00) Amsterdam\, Berlijn\, Bern\, Rome\, Stockholm\, Wenen\nWaar: zp11 n
 tb\n\n*~*~*~*~*~*~*~*~*~*\n\n
SUMMARY;LANGUAGE=nl-NL:xxxxxx xxxxxxxxx xxxxxxxxx xxxxxx
DTSTART;TZID=W. Europe Standard Time:20130703T113000
DTEND;TZID=W. Europe Standard Time:20130703T123000
UID:040000008200E00074C5B7101A82E00800000000204C6B8B726ECE01000000000000000
 010000000ABA8B0869FFF5543BDEFB6EE808F40B9
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20130621T112908Z
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
LOCATION;LANGUAGE=nl-NL:zp11 ntb
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-OWNERAPPTID:2111220000
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
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
END:VEVENT
END:VCALENDAR
Comment 1 Daniel Vrátil 2013-06-24 08:24:26 UTC
I'm almost sure this is caused by the obscure time zone name (TZID) that Exchange uses. Usually we are able to map the timezones thanks to X-MICROSOFT-CDO-TZID parameter, but it's missing here and Google does not accept these (we could theoretically strip the timezone and save the event with a wrong timezone to Google, which is not a good solution, but still better than not saving the event at all)

Do you have access to the web interface for the Exchange Server? It would be very useful if I could get list of all the timezone names they use so that I could create an artificial mapping to Olson format, which is accepted by Google.
Comment 2 Martin van Es 2013-06-24 08:38:59 UTC
I don't have access to this server, I'm only invited by them. On the other hand, I don't see a X-MICROSOFT-CDO-TZID in my invitation, but I assume you know what you're talking about?

Isn't there any documentation about what timezones M$ uses in Exchange?
Comment 3 Daniel Vrátil 2013-06-24 10:22:00 UTC
(In reply to comment #2)
> On the other hand, I don't see a X-MICROSOFT-CDO-TZID in my invitation, but I assume you
> know what you're talking about?

Missing X-MICROSOFT-CDO-TZID is exactly the reason why LibKGAPI failed to convert the time zone in TZID into some reasonable format that would be accepted by Google.

> Isn't there any documentation about what timezones M$ uses in Exchange?

I managed to Google this: http://support.microsoft.com/kb/973627 which seems to provide exactly that kind of mapping we need.

This also makes it clear why there's not X-MICROSOFT-CDO-TZID parameter - this is not a CDO timezone (it would be too simple if Microsoft had only one internal and incompatible timezones format, right? :D )
Comment 4 Daniel Vrátil 2013-06-24 21:27:11 UTC
Git commit 1aa962fde79a779e014ca3e5819c56ee4a3d556d by Dan Vrátil.
Committed on 24/06/2013 at 21:25.
Pushed by dvratil into branch 'LibKGAPI/2.0'.

Add support for Microsoft Standard Time Zones

Because one incompatible timezone format would be to simple, Microsoft
has invented yet another one. Some invitations generated by Exchange 2010
(and maybe others) use "X Y Standard Time" as a TZID string. This commit
adds mapping between these strings and Olzon timezones that are accepted
by Google Calendar API
FIXED-IN: 2.0.2

M  +122  -11   libkgapi2/calendar/calendarservice.cpp

http://commits.kde.org/akonadi-google/1aa962fde79a779e014ca3e5819c56ee4a3d556d
Comment 5 Martin van Es 2013-06-25 07:59:53 UTC
Wow thx! That's quick.
Will this fix trickle down via standard KDE minor updates in Ubuntu packages?
Comment 6 Daniel Vrátil 2013-06-25 12:10:48 UTC
Currently I can only see 0.4.4 in Lunchpad (I'm not an Ubuntu user), current stable is 2.0.1. 2.0.2 with this fix will be out in about month or so when I collect few more bugfixes  (unless something supercritical appears). 

You can nag libkgapi maintainer in Ubuntu to update to 2.0.1 and backport the patch or build LibKGAPI yourself from git. Note that kdepim-runtime must be rebuilt as well due to ABI break between 0.4.x and 2.0.x.
Comment 7 Martin van Es 2014-04-20 15:25:42 UTC
Solved by upgrading to Kubuntu 14.04