Reminders REST API Reference


Use the Alexa Reminders API to create and manage reminders from your skill.

For more details about reminders, see Alexa Reminders Overview.

API endpoint

Use one of the following API hosts, based on the region where the customer is located:

  • North America: https://api.amazonalexa.com
  • Europe: https://api.eu.amazonalexa.com
  • Far East: https://api.fe.amazon.com

You can find the API endpoint in the context.System.apiEndpoint retrieved from a request from Alexa, such as the LaunchRequest or IntentRequest.

Authentication

Each API request must have an authorization header whose value is the context.System.apiAccessToken retrieved from a request from Alexa, such as the LaunchRequest or IntentRequest.

You can access the API from your app or service outside of a skill session with a Login with Amazon (LWA) access token. You can use an out-of-session access token to edit or delete a reminder, but you can only create and update a reminder from your skill. For more details about out-of-session access tokens, see Out of session interaction.

Access to reminders is based on the permission scopes enabled for your skill and granted by the customer.

Permission scope Description

alexa::alerts:reminders:skill:readwrite

Allows your skill to create and update reminders.

Operations

The Reminders API includes the following operations.

Operation HTTP method and URI

Create reminder

POST /v1/alerts/reminders

Delete reminder

DELETE /v1/alerts/reminders/{alertToken}

Get reminder

GET /v1/alerts/reminders/{alertToken}

List reminders

GET /v1/alerts/reminders

Update reminder

PUT /v1/alerts/reminders/{alertToken}

Create reminder

Create a new reminder.

Request

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

Request path and header example

Copied to clipboard.

POST /v1/alerts/reminders
Host: api.amazonalexa.com
Content-Type: application/json
Content-length: {length}
Authorization: Bearer {access token}

Request path and header parameters

Parameter Located in Description Type Required

length

Header

Length of the content in bytes.

Integer

Yes

access token

Header

Set to apiAccessToken.

String

Yes

Request body example

The following example shows a request to create a reminder at the specified offset from the current time.

The following example shows a request to create a reminder at the specified absolute time.

The following example shows a request to create a recurring reminder at the specified absolute time.

Request body properties

Property Description Type Required

requestTime

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

String

Yes

trigger

Describes the time to set the reminder.

Object

Yes

trigger.type

Type of trigger.
Valid values: SCHEDULED_ABSOLUTE, SCHEDULED_RELATIVE.

String

Yes

trigger.offsetInSeconds

Specifies the time in seconds after which the reminder rings.
Valid for type = SCHEDULED_RELATIVE only.

Integer

No

trigger.scheduledTime

Specifies the absolute time to set the reminder.
Valid for type = SCHEDULED_ABSOLUTE only.
Defined in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ.

String

No

trigger.timeZoneId

Specifies the time zone, such as America/New_York.
If not set, Alexa uses the time zone of the device.
For valid values, see List of tz database time zones identifiers.

String

No

trigger.recurrence

Describes the rules for the recurring reminder.
Valid for type = SCHEDULED_ABSOLUTE only.

Object

No

trigger.recurrence.startDateTime

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

String

No

trigger.recurrence.endDateTime

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

String

No

trigger.recurrence.recurrenceRules

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:

  • The 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.
  • The maximum interval for DAILY, WEEKLY and MONTHLY patterns is 31 days. For example: RRULE:FREQ=MONTHLY;INTERVAL=6.
  • The maximum interval for YEARLY pattern is one year.

Array of RRULEs

No

alertInfo

Defines the reminder.

Object

Yes

alertInfo.spokenInfo

Defines the information to say for the reminder.

Object

Yes

alertInfo.spokenInfo.content

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

Array of objects

Yes

alertInfo.spokenInfo.content[].locale

Defines the locale and language for the text.

String

Yes

alertInfo.spokenInfo.content[].text

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

String

Yes

alertInfo.spokenInfo.content[].ssml

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

String

No

pushNotification

Indicates whether to send a push notification to the Alexa app.

Object

Yes

pushNotification.status

