Le Café Central de Deva
..... Deva blogs!!
One of my customers reported an issue while they were reading a recurrence calendar with exceptions using Exchange Web Service (EWS) API. Their EWS application uses EWS WSDL to generate stub and uses that to access the server to read the calendar items from Exchange Server 2010. As part of the business logic, they read exception instance of a recurring meeting to access the recurrence-id using GetItem() call, but the Recurrence-ID was not returned under this scenario:
<t:ItemId Id="AAMkAGJmODU0Y2RkLTMzNWQtNDU0Zi04ZTRmLWZkYmY3NjMzMmY5NwBGAAAAAAAYgD84Mql7RaeCH1aLb3byBwBsPRpqddOASYFOcLJOFXFtAAAABxwqAABsPRpqddOASYFOcLJOFXFtAAABQSkXAAA=" ChangeKey="DwAAABYAAABsPRpqddOASYFOcLJOFXFtAAABQgc0"/>
<t:EmailAddress> email@example.com </t:EmailAddress>
<t:TimeZone>GMT -0600 (Standard) / GMT -0500 (Daylight)</t:TimeZone>
When we analyzed the issue happens only with meetings created/modified using Outlook 2003 SP3 clients. The same issue doesn’t occur not with Outlook 2007 & 2010 clients. Due to this issue, their application logic was broken. We tried using FindItem() call, instead of GetItem() but it didn’t make any difference. As part of troubleshooting we noticed that the recurrence-id doesn’t available in the GetItem() response XML; but using the MimeContent, we can parse it manually, look for recurrence-id and can overcome this issue.
foreach (Item it in fiResults.Items)
MimeContent mc = it.MimeContent;
//Your application logic goes here: Parse the above MimeContent & look for recurrence-id
But this turned out not a feasible solution for them as it might be much dependent on Mime encoding type being used as well as the format of recurrence-id is different from what they get as part of GetItem() response. Apart from this, I don’t see any fix/design change/new feature request for Outlook 2003, which is already in extended support.
Dave, Thanks for the blog post. I was banging my head with the specific issue for a while. I followed your approach and isolated the issue Outlook 2003 recurrence items. I will give a shot with the specified workaround.