Reminders REST API Reference


Use the Alexa Reminders REST API to create and manage reminders on managed devices in your property. You can configure the text in the reminder, and then Alexa speaks the text from the device at the specific time you schedule. Use reminders to build voice experiences that help users remember daily tasks, events, schedules, or any other items they want to remember at a later time.

For a given endpoint, you can schedule one-time reminders including absolute reminders, such as a reminder at 3 PM, and relative reminders, such as a reminder in 10 minutes. You can also schedule recurring reminders, for example, a reminder every weekday at 7 AM.

API endpoint

Based on the country of your organization, set the Host parameter in the request header to one of the following API endpoints.

Country Endpoint

CA, US

https://api.amazonalexa.com

DE, ES, FR, IT, UK

https://api.eu.amazonalexa.com

Authentication

Each API request must have an authorization header whose value is the access token retrieved from Login with Amazon (LWA). For details, see Manage API Access.

Operations

The Reminders API includes the following operations.

Operation HTTP method and URI

Create reminder

POST /v2/alerts/reminders

Delete reminder

DELETE /v2/alerts/reminders/{reminderId}

Get reminder

GET /v2/alerts/reminders/{reminderId}

List reminders on endpoint

GET /v2/alerts/reminders?recipient.type={recipientType}}&recipient.id={recipientId}&owner={owner}

Update reminder

PUT /v2/alerts/reminders/{reminderId}

Create reminder

Create a new reminder on the specified Alexa-enabled endpoint. You can create up to 250 reminders per endpoint.

This operation is available in the following countries.

Healthcare Hospitality Senior Living Core

US

US, UK, FR, CA, IT, DE, ES

US, UK, FR, CA, IT, DE, ES

US

Request

To create a reminder, you make a POST request to the /v2/alerts/reminders resource.

Request path and header example

Copied to clipboard.

POST /v2/alerts/reminders HTTP/1.1
Host: api.amazonalexa.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer {access token}

Request path and header parameters

Parameter Located in Description Type Required

access token

Header

Access token for the customer.
Set to an LWA token.

String

Yes

Request body examples

The following example creates a single reminder that triggers at 4:30 PM on June 21, 2024.

The following example creates a reminder that triggers 30 minutes after the specified request time of 2024-06-21T22:30:00 UTC. For a device with the time zone America/Los_Angeles, this reminder is scheduled for June 21, 2024 at 4 PM. For a device with the time zone America/Denver, this reminder is scheduled for June 21, 2024 at 5 PM.

The following example creates a reminder that triggers at 4:30 PM on the fifth day of each month, starting in June 2024 and ending in September 2024.

Request body properties

Property Description Type Required

recipients

List of recipients to which to apply this reminder. You can provide one recipient only.

Array of objects

Yes

recipients[].type

Type of recipient.
Valid values: ENDPOINT.

String

Yes

recipients[].id

Endpoint on which to set the reminder.
Formatted as an Amazon Common Identifier (ACI), amzn1.alexa.endpoint.{id}.

String

Yes

reminder

Describes the reminder.

Object

Yes

reminder.requestTime

Specifies the date and time to use when scheduling a relative reminder, specified in coordinated universal time (UTC). The API applies the offsetInSeconds to the requestTime to calculate the trigger time for a relative reminder. When not provided, defaults to the current date and time.
Specify in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ.

Provide the requestTime in UTC time, not in the local time zone of the device. To calculate the reminder time, the API uses the time zone of the device. For example, assume the requestTime is 2024-06-21T22:30:00 and the offsetInSeconds is 1800 (30 minutes). For a device with the time zone America/Los_Angeles, this reminder is scheduled for June 21, 2024 at 4 PM. For a device with the time zone America/Denver, this reminder is scheduled for June 21, 2024 at 5 PM.

String

No

reminder.trigger

Contains information about the trigger for a reminder.

Trigger object

Yes

reminder.alertInfo

Contains the spoken content in the reminder.

AlertInfo object

Yes

Response

A successful response returns HTTP 202 Accepted, along with the new reminder ID. On error, the response returns the appropriate HTTP status code and includes a response body with the failed endpoint, the error code, and a human readable message.

Response body examples

The following example shows a successful creation of the reminder on the specified endpoint.

The following example shows a creation of the reminder on the specified endpoint failed.