Enable or disable push notifications to the Alexa app.
If ENABLED, a phone receives a push notification when the reminder goes off. To test, make sure that the receiving device has enabled notifications through the Alexa app.
Valid values: ENABLED, DISABLED.

String

Yes

Response

A successful response returns HTTP 200 OK, along with the unique reminder ID, called alertToken. On error, the response returns the appropriate HTTP status code and includes a response body with an error code and human readable message.

Response body example

The following example shows a response.

{
  "alertToken": "alert.token.1",
  "createdTime": "2019-08-14T15:40:55.002Z",
  "updatedTime": "2019-08-14T15:40:55.002Z",
  "status": "ON",
  "version": "1",
  "href": "www.-example-new-alert.com"
}

Response body properties

Property Description Type

alertToken

Unique id of this reminder.

String

createdTime

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

String

updatedTime

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

String

status

Status of the reminder.
Valid values: ON, COMPLETED.

String

version

Version of the reminder.

String

href

URI to retrieve the created reminder.

String

HTTP status codes

Status Description

201 Created

Reminder created successfully.

400 Bad Request

Indicates that one or more properties in the request body aren't valid. For more details, see Error code values.

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 number of requests per unit of time, exceeded. Retry the request by using exponential back-off.

500 Server Error

Error occurred on the server. 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

Use the alertToken generated on reminder creation to delete a specific reminder. You can use List reminders API to retrieve the reminders and their alertToken.

This operation deletes active reminders, not completed reminders. You can view recently completed reminders in the Alexa app.

Request

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

Request path and header example

Copied to clipboard.

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

Request path and header parameters

Parameter Located in Description Type Required

alertToken

Path

Identifies the reminder.
To get the alertToken, use List reminders.

String

Yes

access token

Header

Access token for the customer.
For in-session requests, set to apiAccessToken.
For out-of-session requests, set to an LWA token.

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. On error, the response returns the appropriate HTTP status code and includes a response body with an error code and human readable message.

Response body example

The response has no body.

Response body properties

The response has no body.

HTTP status codes

Status Description

200 OK

Reminder deleted successfully.

400 Bad Request

Indicates that one or more properties in the request body aren't valid. For more details, see Error code values.

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 number of requests per unit of time, exceeded. Retry the request by using exponential back-off.

500 Server Error

Error occurred on the server. 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

Use the alertToken generated on reminder creation to get a specific reminder. You can use List reminders API to retrieve the reminders and their alertToken.

Request

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

Request path and header example

Copied to clipboard.

GET /v1/alerts/reminders/{alertToken}
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

alertToken

Path

Identifies the reminder.
To get the alertToken, use List reminders.

String

Yes

access token

Header

Access token for the customer.
For in-session requests, set to apiAccessToken.
For out-of-session requests, set to an LWA token.

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 requested reminder. On error, the response returns the appropriate HTTP status code and includes a response body with an error code and human readable message.

Response body example

{
    "alertToken": "alert.token.1",
    "createdTime": "2019-08-14T15:40:55.002Z",
    "updatedTime": "2019-08-14T15:40:55.002Z",
    "status": "ON",
    "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=DAILY;BYDAY=SU;BYHOUR=17;BYMINUTE=15;BYSECOND=0;INTERVAL=1;",
                "FREQ=MONTHLY;BYMONTHDAY=5;BYHOUR=10;INTERVAL=1;"
            ]
        }
    },
    "alertInfo": {
        "spokenInfo": {
            "content": [{
                "locale": "en-US",
                "text": "walk the dog.",
                "ssml": "<speak> walk the dog</speak>"
            }]
        }
    },
    "pushNotification": {
        "status": "ENABLED"
    },
    "version": "1"
}

Response body properties

The response includes the Reminder object for the requested reminder ID.

HTTP status codes

Status Description

200 OK

Response body contains the reminder.

400 Bad Request

Indicates that one or more properties in the request body aren't valid. For more details, see Error code values.

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 number of requests per unit of time, exceeded. Retry the request by using exponential back-off.

500 Server Error

Error occurred on the server. 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

Get a list of all reminders for the customer specified in the access token. This operation returns active and completed reminders.

