none
[2007][EWS][XML]Updating appointment occurrence property does not make it an exception?? RRS feed

  • Question

  • [Note: long post, I have included all SOAP request/responses]
    Exchange Server 2010, no SP. Outlook 2007 SP3.

    1) I create a simple recurring master 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>Elke weekdag met custom op dinsdag 19</typ:Subject>
               <typ:Body BodyType="Text">Test tekst</typ:Body>
               <typ:ReminderIsSet>false</typ:ReminderIsSet>
               <typ:Start>2013-03-18T09:00:00.000+01:00</typ:Start>
               <typ:End>2013-03-18T09:30:00.000+01:00</typ:End>
               <typ:IsAllDayEvent>false</typ:IsAllDayEvent>
               <typ:LegacyFreeBusyStatus>Busy</typ:LegacyFreeBusyStatus>
               <typ:Location></typ:Location>
               <typ:Recurrence>
                 <typ:WeeklyRecurrence>
                   <typ:Interval>1</typ:Interval>
                   <typ:DaysOfWeek>Monday Tuesday Wednesday Thursday Friday</typ:DaysOfWeek>
                 </typ:WeeklyRecurrence>
                 <typ:NumberedRecurrence>
                   <typ:StartDate>2013-03-18</typ:StartDate>
                   <typ:NumberOfOccurrences>5</typ:NumberOfOccurrences>
                 </typ:NumberedRecurrence>
               </typ:Recurrence>
               <typ:MeetingTimeZone TimeZoneName="W. Europe Standard Time"/>
             </typ:CalendarItem>
          </mes:Items>
       </mes:CreateItem>
    </soapenv:Body>
    </soapenv:Envelope>
    
    (response)
    
    <Envelope>
      <Header>
        <ServerVersionInfo MajorVersion="14" MinorVersion="0" MajorBuildNumber="722" MinorBuildNumber="0" Version="Exchange2010"/>
      </Header>
      <Body>
        <CreateItemResponse>
          <ResponseMessages>
            <CreateItemResponseMessage ResponseClass="Success">
              <ResponseCode>NoError</ResponseCode>
              <Items>
                <CalendarItem>
                   <t:ItemId Id="AQMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmIBNWJiADUwZTYARgAAA4Kt4mOTlXZJrZx0v5cQm8IHAISmF1hx/2pAhQBTVUBmYgoAAAMhAAAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAAA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1X"/>
                </CalendarItem>
              </Items>
            </CreateItemResponseMessage>
          </ResponseMessages>
        </CreateItemResponse>
      </Body>
    </Envelope>
    

    2) I update the master event. The 'main' properties do not really change, I'm only adding custom extended properties.
       This is generated from code, that's why the unchanged properties are repeated
       Note that the ChangeKey gets updated as expected

    <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:UpdateItem ConflictResolution="AlwaysOverwrite" SendMeetingInvitationsOrCancellations="SendToNone">
       <mes:ItemChanges>
          <typ:ItemChange>
             <typ:ItemId Id="AQMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmIBNWJiADUwZTYARgAAA4Kt4mOTlXZJrZx0v5cQm8IHAISmF1hx/2pAhQBTVUBmYgoAAAMhAAAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAAA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1X"/>
             <typ:Updates>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="item:Subject"/>
                   <typ:CalendarItem>
                     <typ:Subject>Elke weekdag met custom op dinsdag 19</typ:Subject>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="item:Sensitivity"/>
                   <typ:CalendarItem>
                     <typ:Sensitivity>Normal</typ:Sensitivity>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="item:Categories"/>
                   <typ:CalendarItem>
                      <typ:Categories>
                      </typ:Categories>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="item:Body"/>
                   <typ:CalendarItem>
                     <typ:Body BodyType="Text">Test tekst</typ:Body>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="calendar:Location"/>
                   <typ:CalendarItem>
                     <typ:Location></typ:Location>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="item:ReminderIsSet"/>
                   <typ:CalendarItem>
                     <typ:ReminderIsSet>false</typ:ReminderIsSet>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="calendar:IsAllDayEvent"/>
                   <typ:CalendarItem>
                     <typ:IsAllDayEvent>false</typ:IsAllDayEvent>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="calendar:Start"/>
                   <typ:CalendarItem>
                     <typ:Start>2013-03-18T09:00:00.000+01:00</typ:Start>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="calendar:End"/>
                   <typ:CalendarItem>
                     <typ:End>2013-03-18T09:30:00.000+01:00</typ:End>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="calendar:LegacyFreeBusyStatus"/>
                   <typ:CalendarItem>
                     <typ:LegacyFreeBusyStatus>Busy</typ:LegacyFreeBusyStatus>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="TimeTellID" PropertyType="Integer"/>
                   <typ:CalendarItem>
                      <typ:ExtendedProperty>
                         <typ:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="TimeTellID" PropertyType="Integer"/>
                         <typ:Value>10002</typ:Value>
                      </typ:ExtendedProperty>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="TimeTellSyncTime" PropertyType="SystemTime"/>
                   <typ:CalendarItem>
                      <typ:ExtendedProperty>
                         <typ:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="TimeTellSyncTime" PropertyType="SystemTime"/>
                         <typ:Value>2013-03-20T09:22:32.136+01:00</typ:Value>
                      </typ:ExtendedProperty>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="TimeTellSyncID" PropertyType="String"/>
                   <typ:CalendarItem>
                      <typ:ExtendedProperty>
                         <typ:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="TimeTellSyncID" PropertyType="String"/>
                         <typ:Value>0000000082ADE26393957649AD9C74BF97109BC2070084A6175871FF6A40850053554066620A000000000021000084A6175871FF6A40850053554066620A0002259DF3CD0000</typ:Value>
                      </typ:ExtendedProperty>
                   </typ:CalendarItem>
                </typ:SetItemField>
             </typ:Updates>
          </typ:ItemChange>
       </mes:ItemChanges>
    </mes:UpdateItem>
    </soapenv:Body>
    </soapenv:Envelope>
    
    (response)
    
    <Envelope>
      <Header>
        <ServerVersionInfo MajorVersion="14" MinorVersion="0" MajorBuildNumber="722" MinorBuildNumber="0" Version="Exchange2010"/>
      </Header>
      <Body>
        <UpdateItemResponse>
          <ResponseMessages>
            <UpdateItemResponseMessage ResponseClass="Success">
              <ResponseCode>NoError</ResponseCode>
              <Items>
                <CalendarItem>
                  <ItemId Id="AQMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmIBNWJiADUwZTYARgAAA4Kt4mOTlXZJrZx0v5cQm8IHAISmF1hx/2pAhQBTVUBmYgoAAAMhAAAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAAA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1b"/>
                </CalendarItem>
              </Items>
              <ConflictResults>
                <Count>0</Count>
              </ConflictResults>
            </UpdateItemResponseMessage>
          </ResponseMessages>
        </UpdateItemResponse>
      </Body>
    </Envelope>
    

    3) I retrieve the (5) occurences

    <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="AQMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmIBNWJiADUwZTYARgAAA4Kt4mOTlXZJrZx0v5cQm8IHAISmF1hx/2pAhQBTVUBmYgoAAAMhAAAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAAA==" InstanceIndex="1"/>
          <typ:OccurrenceItemId RecurringMasterId="AQMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmIBNWJiADUwZTYARgAAA4Kt4mOTlXZJrZx0v5cQm8IHAISmF1hx/2pAhQBTVUBmYgoAAAMhAAAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAAA==" InstanceIndex="2"/>
          <typ:OccurrenceItemId RecurringMasterId="AQMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmIBNWJiADUwZTYARgAAA4Kt4mOTlXZJrZx0v5cQm8IHAISmF1hx/2pAhQBTVUBmYgoAAAMhAAAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAAA==" InstanceIndex="3"/>
          <typ:OccurrenceItemId RecurringMasterId="AQMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmIBNWJiADUwZTYARgAAA4Kt4mOTlXZJrZx0v5cQm8IHAISmF1hx/2pAhQBTVUBmYgoAAAMhAAAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAAA==" InstanceIndex="4"/>
          <typ:OccurrenceItemId RecurringMasterId="AQMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmIBNWJiADUwZTYARgAAA4Kt4mOTlXZJrZx0v5cQm8IHAISmF1hx/2pAhQBTVUBmYgoAAAMhAAAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAAA==" InstanceIndex="5"/>
       </mes:ItemIds>
    </mes:GetItem>
    </soapenv:Body>
    </soapenv:Envelope>
    
    (response)
    
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Header>
          <h:ServerVersionInfo MajorVersion="14" MinorVersion="0" MajorBuildNumber="722" MinorBuildNumber="0" Version="Exchange2010" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
       </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="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/GCqwgAAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1b"/>
                         <t:Start>2013-03-18T09:00:00Z</t:Start>
                      </t:CalendarItem>
                   </m:Items>
                </m:GetItemResponseMessage>
                <m:GetItemResponseMessage ResponseClass="Success">
                   <m:ResponseCode>NoError</m:ResponseCode>
                   <m:Items>
                      <t:CalendarItem>
                         <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/JL1XHAAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1b"/>
                         <t:Start>2013-03-19T09:00:00Z</t:Start>
                      </t:CalendarItem>
                   </m:Items>
                </m:GetItemResponseMessage>
                <m:GetItemResponseMessage ResponseClass="Success">
                   <m:ResponseCode>NoError</m:ResponseCode>
                   <m:Items>
                      <t:CalendarItem>
                         <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/MU/9uAAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1b"/>
                         <t:Start>2013-03-20T09:00:00Z</t:Start>
                      </t:CalendarItem>
                   </m:Items>
                </m:GetItemResponseMessage>
                <m:GetItemResponseMessage ResponseClass="Success">
                   <m:ResponseCode>NoError</m:ResponseCode>
                   <m:Items>
                      <t:CalendarItem>
                         <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/PeKkVAAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1b"/>
                         <t:Start>2013-03-21T09:00:00Z</t:Start>
                      </t:CalendarItem>
                   </m:Items>
                </m:GetItemResponseMessage>
                <m:GetItemResponseMessage ResponseClass="Success">
                   <m:ResponseCode>NoError</m:ResponseCode>
                   <m:Items>
                      <t:CalendarItem>
                         <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/SnVK8AAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1b"/>
                         <t:Start>2013-03-22T09:00:00Z</t:Start>
                      </t:CalendarItem>
                   </m:Items>
                </m:GetItemResponseMessage>
             </m:ResponseMessages>
          </m:GetItemResponse>
       </s:Body>
    </s:Envelope>
    

    The second occurence has
    <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/JL1XHAAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1b"/>

    4) I modify that second occurence (caption and body). Again, unchanged properties are repeated
       Note that the ChangeKey gets updated as expected

    <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:UpdateItem ConflictResolution="AlwaysOverwrite" SendMeetingInvitationsOrCancellations="SendToNone">
       <mes:ItemChanges>
          <typ:ItemChange>
             <typ:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/JL1XHAAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1b"/>
             <typ:Updates>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="item:Subject"/>
                   <typ:CalendarItem>
                     <typ:Subject>Elke weekdag MODIFIED met custom op dinsdag 19</typ:Subject>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="item:Sensitivity"/>
                   <typ:CalendarItem>
                     <typ:Sensitivity>Normal</typ:Sensitivity>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="item:Categories"/>
                   <typ:CalendarItem>
                      <typ:Categories>
                      </typ:Categories>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="item:Body"/>
                   <typ:CalendarItem>
                     <typ:Body BodyType="Text">Text MODIFIED</typ:Body>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="calendar:Location"/>
                   <typ:CalendarItem>
                     <typ:Location></typ:Location>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="item:ReminderIsSet"/>
                   <typ:CalendarItem>
                     <typ:ReminderIsSet>false</typ:ReminderIsSet>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="calendar:IsAllDayEvent"/>
                   <typ:CalendarItem>
                     <typ:IsAllDayEvent>false</typ:IsAllDayEvent>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="calendar:Start"/>
                   <typ:CalendarItem>
                     <typ:Start>2013-03-19T09:00:00.000+01:00</typ:Start>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="calendar:End"/>
                   <typ:CalendarItem>
                     <typ:End>2013-03-19T09:30:00.000+01:00</typ:End>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:FieldURI FieldURI="calendar:LegacyFreeBusyStatus"/>
                   <typ:CalendarItem>
                     <typ:LegacyFreeBusyStatus>Busy</typ:LegacyFreeBusyStatus>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="TimeTellID" PropertyType="Integer"/>
                   <typ:CalendarItem>
                      <typ:ExtendedProperty>
                         <typ:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="TimeTellID" PropertyType="Integer"/>
                         <typ:Value>10004</typ:Value>
                      </typ:ExtendedProperty>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="TimeTellSyncTime" PropertyType="SystemTime"/>
                   <typ:CalendarItem>
                      <typ:ExtendedProperty>
                         <typ:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="TimeTellSyncTime" PropertyType="SystemTime"/>
                         <typ:Value>2013-03-20T09:24:48.254+01:00</typ:Value>
                      </typ:ExtendedProperty>
                   </typ:CalendarItem>
                </typ:SetItemField>
                <typ:SetItemField>
                   <typ:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="TimeTellSyncID" PropertyType="String"/>
                   <typ:CalendarItem>
                      <typ:ExtendedProperty>
                         <typ:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="TimeTellSyncID" PropertyType="String"/>
                         <typ:Value></typ:Value>
                      </typ:ExtendedProperty>
                   </typ:CalendarItem>
                </typ:SetItemField>
             </typ:Updates>
          </typ:ItemChange>
       </mes:ItemChanges>
    </mes:UpdateItem>
    </soapenv:Body>
    </soapenv:Envelope>
    
    (response)
    
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Header>
          <h:ServerVersionInfo MajorVersion="14" MinorVersion="0" MajorBuildNumber="722" MinorBuildNumber="0" Version="Exchange2010" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
       </s:Header>
       <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <m:UpdateItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
             <m:ResponseMessages>
                <m:UpdateItemResponseMessage ResponseClass="Success">
                   <m:ResponseCode>NoError</m:ResponseCode>
                   <m:Items>
                      <t:CalendarItem>
                         <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/JL1XHAAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1t"/>
                      </t:CalendarItem>
                   </m:Items>
                   <m:ConflictResults>
                      <t:Count>0</t:Count>
                   </m:ConflictResults>
                </m:UpdateItemResponseMessage>
             </m:ResponseMessages>
          </m:UpdateItemResponse>
       </s:Body>
    </s:Envelope>
    

    ==> NOW THINGS ARE OFF <==

    A) Outlook shows me the 5 occurences with their *initial* captions (sorry no pic. formum still does "Body text cannot contain images or links until we are able to verify your account.")

    B) If I double click (in Outlook) on the second occurrence, it *now* shows me the modified caption in the question 'Do you want to open the series or the occurrence'

    C) FindItems confirms that the second occurrence is not an exception:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Header>
          <h:ServerVersionInfo MajorVersion="14" MinorVersion="0" MajorBuildNumber="722" MinorBuildNumber="0" Version="Exchange2010" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
       </s:Header>
       <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <m:FindItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
             <m:ResponseMessages>
                <m:FindItemResponseMessage ResponseClass="Success">
                   <m:ResponseCode>NoError</m:ResponseCode>
                   <m:RootFolder TotalItemsInView="5" IncludesLastItemInRange="true">
                      <t:Items>
                         <t:CalendarItem>
                            <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/GCqwgAAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1t"/>
                            <t:Subject>Elke weekdag met custom op dinsdag 19</t:Subject>
                            <t:HasAttachments>false</t:HasAttachments>
                            <t:Start>2013-03-18T08:00:00Z</t:Start>
                            <t:End>2013-03-18T08:30:00Z</t:End>
                            <t:LegacyFreeBusyStatus>Busy</t:LegacyFreeBusyStatus>
                            <t:Location/>
                            <t:CalendarItemType>Occurrence</t:CalendarItemType>
                            <t:Organizer>
                               <t:Mailbox>
                                  <t:Name>developer</t:Name>
                               </t:Mailbox>
                            </t:Organizer>
                         </t:CalendarItem>
                         <t:CalendarItem>
                            <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/JL1XHAAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1t"/>
                            <t:Subject>Elke weekdag met custom op dinsdag 19</t:Subject>
                            <t:HasAttachments>false</t:HasAttachments>
                            <t:Start>2013-03-19T08:00:00Z</t:Start>
                            <t:End>2013-03-19T08:30:00Z</t:End>
                            <t:LegacyFreeBusyStatus>Busy</t:LegacyFreeBusyStatus>
                            <t:Location/>
                            <t:CalendarItemType>Occurrence</t:CalendarItemType>
                            <t:Organizer>
                               <t:Mailbox>
                                  <t:Name>developer</t:Name>
                               </t:Mailbox>
                            </t:Organizer>
                         </t:CalendarItem>
                         <t:CalendarItem>
                            <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/MU/9uAAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1t"/>
                            <t:Subject>Elke weekdag met custom op dinsdag 19</t:Subject>
                            <t:HasAttachments>false</t:HasAttachments>
                            <t:Start>2013-03-20T08:00:00Z</t:Start>
                            <t:End>2013-03-20T08:30:00Z</t:End>
                            <t:LegacyFreeBusyStatus>Busy</t:LegacyFreeBusyStatus>
                            <t:Location/>
                            <t:CalendarItemType>Occurrence</t:CalendarItemType>
                            <t:Organizer>
                               <t:Mailbox>
                                  <t:Name>developer</t:Name>
                               </t:Mailbox>
                            </t:Organizer>
                         </t:CalendarItem>
                         <t:CalendarItem>
                            <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/PeKkVAAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1t"/>
                            <t:Subject>Elke weekdag met custom op dinsdag 19</t:Subject>
                            <t:HasAttachments>false</t:HasAttachments>
                            <t:Start>2013-03-21T08:00:00Z</t:Start>
                            <t:End>2013-03-21T08:30:00Z</t:End>
                            <t:LegacyFreeBusyStatus>Busy</t:LegacyFreeBusyStatus>
                            <t:Location/>
                            <t:CalendarItemType>Occurrence</t:CalendarItemType>
                            <t:Organizer>
                               <t:Mailbox>
                                  <t:Name>developer</t:Name>
                               </t:Mailbox>
                            </t:Organizer>
                         </t:CalendarItem>
                         <t:CalendarItem>
                            <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/SnVK8AAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1t"/>
                            <t:Subject>Elke weekdag met custom op dinsdag 19</t:Subject>
                            <t:HasAttachments>false</t:HasAttachments>
                            <t:Start>2013-03-22T08:00:00Z</t:Start>
                            <t:End>2013-03-22T08:30:00Z</t:End>
                            <t:LegacyFreeBusyStatus>Busy</t:LegacyFreeBusyStatus>
                            <t:Location/>
                            <t:CalendarItemType>Occurrence</t:CalendarItemType>
                            <t:Organizer>
                               <t:Mailbox>
                                  <t:Name>developer</t:Name>
                               </t:Mailbox>
                            </t:Organizer>
                         </t:CalendarItem>
                      </t:Items>
                   </m:RootFolder>
                </m:FindItemResponseMessage>
             </m:ResponseMessages>
          </m:FindItemResponse>
       </s:Body>
    </s:Envelope>
    

    D) GetItem for the recurring master confirms that there are no exceptions:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Header>
          <h:ServerVersionInfo MajorVersion="14" MinorVersion="0" MajorBuildNumber="722" MinorBuildNumber="0" Version="Exchange2010" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
       </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="AQMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmIBNWJiADUwZTYARgAAA4Kt4mOTlXZJrZx0v5cQm8IHAISmF1hx/2pAhQBTVUBmYgoAAAMhAAAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAAA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1t"/>
                         <t:Subject>Elke weekdag met custom op dinsdag 19</t:Subject>
                         <t:Body BodyType="Text">Test tekst</t:Body>
                         <t:ReminderIsSet>false</t:ReminderIsSet>
                         <t:ReminderMinutesBeforeStart>15</t:ReminderMinutesBeforeStart>
                         <t:IsAllDayEvent>false</t:IsAllDayEvent>
                         <t:LegacyFreeBusyStatus>Busy</t:LegacyFreeBusyStatus>
                         <t:Location/>
                         <t:Recurrence>
                            <t:WeeklyRecurrence>
                               <t:Interval>1</t:Interval>
                               <t:DaysOfWeek>Monday Tuesday Wednesday Thursday Friday</t:DaysOfWeek>
                            </t:WeeklyRecurrence>
                            <t:NumberedRecurrence>
                               <t:StartDate>2013-03-18Z</t:StartDate>
                               <t:NumberOfOccurrences>5</t:NumberOfOccurrences>
                            </t:NumberedRecurrence>
                         </t:Recurrence>
                         <t:FirstOccurrence>
                            <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/GCqwgAAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1t"/>
                            <t:Start>2013-03-18T08:00:00Z</t:Start>
                            <t:End>2013-03-18T08:30:00Z</t:End>
                            <t:OriginalStart>2013-03-18T08:00:00Z</t:OriginalStart>
                         </t:FirstOccurrence>
                         <t:LastOccurrence>
                            <t:ItemId Id="AAMkADkyZTQxNjUzLTcwZTQtNGRlNS04M2VmLWMxYmJiNWJiNTBlNgFRAAgIz/SnVK8AAEYAAAAAgq3iY5OVdkmtnHS/lxCbwgcAhKYXWHH/akCFAFNVQGZiCgAAAAAAIQAAhKYXWHH/akCFAFNVQGZiCgACJZ3z0gAAEA==" ChangeKey="DwAAABYAAACEphdYcf9qQIUAU1VAZmIKAAIlni1t"/>
                            <t:Start>2013-03-22T08:00:00Z</t:Start>
                            <t:End>2013-03-22T08:30:00Z</t:End>
                            <t:OriginalStart>2013-03-22T08:00:00Z</t:OriginalStart>
                         </t:LastOccurrence>
                      </t:CalendarItem>
                   </m:Items>
                </m:GetItemResponseMessage>
             </m:ResponseMessages>
          </m:GetItemResponse>
       </s:Body>
    </s:Envelope>
    

    So, this does not seem to work: "Modifying any property on an occurrence item makes it an exception item." (http://msdn.microsoft.com/en-us/library/exchange/dd633684%28v=exchg.80%29.aspx)

    Note that I use AlwaysOverwrite "to always overwrite server-side property changes with local property changes" (http://msdn.microsoft.com/en-us/library/exchange/dd633641%28v=exchg.80%29.aspx)

    Additional testing shows:
    - If I skip the first master event modification (step 2), the issue goes away

    - If I change another master event property (e.g. location) in step 2, the issue remains
    - If I leave out all the unchanged properties in step 2 (only the added custom properties remain), the issue GOES AWAY!
      --> Weirdest result ?!
    - I made sure that I stopped/started Outlook around the modification, and my FindItem goes through SOAPUI, so it's not local caching that I see (I even used Outlook from another machine).
    - Doing step 4 a second time fixes the issue, the caption is now properly updated.
    - If I do a GetItem with AllProperties I see for the failed update:
          <t:ItemClass>IPM.Appointment.Occurrence</t:ItemClass>
          <t:CalendarItemType>Occurrence</t:CalendarItemType>
      and after the second attempt:
          <t:ItemClass>IPM.OLE.CLASS.{00061055-0000-0000-C000-000000000046}</t:ItemClass>
          <t:CalendarItemType>Exception</t:CalendarItemType>
      This is the same as when I change an occurrence in Outlook:
          <t:ItemClass>IPM.OLE.CLASS.{00061055-0000-0000-C000-000000000046}</t:ItemClass>
          <t:CalendarItemType>Exception</t:CalendarItemType>

    My suspicion was it had something to do with the change keys, but as far as I see I handled those correctly (including the warning in the Sterling book ("You cannot use the change key of a recurring master as the change key for an occurrence or exception in that series. You can, however, freely use the change key from any occurrence or exception in a series for any other occurrence or exception within that series")

    What am I doing wrong, or maybe, what is Exchange doing wrong?

    Wednesday, March 20, 2013 10:44 AM