Response body properties

Property Description Type

type

Type of response.
Valid values: ALL_SUCCESS, ALL_FAILED.

String

message

Human-readable description of the result. The message appears only for debugging and logging purposes. You must not share it with the customer. No business logic should depend on the content of the message.

String

successResults[]

List of endpoints where the reminder was successfully created.

Array of objects

successResults[].id

(Optional) ID of the endpoint recipient for the reminder.
Formatted as an Amazon Common Identifier (ACI), amzn1.alexa.endpoint.{id}.

String

successResults[].reminderId

(Optional) ID of the new reminder.

String

errors[]

List of endpoints where the reminder creation failed.

Array of objects

errors[].id

(Optional) ID of the endpoint recipient for the reminder.
Formatted as an Amazon Common Identifier (ACI), amzn1.alexa.endpoint.{id}.

String

errors[].status

(Optional) Error status code for the failed reminder.

String

errors[].errorCode

(Optional) Short error code string.

String

errors[].errorDescription

(Optional) Detailed description of the error.

String

HTTP status codes

Status Description

202 Accepted

Successfully created the reminder.

400 Bad Request

Indicates that one or more properties in the request body aren't valid.

The response might include one of the following errors types and messages:

  • CONCURRENT_MODIFICATION – A previous update to the certificate authority is still ongoing.
  • INVALID_INPUT_TIME_FORMAT – Incorrect request time and date format.
  • INVALID_TRIGGER – Type and field don't match => SCHEDULED_ABSOLUTE has offsetInSeconds or SCHEDULED_RELATIVE has scheduledTime.
  • TRIGGER_SCHEDULED_TIME_IN_PAST – Incorrect scheduled time is in the past.
  • INVALID_TRIGGER_SCHEDULED_TIME_FORMAT – Specified date format not supported.
  • INVALID_TRIGGER_TIME_ZONE – Time zone isn't valid.
  • INVALID_TRIGGER_RECURRENCE – Recurrence pattern isn't valid.
  • UNSUPPORTED_TRIGGER_RECURRENCE – Recurrence pattern is valid but not supported.
  • UNSUPPORTED_TRIGGER_RECURRENCE_INTERVAL – Recurrence pattern is valid but minimum interval between two occurrences isn't supported.
  • INVALID_ALERT_INFO – Alert info is missing locale or has an incorrect locale format. Text string is too long.
  • INVALID_TRIGGER_OFFSET – Relative time offset isn't valid.
  • UNSUPPORTED_SCHEDULED_TIME_FORMAT – Unsupported trigger scheduled time format. Supported formats are YYYY-MM-DDTHH:mm:ss.SSS and YYYY-MM-DDTHH:mm:ss/YYYY-MM-DDTHH:mm.
  • INVALID_INPUT – Invalid input error. Check the arguments and try again.
  • INVALID_RECIPIENT_ID – Recipient ID not valid
  • INVALID_RECIPIENT_TYPE – Recipient type isn't supported
  • DEVICE_NOT_REACHABLE – Device not reachable or offline.
    A directive to create the reminder is sent upon invocation if the reminder is set to go off within seven days.
  • DEVICE_NOT_SUPPORTED – Reminders aren't supported on this device.
  • TOO_MANY_RECIPIENTS – The number of recipients has exceeded the allowable threshold of 1. The Reminders API doesn't support bulk reminders at this time.

401 Unauthorized

Request didn't include the authorization token, or the included token expired or isn't valid. Or, you don't have access to the resource.

403 Forbidden

Indicates that the authorization token is valid, but the requested operation isn't allowed.

The response might include one of the following errors types and messages:

  • MAX_REMINDERS_EXCEEDED – Maxium limit of reminders reached on this device.

404 Not Found

Requested resource not found.

409 Conflict

Indicates a request conflict with the current state of the target resource.

The response might include one of the following errors types and messages:

  • MISSING_TIME_ZONE – Specified endpoint has no time zone set.

429 Too Many Requests

Permitted rate limit, specified as the number of requests per unit of time, exceeded. You can retry the request by using exponential back-off.

500 Server Error

Error occurred on the server. You can retry the request by using exponential back-off.

503 Service Unavailable

Server is down for maintenance, overloaded, or otherwise unavailable to handle the incoming request.

