Alexa.Calendar Interface 3

Implement the Alexa.Calendar interface in your Alexa skill so that users can find meetings on an organizational calendar. For details, see Build Skills for Conferencing Devices.

For the list of languages that the Calendar interface supports, see List of Alexa Interfaces and Supported Languages. For the definitions of the message properties, see Alexa Interface Message and Property Reference.

Reportable Properties

This interface does not define any reportable properties.

Directives

The Alexa.Calendar interface defines the following directives.

GetCurrentMeeting

Request to find a meeting on an organizational calendar. This should resolve to a single meeting or Alexa will treat it as if there were no results and ask for a meeting identifier.

Typically your skill receives a directive to get the current meeting, and then a directive to join a scheduled meeting with the meeting information that was provided.

The following example shows a user utterance:

User: Alexa, start the meeting

Alexa sends Calendar.GetCurrentMeeting directive
Skill sends Response event with meeting information
Alexa: Do you want to join meeting organized by meeting organizer?
User: Yes

Alexa sends MeetingClientController.JoinScheduledMeeting directive

GetCurrentMeeting directive example

The following example illustrates a GetCurrentMeeting directive that Alexa sends to your skill.

{
    "directive": {
        "endpoint": {
            "endpointId": "applianceId",
            "cookie": {
            },
            "scope": {
                "type": "BearerTokenWithPartition",
                "token": "access-token-from-skill",
                "partition": "room101"
            }
        },
        "header": {
            "namespace": "Alexa.Calendar",
            "name": "GetCurrentMeeting",
            "messageId": "Unique version 4 UUID",
            "correlationToken": "Opaque correlation token",
            "payloadVersion": "3"
        },
        "payload": {}
    }
}

GetCurrentMeeting request payload

This interface doesn't define any payload parameters.

GetCurrentMeeting response

If the GetCurrentMeeting directive was successfully handled, you should respond with an Response event that contains meeting information in the payload. For this capability, you must reply:

  • Synchronously, which means you send a Response to Alexa from the Lambda function.

When you send a Response, you should include the state of the interface properties in the context of the message.

The following example shows a GetCurrentMeeting response.

Copied to clipboard.

{
    "event": {
        "header": {
            "namespace": "Alexa.Calendar",
            "name": "Response",
            "messageId": "Unique identifier, preferably a version 4 UUID",
            "correlationToken": "Opaque correlation token that matches the request",
            "payloadVersion": "3"
        },
        "payload": {
            "organizerName": "John Smith",
            "calendarEventId": "1234567890"
        }

    }
}

Response payload

Field Description Type Required
organizerName The name of the meeting organizer. String Yes
calendarEventId A meeting identifier that resolves in the conferencing system. String Yes

GetCurrentMeeting directive error handling

If you can't handle a GetCurrentMeeting directive successfully, respond with an Alexa.ErrorResponse event.