Reputation: 9106
Code block 1 below creates a recurring event, recurring every day, start date 3. May 2014
Code block 2: response OK
Code block 3: ask for first occurrence with that ID (Exchange starts counting at 1, not 0)
Code block 4: response: 1st occurrence is on 4. May ????? What is happening here (and how to fix)?
Create event:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">
<soapenv:Header>
<typ:RequestServerVersion Version="Exchange2007_SP1"/>
<typ:MailboxCulture>en-US</typ:MailboxCulture>
<typ:TimeZoneContext>
<typ:TimeZoneDefinition Id="W. Europe Standard Time"/>
</typ:TimeZoneContext>
</soapenv:Header>
<soapenv:Body>
<mes:CreateItem SendMeetingInvitations="SendToNone">
<mes:Items>
<typ:CalendarItem>
<typ:Subject>Random master event 24 for emp id 20652</typ:Subject>
<typ:Body BodyType="Text">TEST recurring event</typ:Body>
<typ:Categories>
<typ:String>TimeTell</typ:String>
</typ:Categories>
<typ:ReminderIsSet>false</typ:ReminderIsSet>
<typ:Start>2014-05-03T13:24:00.000+01:00</typ:Start>
<typ:End>2014-05-03T17:25:00.000+01:00</typ:End>
<typ:IsAllDayEvent>false</typ:IsAllDayEvent>
<typ:LegacyFreeBusyStatus>Busy</typ:LegacyFreeBusyStatus>
<typ:Location>Here</typ:Location>
<typ:Recurrence>
<typ:DailyRecurrence>
<typ:Interval>1</typ:Interval>
</typ:DailyRecurrence>
<typ:NumberedRecurrence>
<typ:StartDate>2014-05-03Z</typ:StartDate>
<typ:NumberOfOccurrences>27</typ:NumberOfOccurrences>
</typ:NumberedRecurrence>
</typ:Recurrence>
<typ:MeetingTimeZone TimeZoneName="W. Europe Standard Time"/>
</typ:CalendarItem>
</mes:Items>
</mes:CreateItem>
</soapenv:Body>
</soapenv:Envelope>
Response:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:ServerVersionInfo MajorVersion="15" MinorVersion="0" MajorBuildNumber="516" MinorBuildNumber="29" Version="Exchange2013" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<m:CreateItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<m:ResponseMessages>
<m:CreateItemResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:Items>
<t:CalendarItem>
<t:ItemId Id="AAMkAG[snip]Kf/fBAAA=" ChangeKey="DwAAABYAAAC4CIO9P6hbQ7Rh7x62oA4/AACKhInU"/>
</t:CalendarItem>
</m:Items>
</m:CreateItemResponseMessage>
</m:ResponseMessages>
</m:CreateItemResponse>
</s:Body>
</s:Envelope>
Find occurrence 1:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">
<soapenv:Header>
<typ:RequestServerVersion Version="Exchange2007_SP1"/>
<typ:MailboxCulture>en-US</typ:MailboxCulture>
<typ:TimeZoneContext>
<typ:TimeZoneDefinition Id="W. Europe Standard Time"/>
</typ:TimeZoneContext>
</soapenv:Header>
<soapenv:Body>
<mes:GetItem>
<mes:ItemShape>
<typ:BaseShape>IdOnly</typ:BaseShape>
<typ:AdditionalProperties>
<typ:FieldURI FieldURI="calendar:Start" />
</typ:AdditionalProperties>
</mes:ItemShape>
<mes:ItemIds>
<typ:OccurrenceItemId RecurringMasterId="AAMkAG[snip]Kf/fBAAA=" InstanceIndex="1"/>
</mes:ItemIds>
</mes:GetItem>
</soapenv:Body>
</soapenv:Envelope>
Response:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:ServerVersionInfo MajorVersion="15" MinorVersion="0" MajorBuildNumber="516" MinorBuildNumber="29" Version="Exchange2013" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<m:GetItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<m:ResponseMessages>
<m:GetItemResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:Items>
<t:CalendarItem>
<t:ItemId Id="AAMkAGFkYTBkM2UxLTkyYTctNDA1NC05MGY3LWJkMzQ4MWQwNjAyMQFRAAgI0TVC7TkAAEYAAAAAhhvKZmdnRkCUOsqdWWjc9wcAuAiDvT+oW0O0Ye8etqAOPwAAAAAADwAAuAiDvT+oW0O0Ye8etqAOPwAAin/3wQAAEA==" ChangeKey="DwAAABYAAAC4CIO9P6hbQ7Rh7x62oA4/AACKhInU"/>
<t:Start>2014-05-04T12:24:00Z</t:Start>
</t:CalendarItem>
</m:Items>
</m:GetItemResponseMessage>
</m:ResponseMessages>
</m:GetItemResponse>
</s:Body>
</s:Envelope>
This is done with SOAPUI talking against Exchange 2013 or Exchange 2010
Here's an Outlook screen shot confirming the start at 4. May:
Additional tests: - Creating with a NoEndRecurrence or EndDateRecurrence also fails:
<typ:NoEndRecurrence>
<typ:StartDate>2014-05-03Z</typ:StartDate>
</typ:NoEndRecurrence>
<typ:EndDateRecurrence>
<typ:StartDate>2014-05-03Z</typ:StartDate>
<typ:EndDate>2014-06-03Z</typ:EndDate>
</typ:EndDateRecurrence>
Upvotes: 0
Views: 210
Reputation: 114957
Your create call is creating the event in dd-mm-yyyZ
, which is in Zulu
time (a.k.a. UTC). If you're actually in a different timezone, that can skew your events by a day in either direction.
EWS and timezones (timezones in general) can be very confusing. When connecting to EWS using the Managed EWS library you can specify the Timezone you're in, that way, when you supply any dates, you don't have to constantly keep this in mind.
Also remember that certain timezones start/end their daylight savings time on different date (or don't have daylight savings at all (Arizona)). This can even move certain appointments by 1 hour in a short timewindow each year.
Upvotes: 1