Delete reminder

Delete the specified reminder by reminder ID.

This operation is available in the following countries.

Healthcare Hospitality Senior Living Core

US

US, UK, FR, CA, IT, DE, ES

US, UK, FR, CA, IT, DE, ES

US

Request

To delete a reminder, you make a DELETE request to the /v2/alerts/reminders resource.

Request path and header example

Copied to clipboard.

DELETE /v2/alerts/reminders/{reminderId}
Host: api.amazonalexa.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer {access token}

Request path and header parameters

Parameter Located in Description Type Required

reminderId

Path

ID of the reminder to delete.

String

Yes

access_token

Header

LWA access token. For details, see Authentication.

String

Yes

Request body example

The request has no body.

Request body properties

The request has no body.

Response

A successful response returns HTTP 204 No Content. On error, the response returns the appropriate HTTP status code and includes a response body with an Error object.

Response body example

The response has no body.

Response body properties

The response has no body.

HTTP status codes

Status Description

204 No Content

Reminder deleted successfully.

400 Bad Request

Indicates that one or more properties in the request body aren't valid.

The response might include one of the following errors types and messages:

  • INVALID_REMINDER_ID – The provided reminder ID isn't valid.
  • DEVICE_NOT_REACHABLE – Device not reachable or offline.

401 Unauthorized

Request didn't include the authorization token, or the included token expired or isn't valid. Or, you don't have access to the resource.

403 Forbidden

Indicates that the authorization token is valid, but the requested operation isn't allowed.

404 Not Found

Requested resource not found.

429 Too Many Requests

Permitted rate limit, specified as the number of requests per unit of time, exceeded. You can retry the request by using exponential back-off.

500 Server Error

Error occurred on the server. You can retry the request by using exponential back-off.

503 Service Unavailable

Server is down for maintenance, overloaded, or otherwise unavailable to handle the incoming request.

Get reminder

Get the specified reminder by reminder ID.

This operation is available in the following countries.

Healthcare Hospitality Senior Living Core

US

US, UK, FR, CA, IT, DE, ES

US, UK, FR, CA, IT, DE, ES

US

Request

To get a reminder, you make a GET request to the ` /v2/alerts/reminders` resource.

Request path and header example

Copied to clipboard.

GET /v2/alerts/reminders/{reminderId}
Host: api.amazonalexa.com
Content-Type: application/json
Authorization: Bearer {access token}
Accept: application/json

Request path and header parameters

Parameter Located in Description Type Required

reminderId

Path

ID of the reminder to retrieve.

String

Yes

access_token

Header

LWA access token. For details, see Authentication.

String

Yes

Request body example

The request has no body.

Request body properties

The request has no body.

Response

A successful response returns HTTP 200 OK, along with the details of the specified reminder. On error, the response returns the appropriate HTTP status code and includes a response body with an Error object.

Response body examples

The following response body examples show output for absolute, recurring, and relative reminders.

Response body properties

Property Description Type

recipient

Recipient for this reminder.

Object

recipient.type

Type of recipient.
Valid values: ENDPOINT.

String

recipient.id

Endpoint on which to apply the reminder.
Formatted as an Amazon Common Identifier (ACI), amzn1.alexa.endpoint.{id}.

String

reminder

Contents of the reminder.

Object

reminder.reminderId

Unique ID of this reminder.

String

reminder.createdTime

Creation time of the reminder.
Defined in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ.

String

reminder.updatedTime

Time of last update to the reminder.
Defined in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ.

String

reminder.status

Status of the reminder.
Valid values:

  • ON – This active reminder will play at the scheduled time.
  • COMPLETED – This reminder triggered. Alexa deletes completed reminders after three days.

String

reminder.version

Version of the reminder.
The Update reminder operation increments the version number.

String

reminder.trigger

Contains information about the trigger for a reminder.

Trigger object

reminder.alertInfo

Contains the spoken content in the reminder.

AlertInfo object

HTTP status codes

Status Description

200 OK

Response body contains the list of reminders for the specified endpoint.

400 Bad Request

Indicates that one or more properties in the request body aren't valid.

The response might include one of the following errors types and messages:

  • INVALID_REMINDER_ID – The provided reminder ID isn't valid.

401 Unauthorized

