3.1.4.8.5.2 Recording the Response

Once a client determines that a response needs to be recorded on the Meeting object, it finds the Calendar object, as specified in section 3.1.5.1, and checks whether the Meeting Response object represents an exception to a recurring series. If it does, and the recurring series is found in the calendar but there is no Exception Attachment object for this instance, the client verifies the following:

  • If the instance was previously deleted from the recurring series on the organizer's Meeting object, the client MUST NOT re-create the Exception Attachment object on the organizer's Meeting object just to record the response. Instead, the response is discarded.

  • If the instance exists on the organizer's Meeting object but is not an exception, the Exception Attachment object is created on the organizer's Meeting object so that the response can be recorded.

If the Meeting Response object is out-of-date, as specified in section 3.1.5.2, the client SHOULD<73> set the value of the PidLidPromptSendUpdate property (section 2.2.7.8) on the Meeting Response object to TRUE and SHOULD<74> verify that a RecipientRow structure, as specified in [MS-OXCDATA] section 2.8.3, exists for the attendee, but the response MUST NOT be recorded.

To verify that a RecipientRow structure exists for the attendee, the client needs to find the RecipientRow structure that corresponds to the attendee in the organizer's Meeting object. If the client cannot find a RecipientRow structure for the attendee, it SHOULD add a RecipientRow structure for the attendee as an optional attendee unless the Meeting Response object is out-of-date, in which case the attendee SHOULD NOT be added as an optional attendee. If a RecipientRow structure for the attendee already exists, and the value of the PidTagRecipientTrackStatusTime property (section 2.2.4.10.3) from the RecipientRow structure is a time that is later than the value of the PidLidAttendeeCriticalChange property (section 2.2.5.2) on the Meeting Response object, the response from the Meeting Response object is not recorded.<75>

To record the response, the client sets the following on the RecipientRow structure:

  • The value of the PidTagRecipientTrackStatus property (section 2.2.4.10.2) to the appropriate value from the response table specified in section 2.2.1.11, according to the PidTagMessageClass property ([MS-OXCMSG] section 2.2.1.3) on the Meeting Response object.

    PidTagMessageClass value

    PidTagRecipientTrackStatus value

    "IPM.Schedule.Meeting.Resp.Pos"

    respAccepted (0x00000003)

    "IPM.Schedule.Meeting.Resp.Tent"

    respTentative (0x00000002)

    "IPM.Schedule.Meeting.Resp.Neg"

    respDeclined (0x00000004)

  • The value of the PidTagRecipientTrackStatusTime property (section 2.2.4.10.3) to the value of the PidLidAttendeeCriticalChange property from the Meeting Response object.<76>

  • The recipExceptionalResponse bit in the PidTagRecipientFlags property (section 2.2.4.10.1), if the Meeting Response object represents an exception to a recurring series.

Regardless of whether the Meeting Response object proposes a new date or time, additional properties might need to be set. For more details about proposals for a new date or time, see section 3.1.4.8.5.3.

After recording the response, the client SHOULD<77> delete the Meeting Response object if the value of the PidLidIsSilent property (section 2.2.7.7) is set to TRUE and the piAutoDeleteReceipts value in the calendar options dictionary, as specified in [MS-OXOCFG] section 2.2.5.1.1, is set to TRUE. A client that does not support the calendar options dictionary might have its own defined mechanism for allowing the user to decide whether to automatically delete Meeting Response objects on which the PidLidIsSilent property is set to TRUE.