3.1.4.7.2.2 Creating the Meeting Object

Before creating the Meeting object, the client searches for a Calendar object that matches the Meeting Request object, as specified in section 3.1.5.1, and does not create a new Meeting object if a match is found. Otherwise, the client creates a new Meeting object and copies all the properties specified in section 2.2.1 from the Meeting Request object onto it and adds all the required properties specified in section 2.2.4. The client might change the value of the PidTagMessageClass property ([MS-OXCMSG] section 2.2.1.3) on the new Meeting object to the value of the PidLidAppointmentMessageClass property (section 2.2.6.6) from the Meeting Request object. In addition, the client sets the following properties on the Meeting object:

  • The value of the PidLidResponseStatus property (section 2.2.1.11) to "respNotResponded" (0x00000005).

  • The value of the PidLidBusyStatus property (section 2.2.1.2) to "olTentative" (0x00000001), unless the value of the PidLidIntendedBusyStatus property (section 2.2.6.4) is "olFree" (0x00000000), in which case it MUST be set to "olFree".

  • If the value of the PidLidReminderDelta property ([MS-OXORMDR] section 2.2.1.3) in the Meeting Request object is set to 0x5AE980E1, change the value of the newly created Meeting object's PidLidReminderDelta property to its default value (as defined by the client), and then recalculate the value of the PidLidReminderSignalTime property ([MS-OXORMDR] section 2.2.1.2), as specified in [MS-OXORMDR].

  • If the value of the PidLidReminderSet property ([MS-OXORMDR] section 2.2.1.1) is FALSE and the value of the PidLidAppointmentSubType property (section 2.2.1.9) is FALSE (that is, the meeting is not an all-day event), then the client SHOULD change the value of the PidLidReminderSet property to TRUE, set the PidLidReminderDelta property to its default value (as defined by the client), and recalculate the value of the PidLidReminderSignalTime property.<43>

  • The client SHOULD copy the value of the PidLidAppointmentAuxiliaryFlags property (section 2.2.1.3) from the Meeting Request object to the new Meeting object.

  • The client SHOULD remove the downlevel text, as specified in section 2.2.6.12, from the body.

  • The client SHOULD<44> set the value of the PidLidAppointmentReplyName property (section 2.2.4.5) to a null string.

  • The client SHOULD<45> copy the RecipientRow structures, as specified in [MS-OXCDATA] section 2.8.3, in the PidLidAppointmentUnsendableRecipients property (section 2.2.1.25) from the Meeting Request object to the RecipientRow structures of the Meeting object. For each RecipientRow structure copied, if the recipOriginal bit is set in the PidTagRecipientFlags property (section 2.2.4.10.1) of the RecipientRow structure, then the client MUST set the recipSendable bit in the PidTagRecipientFlags property.

  • The client MUST NOT copy the PidLidAppointmentUnsendableRecipients property from the Meeting Request object to the Meeting object.

  • If the PidLidAppointmentUnsendableRecipients property is not set on the Meeting Request object, or if the client did not copy the RecipientRow structures in the PidLidAppointmentUnsendableRecipients property of the Meeting Request object to the Meeting object, then the client creates a RecipientRow structure for each recipient (2) listed in the PidLidNonSendableTo (section 2.2.1.19 ), PidLidNonSendableCc (section 2.2.1.20), and PidLidNonSendableBcc (section 2.2.1.21) properties. The client sets the recipient type (as specified in section 2.2.4.10.7) for each RecipientRow structure added as specified in section 2.2.1.19, 2.2.1.20, and 2.2.1.21.

  • The client sets the PidLidNonSendableTo, PidLidNonSendableCc, and PidLidNonSendableBcc properties to a NULL string on the Meeting object.

If the Meeting Request object represents a recurring series and the Meeting object is newly created, the client searches the folder for orphan instances of the meeting by matching the PidLidCleanGlobalObjectId property (section 2.2.1.28) with that of the new Meeting object. The client then converts any orphan instances that are found into exceptions and deletes the orphan instances. For each converted exception, the client SHOULD<46> copy the value of the PidLidBusyStatus property from the orphan instance to the BusyStatus field of the associated ExceptionInfo structure and set the ARO_BUSYSTATUS flag as specified in section 2.2.1.44.2.

Finally, after creating the Meeting object, the client:

  • SHOULD set the value of its PidTagProcessed property (section 2.2.5.7) to TRUE, unless it is in a public folder, in which case this property is not set.

  • MAY<47> set the PidLidServerProcessed property (section 2.2.5.4) on the Meeting Request object to TRUE. If setting the PidLidServerProcessed property, the client either sets both the cpsCreatedOnPrincipal and cpsUpdatedCalItem bits of the PidLidServerProcessingActions property (section 2.2.5.5) on the Meeting Request object or leaves the PidLidServerProcessingActions property unset.