Request didn't include the authorization token, or the included token expired or isn't valid. Or, you don't have access to the resource.

403 Forbidden

Indicates that the authorization token is valid, but the requested operation isn't allowed.

404 Not Found

Requested resource not found.

429 Too Many Requests

Permitted rate limit, specified as the number of requests per unit of time, exceeded. You can retry the request by using exponential back-off.

500 Server Error

Error occurred on the server. You can retry the request by using exponential back-off.

503 Service Unavailable

Server is down for maintenance, overloaded, or otherwise unavailable to handle the incoming request.

List reminders on endpoint

List all scheduled reminders for the specified endpoint.

This operation is available in the following countries.

Healthcare Hospitality Senior Living Core

US

US, UK, FR, CA, IT, DE, ES

US, UK, FR, CA, IT, DE, ES

US

Request

To list reminders, you make a GET request to the /v2/alerts/reminders resource.

Request path and header example

Copied to clipboard.

`GET /v2/alerts/reminders?recipient.type={recipientType}}&recipient.id={recipientId}&owner={owner}` HTTP/1.1
Host: api.amazonalexa.com
Content-Type: application/json
Authorization: Bearer {access token}
Accept: application/json

Request path and header parameters

Parameter Located in Description Type Required

recipientType

Query

Type of recipient.
Valid value: ENDPOINT.

String

Yes

recipientId

Query

Unique endpoint ID of the recipient.
Formatted as an Amazon Common Identifier (ACI), amzn1.alexa.endpoint.{id}.

String

Yes

owner

Query

Filter endpoints to those associated with the owner. ~caller represents the customer identified by the access token.
Valid value: ~caller

String

Yes

access_token

Header

LWA access token. For details, see Authentication.

String

Yes

Request body example

The request has no body.

Request body properties

The request has no body.

Response

A successful response returns HTTP 200 OK, along with a list of reminders for the specified endpoint.

Response body example

{
  "results": [
    {
      "recipient": {
        "id": "amzn1.alexa.endpoint.did.1234",
        "type": "Endpoint"
      },
      "reminder": {
        "reminderId": "reminder.Id.4",
        "createdTime": "2024-06-24T20:59:12.772Z",
        "updatedTime": "2024-06-24T20:59:12.929Z",
        "trigger": {
          "type": "SCHEDULED_ABSOLUTE",
          "scheduledTime": "2024-06-24T18:00:00.000",
          "timeZoneId": "America/Denver",
          "offsetInSeconds": 0
        },
        "status": "ON",
        "alertInfo": {
          "spokenInfo": {
            "content": [
              {
                "locale": "en-US",
                "text": "Bingo starts at five p.m.",
                "ssml": "<speak>Bingo starts at five p.m.</speak>"
              }
            ]
          }
        },
        "version": "2"
      }
    },
    {
      "recipient": {
        "id": "amzn1.alexa.endpoint.did.1234",
        "type": "Endpoint"
      },
      "reminder": {
        "reminderId": "reminder.Id.22",
        "createdTime": "2024-06-21T23:36:25.342Z",
        "updatedTime": "2024-06-24T03:29:53.945Z",
        "trigger": {
          "type": "SCHEDULED_ABSOLUTE",
          "scheduledTime": "2024-06-24T17:40:00.000",
          "timeZoneId": "America/Denver",
          "offsetInSeconds": 0,
          "recurrence": {
            "startDateTime": "2024-06-01T00:00:00.000-06:00",
            "endDateTime": "2024-09-30T00:00:00.000-06:00",
            "recurrenceRules": [
              "FREQ=DAILY;INTERVAL=1;BYHOUR=17;BYMINUTE=40"
            ]
          }
        },
        "status": "ON",
        "alertInfo": {
          "spokenInfo": {
            "content": [
              {
                "locale": "en-US",
                "text": "Take your medication every day after dinner",
                "ssml": "<speak>Take your medication every day after dinner</speak>"
              }
            ]
          }
        },
        "version": "3"
      }
    }
  ]
}

Response body properties

Property Description Type

results

List of reminders associated with the specified endpoint.

Array of objects

results[].recipients

List of recipients for this reminder.

Array of objects

results[].recipients[].type

Type of recipient.
Valid values: ENDPOINT.

String

results[].recipients[].id

