3.1.5.6 Receiving and Accepting Meeting Requests

This section specifies how the client retrieves items from the Inbox folder by using the Sync command (section 2.2.1.21), responds to a meeting request item by using the MeetingResponse command (section 2.2.1.11), and synchronizes the Calendar folder by using the Sync command so that the new Calendar object is added to the client's calendar.

A meeting request is returned by the server in response to a synchronization of the Inbox folder. A meeting request is an email message that has an embedded calendar item. The message contains an email:MessageClass element (as specified in [MS-ASEMAIL] section 2.2.2.49) that has a value of "IPM.Schedule.Meeting.Request", and its airsync:ApplicationData element (section 2.2.3.11) contains an email:MeetingRequest element (as specified in [MS-ASEMAIL] section 2.2.2.48). If the meeting request is a delegated meeting request, the server SHOULD<24> return a substitute meeting invitation email message instead of a meeting request, as specified in section 3.1.5.6.1. Servers MAY<25> return the actual meeting request with the email2:MeetingMessageType element set to 6, as specified in [MS-ASEMAIL] section 2.2.2.47. In this case, clients MUST NOT attempt to respond to the meeting request with the MeetingResponse command.

When the client displays the meeting request message, if the value of the email2:MeetingMessageType element is 1 or 2, the client SHOULD offer the options of accepting, declining, or tentatively accepting the meeting. If one of these actions is selected, the client sends a MeetingResponse command to the server. For other values of the email2:MeetingMessageType element, the client SHOULD NOT send a MeetingResponse command to the server.

If the response to the meeting is accepted or is tentatively accepted, the server will add or update the corresponding calendar item and return its server ID in the meetingresponse:CalendarId element (section 2.2.3.18) of the response. If the response to the meeting is declined, the response will not contain a meetingresponse:CalendarId element because the server will delete the corresponding calendar item. If the client had created a tentative meeting calendar item, the client updates that item with the returned server ID (if accepted or tentative). The client MUST also change the busy status on the client calendar item from tentative to busy if the meeting request was accepted. Note that, if the client synchronizes the Calendar folder after responding to a meeting request, the calendar item in question will be in conflict if the client also sends the changed item change for it back to the server. This conflict is resolved according to the conflict resolution rules that are specified by the client in the Sync command request.

If the meeting request was accepted, the Calendar folder MUST be synchronized for the client to obtain the new calendar item. The new calendar item for the accepted meeting is added here and MUST be added to the client's calendar.

The following table lists the command sequence for receiving and accepting meeting requests. The asterisk (*) in the Order column means that a step can be repeated multiple times.

Order

Client action

Server action

1

The client sends the Sync command request for the Inbox collection with the value of the airsync:SyncKey element (section 2.2.3.181.4) set to zero (0).

The server responds with the airsync:SyncKey for the collection, to be used in successive synchronizations.

2*

The client sends a Sync command request, specifying the airsync:GetChanges element (section 2.2.3.84) and the airsync:SyncKey element for the Inbox folder. The command SHOULD include the airsync:WindowSize element (section 2.2.3.199), the recommended value for which is 100.

The server responds with airsync:Add elements (section 2.2.3.7.2) for items in the Inbox collection, including a meeting request item. If the response contains the airsync:MoreAvailable element (section 2.2.3.116), this step is repeated.

3

The user chooses to accept, decline, or tentatively accept a meeting request that is displayed in the client UI.

4

The client sends a MeetingResponse command request (section 2.2.1.11) to the server, which specifies that the meeting was accepted, declined, or tentatively accepted, and provides the server IDs of the meeting request message and its parent folder.

The server sends a response that contains the MeetingResponse command request status along with the ID of the calendar item that corresponds to this meeting request if the meeting was not declined.

5

If a response was requested by the organizer, the client SHOULD use a SendMail command (section 2.2.1.17) to send an appropriately formatted meeting response. This client action applies only to protocol versions 2.5, 12.0, 12.1, 14.0, and 14.1.

If the message was sent successfully, the server returns an empty response. Otherwise, the server responds with a Status element (section 2.2.3.177.9) that indicates the type of failure.

6

If the meeting was not declined, the client sends a Sync command for the calendar collection, specifying the GetChanges element.

The server responds with any changes to the Calendar folder caused by the last synchronization and the new calendar item for the accepted meeting.