Request

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

Request path and header example

Copied to clipboard.

GET /v1/alerts/reminders
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

access token

Header

Access token for the customer.
For in-session requests, set to apiAccessToken.
For out-of-session requests, set to an LWA token.

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. On error, the response returns the appropriate HTTP status code and includes a response body with an error code and human readable message.

Response body example

{
    "totalCount": "string",
    "alerts": [{
            "alertToken": "alert.token.1",
            "createdTime": "2019-08-14T15:40:55.002Z",
            "updatedTime": "2019-08-14T15:40:55.002Z",
            "status": "ON",
            "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=DAILY;BYDAY=SU;BYHOUR=17;BYMINUTE=15;BYSECOND=0;INTERVAL=1;",
                        "FREQ=MONTHLY;BYMONTHDAY=5;BYHOUR=10;INTERVAL=1;"
                    ]
                }
            },
            "alertInfo": {
                "spokenInfo": {
                    "content": [{
                        "locale": "en-US",
                        "text": "walk the dog.",
                        "ssml": "<speak> walk the dog</speak>"
                    }]
                }
            },
            "pushNotification": {
                "status": "ENABLED"
            },
            "version": "1"
        },
        {
            "alertToken": "alert.token.2",
            "createdTime": "2019-08-13T15:40:55.002Z",
            "updatedTime": "2019-08-13T15:40:55.002Z",
            "status": "COMPLETED",
            "trigger": {
                "type": "SCHEDULED_RELATIVE",
                "offsetInSeconds": "7200"
            },
            "alertInfo": {
                "spokenInfo": {
                    "content": [{
                        "locale": "en-US",
                        "text": "call the dentist",
                        "ssml": "<speak>call the dentist</speak>"
                    }]
                }
            },
            "pushNotification": {
                "status": "ENABLED"
            }

        }
    ],
    "links": "link.to.next.reminder"
}

Response body properties

Property Description Type

totalCount

Number of reminders returned.

String

alerts

List of reminders.

Array of Reminder objects

links

URL to retrieve the next set of reminders if there are more reminders.

String

HTTP status codes

Status Description

200 OK

Response body contains a list of reminders.

400 Bad Request

Indicates that one or more properties in the request body aren't valid. For more details, see Error code values.

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 number of requests per unit of time, exceeded. Retry the request by using exponential back-off.

500 Server Error

Error occurred on the server. 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

Use the alertToken generated on reminder creation to update an existing reminder. You can use List reminders API to retrieve the reminders and their alertToken.

Request

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

Request path and header example

Copied to clipboard.

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

Request path and header parameters

Parameter Located in Description Type Required

alertToken

Path

Identifies the reminder.
To get the alertToken, use List reminders.

String

Yes

access token

Header

Access token used for the customer. Set to request.context.System.apiAccessToken property from the LaunchRequest or IntentRequest.

String

Yes