Endpoint on which to apply the reminder.
Formatted as an Amazon Common Identifier (ACI), amzn1.alexa.endpoint.{id}.

String

results[].reminder

Contents of the reminder.

Object

results[].reminderId

Unique ID of the reminder.

Object

results[].reminder.createdTime

Creation time of the reminder.
Defined in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ.

String

results[].reminder.updatedTime

Time of last update to the reminder.
Defined in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ.

String

results[].reminder.status

Status of the reminder.
Valid values:

  • ON – This active reminder will play at the scheduled time.
  • COMPLETED – This reminder triggered. Alexa deletes completed reminders after three days.

String

results[].reminder.version

Version of the reminder.
The Update reminder operation increments the version number.

String

results[].reminder.trigger

Contains information about the trigger for a reminder.

Trigger object

results[].reminder.alertInfo

Contains the spoken content in the reminder.

AlertInfo object

HTTP status codes

Status Description

200 OK

Response body contains the list of reminders for the specified endpoint.

400 Bad Request

Indicates that one or more properties in the request body aren't valid.

The response might include one of the following errors types and messages:

  • INVALID_RECIPIENT_TYPE – The provided reminder type isn't valid.
  • INVALID_REMINDER_ID – The provided reminder ID isn't valid.

401 Unauthorized

Request didn't include the authorization token, or the included token expired or isn't valid. Or, you don't have access to the resource.

403 Forbidden

Indicates that the authorization token is valid, but the requested operation isn't allowed.

404 Not Found

Requested resource not found.

429 Too Many Requests

Permitted rate limit, specified as the number of requests per unit of time, exceeded. You can retry the request by using exponential back-off.

500 Server Error

Error occurred on the server. You can retry the request by using exponential back-off.

503 Service Unavailable

Server is down for maintenance, overloaded, or otherwise unavailable to handle the incoming request.

Update reminder

Update the specified reminder. To update the reminder, you must specify all reminder properties. Use Get reminder to get the reminder object, and then update the properties you want to change. For example, if you want to change the reminder text, but keep the original scheduled time, set the text and ssml properties to the new text, and set the values in the trigger object to the same values you used when you created the reminder.

This operation is available in the following countries.

Healthcare Hospitality Senior Living Core

US

US, UK, FR, CA, IT, DE, ES

US, UK, FR, CA, IT, DE, ES

US

Request

To update a reminder, you make a PUT request to the /v2/alerts/reminders resource.

Request path and header example

Copied to clipboard.

PUT /v2/alerts/reminders/{reminderId}
Host: api.amazonalexa.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer {access token}

Request path and header parameters

Parameter Located in Description Type Required

reminderId

Path

ID of the reminder to update.

String

Yes

access_token

Header

LWA access token. For details, see Authentication.

String

Yes

Request body example

Copied to clipboard.

{
  "recipient": {
    "type": "Endpoint",
    "id": "amzn1.alexa.endpoint.did.1234"
  },
  "reminder": {
    "trigger": {
      "type": "SCHEDULED_ABSOLUTE",
      "timeZoneId": "America/Los_Angeles",
      "recurrence": {
        "startDateTime": "2019-05-10T6:00:00.000",
        "endDateTime": "2019-08-10T10:00:00.000",
        "recurrenceRules": [
          "FREQ=MONTHLY;BYMONTHDAY=5;BYHOUR=10;INTERVAL=1;"
        ]
      }
    },
    "alertInfo": {
      "spokenInfo": {
        "content": [
          {
            "locale": "en-US",
            "text": "Bingo starts at 5pm",
            "ssml": "<speak> Bingo starts at five p.m.</speak>"
          }
        ]
      }
    }
  }
}

Request body properties

Property Description Type Required

recipient

Recipient for the reminder.

Object

Yes

recipient.type

Type of recipient.
Valid values: ENDPOINT.

String

Yes

recipient.id

Endpoint on which to set the reminder.
Formatted as an Amazon Common Identifier (ACI), amzn1.alexa.endpoint.{id}.

String

Yes

reminder

Describes the reminder.

Object

Yes

reminder.requestTime

Specifies the date and time to use when scheduling a relative reminder, specified in coordinated universal time (UTC). The API applies the offsetInSeconds to the requestTime to calculate the trigger time for a relative reminder. When not provided, defaults to the current date and time.
Specify in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ.

