3.1.5.4 Incrementing the Sequence Number
When sending a Meeting Update object or Meeting Cancellation object, the client increments the sequence number except when sending a Meeting Cancellation object for a deleted exception after sending a Meeting Update object for a recurring series (see section 3.1.4.7.5).<90>
If not incrementing the sequence number, the client sets the value of the PidLidAppointmentSequence property (section 2.2.1.1) on the Meeting Update object or Meeting Cancellation object equal to the value of the PidLidAppointmentLastSequence property (section 2.2.4.2) of the Meeting object.
When incrementing the sequence number, the client sets the sequence number of the Meeting Update object or Meeting Cancellation object to a value greater than the sequence number that was set on any previous Meeting Request object, Meeting Cancellation object, or Meeting Update object. The client selects the greater of PidLidAppointmentLastSequence and PidLidAppointmentSequence properties from the Meeting object, and increments that value by 1, which results in the new sequence number. The client sets the new sequence number as the value of both the PidLidAppointmentLastSequence property on the Meeting object and the PidLidAppointmentSequence property on the Meeting Request object or the Meeting Cancellation object.
If the Meeting Update object or Meeting Cancellation object is being sent to all attendees of the meeting, the client MUST set the new sequence number as the value of the PidLidAppointmentSequence property of the Meeting object and MUST set the PidLidAppointmentSequenceTime property (section 2.2.4.1) as the value of the PidLidOwnerCriticalChange property (section 2.2.1.34).
If the Meeting Update object or Meeting Cancellation object is not being sent to all attendees of the meeting, the client SHOULD NOT modify the PidLidAppointmentSequence property of the Meeting object but SHOULD verify that the PidLidAppointmentSequenceTime property exists on the Meeting object. In the case that the PidLidAppointmentSequenceTime property does not exist on the Meeting object, the client sets it to the original value of the PidLidOwnerCriticalChange property from the Meeting object (the value before the Meeting Update object or Meeting Cancellation object was created).