Request body example{#update-a-reminder-request-body-example}

The following example shows a request to update a reminder at the specified offset from the current time.

The following example shows a request to update a reminder at the specified absolute time.

The following example shows a request to update a recurring reminder at the specified absolute time.

Request body properties

Property Description Type Required

requestTime

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

String

Yes

trigger

Describes the time to set the reminder.

Object

Yes

trigger.type

Type of trigger.
Valid values: SCHEDULED_ABSOLUTE, SCHEDULED_RELATIVE.

String

Yes

trigger.offsetInSeconds

Specifies the time in seconds after which the reminder rings.
Valid for type = SCHEDULED_RELATIVE only.

Integer

No

trigger.scheduledTime

Specifies the absolute time to set the reminder.
Valid for type = SCHEDULED_ABSOLUTE only.
Defined in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ.

String

No

trigger.timeZoneId

Specifies the time zone, such as America/New_York.
If not set, Alexa uses the time zone of the device.
For valid values, see List of tz database time zones identifiers.

String

No

trigger.recurrence

Describes the rules for the recurring reminder.
Valid for type = SCHEDULED_ABSOLUTE only.

Object

No

trigger.recurrence.startDateTime

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

String

No

trigger.recurrence.endDateTime

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

String

No

trigger.recurrence.recurrenceRules

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:

  • The 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.
  • The maximum interval for DAILY, WEEKLY and MONTHLY patterns is 31 days. For example: RRULE:FREQ=MONTHLY;INTERVAL=6.
  • The maximum interval for YEARLY pattern is one year.

Array of RRULEs

No

alertInfo

Defines the reminder.

Object

Yes

alertInfo.spokenInfo

Defines the information to say for the reminder.

Object

Yes

alertInfo.spokenInfo.content

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

Array of objects

Yes

alertInfo.spokenInfo.content[].locale

Defines the locale and language for the text.

String

Yes

alertInfo.spokenInfo.content[].text

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

String

Yes

alertInfo.spokenInfo.content[].ssml

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

String

No

pushNotification

Indicates whether to send a push notification to the Alexa app.

Object

Yes

pushNotification.status

Enable or disable push notifications to the Alexa app.
If ENABLED, a phone receives a push notification when the reminder goes off. To test, make sure that the receiving device has enabled notifications through the Alexa app.
Valid values: ENABLED, DISABLED.

String

Yes

Response

A successful response returns HTTP 200 OK, along with the unique reminder ID, called alertToken and update time. On error, the response returns the appropriate HTTP status code and includes a response body with an error code and human readable message.

Response body example

The following example shows a successful response.

{
  "alertToken": "alert.token.1",
  "createdTime": "2019-08-14T15:40:55.002Z",
  "updatedTime": "2019-08-15T11:20:25.000Z",
  "status": "ON",
  "version": "1",
  "href": "www.-example-updated-alert.com"
}

Response body properties

Property Description Type

alertToken

Unique id of this reminder.

String

createdTime

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

String

updatedTime

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

String

status

Status of the reminder.
Valid values: ON, COMPLETED.

String

version

Version of the reminder.

String

href

URI to retrieve the updated reminder.

String

HTTP status codes

Status Description

200 OK

Reminder updated successfully.

400 Bad Request

Indicates that one or more properties in the request body aren't valid. For more details, see Error code values.

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 number of requests per unit of time, exceeded. Retry the request by using exponential back-off.

500 Server Error

Error occurred on the server. 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.

Reminder events

If your skill integrates with an external app or services, subscribe to reminder events to receive notifications. Your skill can use account linking to integrate with an external app, and use notifications of these events to make changes, such as by deleting or modifying the reminders in the app.

Any action that a skill takes as the result of a reminder event should consider the timestamp of the event, as notifications of events might arrive out of order. For example, if a reminder is updated twice, and the earlier update event arrives after the second update event, your skill should disregard the earlier update.

Alexa attempts to redeliver events if the skill service doesn't send an acknowledgment in response. The skill service can't retrieve past events from Alexa, but must rely on the event delivery.

For more details about subscribing to reminder events, see Events in Alexa skills.

API endpoint for events

The endpoint used in events is https://api.amazonalexa.com.

Reminder events

Your skill can subscribe to reminder events by configuring your skill.json manifest file. For more details on this process, see Use Events in Your Skill Service.

You can subscribe to the following reminder events.

Object definitions

The Reminders API defines the following object definitions.

AlertInfo object

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

Property Description Type

spokenInfo

Defines the information to say for 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 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, alertInfo.spokenInfo.content.text handles both text and spoken content.
Valid SSML tags: speak.

String

Reminder object

The Reminder object defines the reminder trigger, spoken text, and optional recurrence rules.

Property Description Type

alertToken

Unique id of this reminder.

String

createdTime

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

String

updatedTime

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

String

status

Status of the reminder.
Valid values: ON, COMPLETED.

String

trigger

Describes when the reminder triggers.

Trigger object

alertInfo

Defines the reminder.

AlertInfo object

pushNotification

Indicates whether to send a push notification to the Alexa app.

Object

pushNotification.status

Enable or disable push notifications to the Alexa app.
If ENABLED, a phone receives a push notification when the reminder goes off. To test, make sure that the receiving device has enabled notifications through the Alexa app.
Valid values: ENABLED, DISABLED.

String

version

Version of the reminder.

String

Trigger object

The Trigger object defines when the reminder triggers.

Property Description Type

type

Type of trigger.
Valid values: SCHEDULED_ABSOLUTE, SCHEDULED_RELATIVE.

String

offsetInSeconds

(Optional) Specifies the time in seconds after which the reminder rings.
Valid for type = SCHEDULED_RELATIVE only.

Integer

scheduledTime

(Optional) Specifies the absolute time to trigger the reminder.
Valid for type = SCHEDULED_ABSOLUTE only.
Defined in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ.

String

timeZoneId

(Optional) Specifies the time zone of the trigger, such as America/New_York.
If not set, Alexa uses the time zone of the device.
For valid values, see List of tz database time zones identifiers.

String

recurrence

(Optional) Describes the rules for recurring reminders.
Valid for type = SCHEDULED_ABSOLUTE only.

Object

recurrence.startDateTime

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

String

recurrence.endDateTime

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

String

recurrence.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:

  • The 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.
  • The maximum interval for DAILY, WEEKLY and MONTHLY patterns is 31 days. For example: RRULE:FREQ=MONTHLY;INTERVAL=6.
  • The maximum interval for YEARLY pattern is one year.

Array of RRULEs

recurrence.freq

Deprecated: Frequency type of the recurrence.
Valid values: WEEKLY, DAILY.

String

recurrence.byDay

Deprecated: Specifies a day or list of days within a week. Use the first two letters of the weekday name. For example, a full week is [ "SU", "MO", "TU", "WE", "TH", "FR", "SA" ]. To trigger a reminder on multiple days of the week, every week, you must create one individual reminder for each day.

String

Error code values{#error-codes}

When errors occur, the Reminders API returns detailed error codes for each HTTP status code.

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

{
     "message": "The property is outside the allowed range.",
     "code": "INVALID_STRING_LENGTH"
}

The following table shows possible error codes returned with HTTP 400 Bad Request.

Error code Message

INVALID_REQUEST_TIME_FORMAT

Request time date format incorrect.

INVALID_TRIGGER

Type and field do not match => SCHEDULED_ABSOLUTE has offsetInSeconds or SCHEDULED_RELATIVE has scheduledTime.

TRIGGER_SCHEDULED_TIME_IN_PAST

Scheduled time is in the past.

INVALID_TRIGGER_SCHEDULED_TIME_FORMAT

Date format is not supported.

INVALID_TRIGGER_TIME_ZONE

Time zone is not valid.

INVALID_TRIGGER_RECURRENCE

Recurrence pattern is invalid.

UNSUPPORTED_TRIGGER_RECURRENCE

Recurrence pattern is valid but not currently supported.

UNSUPPORTED_TRIGGER_RECURRENCE_INTERVAL

Recurrence pattern is valid but minimum interval between two occurrences is not supported.

INVALID_ALERT_INFO

Alert info is missing locale / invalid locale format.
Text string is too long.

INVALID_TRIGGER_OFFSET

Invalid relative time offset.

UNSUPPORTED_SCHEDULED_TIME_FORMAT

Unsupported trigger scheduled time format.

Supported format is YYYY-MM-DDTHH:mm:ss.SSS/YYYY-MM-DDTHH:mm:ss/YYYY-MM-DDTHH:mm.

The following table shows possible error codes returned with HTTP 401 Unauthorized.

Error code Message

UNAUTHORIZED

Token is valid but does not have appropriate permissions.

MISSING_BEARER_TOKEN

Missing access token.

INVALID_BEARER_TOKEN

Invalid / wrong access token.

EXPIRED_BEARER_TOKEN

Access token expired.

NOT_IN_SESSION

Reminders can only be created in session.

The following table shows possible error codes returned with HTTP 403 Forbidden.

Error code Message

MAX_REMINDERS_EXCEEDED

Max limit of reminders on the device reached (for example, 500).

DEVICE_NOT_SUPPORTED

Reminders are not supported on this device.


Was this page helpful?

Last updated: May 22, 2024