Provide the requestTime in UTC time, not in the local time zone of the device. To calculate the reminder time, the API uses the time zone of the device. For example, assume the requestTime is 2024-06-21T22:30:00 and the offsetInSeconds is 1800 (30 minutes). For a device with the time zone America/Los_Angeles, this reminder is scheduled for June 21, 2024 at 4 PM. For a device with the time zone America/Denver, this reminder is scheduled for June 21, 2024 at 5 PM.

String

No

reminder.trigger

Contains information about the trigger for a reminder.

Trigger object

Yes

reminder.alertInfo

Contains the spoken content in the reminder.

AlertInfo object

Yes

Response

A successful response returns HTTP 204 No Content. On error, the response returns the appropriate HTTP status code and includes a response body with an Error object.

Response body example

The response has no body.

Response body properties

The response has no body.

HTTP status codes

Status Description

204 No Content

Reminder updated successfully

400 Bad Request

Indicates that one or more properties in the request body aren't valid.

The response might include one of the following errors types and messages:

  • CONCURRENT_MODIFICATION – A previous update to the certificate authority is still ongoing.
  • INVALID_INPUT_TIME_FORMAT – Incorrect request time and date format.
  • INVALID_TRIGGER – Type and field don't match => SCHEDULED_ABSOLUTE has offsetInSeconds or SCHEDULED_RELATIVE has scheduledTime.
  • TRIGGER_SCHEDULED_TIME_IN_PAST – Incorrect scheduled time is in the past.
  • INVALID_TRIGGER_SCHEDULED_TIME_FORMAT – Specified date format not supported.
  • INVALID_TRIGGER_TIME_ZONE – Time zone isn't valid.
  • INVALID_TRIGGER_RECURRENCE – Recurrence pattern isn't valid.
  • UNSUPPORTED_TRIGGER_RECURRENCE – Recurrence pattern is valid but not supported.
  • UNSUPPORTED_TRIGGER_RECURRENCE_INTERVAL – Recurrence pattern is valid but minimum interval between two occurrences isn't supported.
  • INVALID_ALERT_INFO – Alert info is missing locale or has an incorrect locale format. Text string is too long.
  • INVALID_TRIGGER_OFFSET – Relative time offset isn't valid.
  • UNSUPPORTED_SCHEDULED_TIME_FORMAT – Unsupported trigger scheduled time format. Supported formats are YYYY-MM-DDTHH:mm:ss.SSS and YYYY-MM-DDTHH:mm:ss/YYYY-MM-DDTHH:mm.
  • INVALID_INPUT – Invalid input error. Check the arguments and try again.
  • INVALID_RECIPIENT_ID – Recipient ID not valid
  • INVALID_RECIPIENT_TYPE – Recipient type isn't supported
  • DEVICE_NOT_REACHABLE – Device not reachable or offline.
    A directive to create the reminder is sent upon invocation if the reminder is set to go off within seven days.
  • DEVICE_NOT_SUPPORTED – Reminders aren't supported on this device.
  • TOO_MANY_RECIPIENTS – The number of recipients has exceeded the allowable threshold of 1. The Reminders API doesn't support bulk reminders at this time.

401 Unauthorized

Request didn't include the authorization token, or the included token expired or isn't valid. Or, you don't have access to the resource.

403 Forbidden

Indicates that the authorization token is valid, but the requested operation isn't allowed.

The response might include one of the following errors types and messages:

  • MAX_REMINDERS_EXCEEDED – Maxium limit of reminders reached on this device.

404 Not Found

Requested resource not found.

409 Conflict

Indicates a request conflict with the current state of the target resource.

The response might include one of the following errors types and messages:

  • MISSING_TIME_ZONE – Specified endpoint has no time zone set.

429 Too Many Requests

Permitted rate limit, specified as the number of requests per unit of time, exceeded. You can retry the request by using exponential back-off.

500 Server Error

Error occurred on the server. You can retry the request by using exponential back-off.

503 Service Unavailable

Server is down for maintenance, overloaded, or otherwise unavailable to handle the incoming request.

Time zones for absolute times

When you set a reminder trigger to an absolute time by using the scheduledTime property, the reminder plays at either the time zone of the device or a specific time zone you define in the request as follows:

  • To set a reminder in the same time zone of the device, set the scheduledTime property and leave the timeZoneId field unset.
  • To set a reminder in a specific the time zone, set both the scheduledTime and timeZoneId properties.

Object definitions

The Reminders API defines the following objects.

AlertInfo object

The AlertInfo object defines spoken and display alert information for the reminder.

Property Description Type

spokenInfo

Contains information about the spoken content in the reminder.

Object

spokenInfo.content

Spoken content in the alert.
You must include at least one item in the array.

Array of objects

spokenInfo.content[].locale

Defines the locale and language for the reminder text.

String

spokenInfo.content[].text

Default text used for display and spoken content.
Don't include Speech Synthesis Markup Language (SSML) tags in this field.

String

spokenInfo.content[].ssml

(Optional) Text used for spoken content, generated with SSML.
If you don't provide a value for this field, spokenInfo.content.text handles both text and spoken content.
Valid SSML tags: speak.

String

Error object

The Error object defines the error type and message included in the response when an error occurs.

The following example shows the response body with the error type and message.

{
    "type": "REMINDER_NOT_FOUND",
    "message": "Reminder does not exist."
}
Property Description Type

type

Type of error that occurred.
For specific error types, see the HTTP status code table for each operation.

String

message

Human-readable error message. The error message appears only for debugging and logging purposes. You must not share it with the customer. No business logic should depend on the content of the error message.

String

Recurrence object

The Recurrence object defines the rules for recurring reminders. You can define recurring reminders when the trigger type is SCHEDULED_ABSOLUTE.

The following table defines the properties of the object.

Property Description Type

startDateTime

(Optional) Start of the recurrence pattern. Default is current time.
Defined in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ.

String

endDateTime

(Optional) End of the recurrence pattern. Default is no end time.
Defined in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ.

String

recurrenceRules

(Optional) Recurrence pattern for repeating reminders.

Valid rules: FREQ, BYMONTHDAY, BYDAY, BYHOUR, BYMINUTE, BYSECOND, and INTERVAL.

Valid FREQ rule patterns: FREQ=DAILY, FREQ=WEEKLY, FREQ=MONTHLY, and FREQ=YEARLY

Valid INTERVAL values:

  • Minimum interval between two recurrence values is one hour for the en-US locale and four hours for all other supported locales. For example: RRULE:FREQ=DAILY;INTERVAL=4.
  • Maximum interval for DAILY, WEEKLY and MONTHLY patterns is 31 days. For example: RRULE:FREQ=MONTHLY;INTERVAL=6.
  • Maximum interval for the YEARLY pattern is one year.

Array of RRULEs

Trigger object

The Trigger object defines the schedule time type, absolute or relative, and rules for one-time or recurring reminders.

The following table defines the properties of the object.

Property Description Type

type

Indicates type of trigger.
Valid values: SCHEDULED_ABSOLUTE, SCHEDULED_RELATIVE.

String

offsetInSeconds

(Optional) Specifies the number of seconds after which the reminder plays.
Applies when trigger.type is SCHEDULED_RELATIVE.

Integer

scheduledTime

(Optional) Intended trigger date and time for this reminder, scheduled at an absolute time. Specify in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ.

  • For an absolute reminder, this field contains the scheduled absolute time.
  • For a relative reminder, this field contains the calculated trigger time based on the requestTime and offsetInSeconds provided during reminder creation.
  • For a recurring reminder, this field contains either the next trigger date and time, or the most recent trigger date and time, based on the recurrence rules.
    After a recurring reminder plays, there's an expected delay between trigger time and when the device schedules the next instance. During this delay, the scheduledTime returns the most recent trigger date and time and not the next recurrence time. For longer recurrence intervals, the device schedules the next instance in three to four hours. For shorter intervals, the scheduling usually occurs in under an hour.

String

timeZoneId

(Optional) Specifies the time zone, such as America/New_York.
Not applicable when the trigger.type is SCHEDULED_RELATIVE.
If not set, Alexa uses the time zone of the endpoint recipient.
For more details about time zones, see Time zones for absolute times.

String

recurrence

(Optional) Specifies recurrence information for reminders that repeat at regular intervals.
Applies when trigger.type is SCHEDULED_ABSOLUTE.

Recurrence object


Was this page helpful?

Last updated: Nov 01, 2024