Alexa Reminders API Reference
Use the Alexa Reminders API to create and manage reminders from your skill. This reference document describes the available operations for the Alexa Reminders API.
For more details on how reminders operate, see Alexa Reminders Overview and Alexa Reminders Guidelines.
- Alexa Reminders API endpoint and authorization
- In-session and out of session behavior for Alexa Reminders API
- Create a reminder
- Get a reminder
- Get all reminders
- Update a reminder
- Delete a reminder
- Reminder object
- How trigger times are calculated
- Error messages
- Subscribe to reminder events
Alexa Reminders API endpoint and authorization
You get the API endpoint from the apiEndpoint
value in the context
object of the incoming request.
-
North America – https://api.amazonalexa.com
-
Europe – https://api.eu.amazonalexa.com
-
Far East – https://api.fe.amazonalexa.com
Each API request must have an Authorization
header. For this value, use the access token retrieved from Login with Amazon.
The id
used in some operations refers to the id of the reminder. This id
automatically generates when the reminder gets created.
alertToken
value is your reminder id
. Use the Get all reminders API to retrieve all reminders that have an alertToken
. In-session and out of session behavior for Alexa Reminders API
You create (POST) reminders with an in-session access token – don't use an out-of-session token.
GET, UPDATE, and DELETE operations work with both in-session and out of session access tokens. For more details about using out of session access tokens, see Out of session interaction.
trigger.recurrence.byDay
and trigger.recurrence.freq
are deprecated in favor of the following more specific recurrence parameters: startDateTime
, endDateTime
, recurrenceRules[]
. This change is backwards compatible. If your payload contains the new parameters, the old recurrence rules freq
, byDay
, and scheduledTime
are ignored.Create a reminder
A skill invokes this API to create a new reminder for the current skill.
Request
POST /v1/alerts/reminders
Header of the request
Content-length: << length in bytes >>
Authorization: Bearer <<access token>>
Content-Type: application/json
Body of the request (SCHEDULED_ABSOLUTE)
timezoneId
field, otherwise your reminder might ring at the incorrect time. For more details about time zones, see How time zones work.Single Reminder
{
{
"requestTime" : "2019-09-22T19:04:00.672",
"trigger": {
"type" : "SCHEDULED_ABSOLUTE",
"scheduledTime" : "2019-09-22T19:00:00.000",
"timeZoneId" : "America/Los_Angeles"
},
"alertInfo": {
"spokenInfo": {
"content": [{
"locale": "en-US",
"text": "walk the dog",
"ssml": "<speak> walk the dog</speak>"
}]
}
},
"pushNotification" : {
"status" : "ENABLED"
}
}
}
Recurring Reminder
{
"requestTime" : "2019-09-22T19:04:00.672",
"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"
}
}
Body of the request (SCHEDULED_RELATIVE)
SCHEDULED_RELATIVE
reminders don't support recurrence rules{
"requestTime" : "2019-09-22T19:04:00.672",
"trigger": {
"type" : "SCHEDULED_RELATIVE",
"offsetInSeconds" : "7200"
},
"alertInfo": {
"spokenInfo": {
"content": [{
"locale": "en-US",
"text": "walk the dog",
"ssml": "<speak> walk the dog</speak>"
}]
}
},
"pushNotification" : {
"status" : "ENABLED"
}
}
Field | Description | Parameter Type |
---|---|---|
requestTime |
Valid ISO 8601 format. Describes the time when event actually occurred. | string |
trigger |
Contains information about the trigger for a reminder. | object |
trigger.type |
Indicates type of trigger. SCHEDULED_ABSOLUTE or SCHEDULED_RELATIVE . |
enum |
trigger.offsetInSeconds |
If trigger.type is set to SCHEDULED_RELATIVE , use this field to specify the time after which the reminder rings (in seconds). |
integer |
trigger.timeZoneId |
A string containing the ID of the time zone. See How time zones work. | enum |
trigger.recurrence |
Contains information about recurrence information for the reminder. | object |
trigger.recurrence.startDateTime |
Optional. The start of the recurrence pattern. Defined with both the date and time. Default is "now" | enum |
trigger.recurrence.endDateTime |
Optional. The end of the recurrence pattern. Defined with both the date and time. Default is "no end time". | enum |
trigger.recurrence.recurrenceRules |
The recurrence pattern for a repeating alert, in the RRULE format. Supported Values: FREQ , BYMONTHDAY , BYDAY , BYHOUR , BYMINUTE , BYSECOND , and INTERVAL The supported FREQ RRULE patterns are FREQ=DAILY , FREQ=WEEKLY , FREQ=MONTHLY , and FREQ=YEARLY • The minimum interval between two recurrence values is one hour for the en-US locale and four hours for all other supported locales.• The maximum interval for DAILY , WEEKLY and MONTHLY patterns is 31 days.• The maximum interval for YEARLY pattern is one year. If these constraints aren't met a 400 error code is thrown. |
string |
alertInfo |
Contains information about the alert. | object |
alertInfo.spokenInfo |
Contains information about the spoken content in the alert. | object |
alertInfo.spokenInfo.content |
Contains the content of the alert. | object |
alertInfo.spokenInfo.content.locale |
Locale in which value is specified. | enum |
alertInfo.spokenInfo.content.text |
Default text used for display and spoken content. If you provide an SSML value, this field only handles the text output. | string |
alertInfo.spokenInfo.content.ssml |
Text used for spoken content, generated using Speech Synthesis Markup Language (SSML). If you don't provide a value for this field, alertInfo.spokenInfo.content.text handles both text and spoken content. Reminders only supports the SSML speak tag. |
string |
pushNotification |
Contains information about the push notification. If ENABLED , a phone receives a push notification when the reminder goes off. Make sure the receiving device has enabled notifications through the Alexa app. |
object |
pushNotification.status |
One of: ENABLED , DISABLED |
enum |
Response
HTTP/1.1 201 Created
Body of the response
{
"alertToken": "string",
"createdTime": "2019-08-14T15:40:55.002Z",
"updatedTime": "2019-08-14T15:40:55.002Z",
"status": "ON",
"version": "string",
"href": "string"
}
Field | Description | Parameter Type |
---|---|---|
alertToken |
Unique id of this reminder alert. | string |
createdTime |
Valid ISO 8601 format - Created time of this reminder alert. | string |
updatedTime |
Valid ISO 8601 format - Last updated time of this reminder alert. | string |
status |
ON or COMPLETED . |
enum |
version |
Version of this reminder alert. | string |
href |
URI to retrieve the created alert. | string |
Get a reminder
Retrieve a reminder by ID (alertToken
).
Request
GET /v1/alerts/reminders/{id}
Response
The response includes a reminder object inside the alerts
object.
HTTP/1.1 200 OK
{
"totalCount": "string",
"alerts": [
{
"alertToken": "string",
"createdTime": "2019-08-14T15:47:48.386Z",
"updatedTime": "2019-08-14T15:47:48.386Z",
"status": "ON",
"trigger": {
"type": "SCHEDULED_ABSOLUTE",
"scheduledTime": "2019-08-14T15:47:48.387Z",
"offsetInSeconds": 0,
"timeZoneId": "string",
"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": "string",
"text": "string",
"ssml": "<speak> walk the dog</speak>"
}
]
}
},
"pushNotification": {
"status": "ENABLED"
},
"version": "string"
}
],
"links": "string"
}
Get all reminders
A skill invokes this API to get all reminders for the skill. This request also retrieves completed reminders, which have a status of COMPLETED
.
Request
GET /v1/alerts/reminders
Response
The response includes one or more reminder objects inside the alerts
object.
HTTP/1.1 200 OK
{
"totalCount": "string",
"alerts": [
{
"alertToken": "string",
"createdTime": "2019-08-14T16:03:38.811Z",
"updatedTime": "2019-08-14T16:03:38.811Z",
"status": "ON",
"trigger": {
"type": "SCHEDULED_ABSOLUTE",
"scheduledTime": "2019-08-14T16:03:38.811Z",
"offsetInSeconds": 0,
"timeZoneId": "string",
"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": "string",
"text": "string",
"ssml": "<speak> walk the dog</speak>"
}
]
}
},
"pushNotification": {
"status": "ENABLED"
},
"version": "string"
}
],
"links": "string"
}
Update a reminder
A skill invokes this API to update a reminder for the current skill.
Request
PUT /v1/alerts/reminders/{id}
Body of the request
timezoneId
field, otherwise your reminder might ring at the incorrect time. For more details about time zones, see How time zones work.{
"createdTime": "2019-08-14T15:53:12.919Z",
"trigger": {
"type": "SCHEDULED_ABSOLUTE",
"scheduledTime": "2019-08-14T15:53:12.919Z",
"offsetInSeconds": 0,
"timeZoneId": "string",
"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": "string",
"text": "string",
"ssml": "<speak> walk the dog</speak>"
}
]
}
},
"pushNotification": {
"status": "ENABLED"
}
}
Response
HTTP/1.1 200 OK
Body of the response
{
"alertToken": "string",
"createdTime": "2019-08-14T15:40:55.002Z",
"updatedTime": "2019-08-14T15:40:55.002Z",
"status": "ON",
"version": "string",
"href": "string"
}
Field | Description | Parameter Type |
---|---|---|
alertToken |
Unique id of this reminder alert. | string |
createdTime |
Valid ISO 8601 format - Created time of this reminder alert. | string |
updatedTime |
Valid ISO 8601 format - Last updated time of this reminder alert. | string |
status |
ON or COMPLETED . |
enum |
version |
Version of this reminder alert. | string |
href |
URI to retrieve the created alert. | string |
Deprecated rules
trigger.recurrence.byDay
and trigger.recurrence.freq
are deprecated in favor of the following more specific recurrence parameters: startDateTime
, endDateTime
, recurrenceRules[]
. This change is backwards compatible. If your payload contains the new parameters, the old recurrence rules freq
, byDay
, and scheduledTime
are ignored.Create a reminder
A skill invokes this API to create a new reminder for the current skill.
Request
POST /v1/alerts/reminders
Header of the request
Content-length: << length in bytes >>
Authorization: Bearer <<access token>>
Content-Type: application/json
Body of the request (SCHEDULED_ABSOLUTE)
timezoneId
field, otherwise your reminder might ring at the incorrect time. For more details about time zones, see How time zones work.{
"requestTime" : "2019-09-22T19:04:00.672",
"trigger": {
"type" : "SCHEDULED_ABSOLUTE",
"scheduledTime" : "2019-09-22T19:00:00.000",
"timeZoneId" : "America/Los_Angeles",
"recurrence" : {
"freq" : "WEEKLY", //deprecated
"byDay": ["MO"] //deprecated
}
},
"alertInfo": {
"spokenInfo": {
"content": [{
"locale": "en-US",
"text": "walk the dog"
}]
}
},
"pushNotification" : {
"status" : "ENABLED"
}
}
Body of the request (SCHEDULED_RELATIVE)
SCHEDULED_RELATIVE
reminders don't support recurrence rules{
"requestTime" : "2019-09-22T19:04:00.672",
"trigger": {
"type" : "SCHEDULED_RELATIVE",
"offsetInSeconds" : "7200"
},
"alertInfo": {
"spokenInfo": {
"content": [{
"locale": "en-US",
"text": "walk the dog"
}]
}
},
"pushNotification" : {
"status" : "ENABLED"
}
}
Field | Description | Parameter Type |
---|---|---|
requestTime |
Valid ISO 8601 format. Describes the time when event actually occurred. | string |
trigger |
Contains information about the trigger for a reminder. | object |
trigger.type |
Indicates type of trigger. SCHEDULED_ABSOLUTE or SCHEDULED_RELATIVE . |
enum |
trigger.offsetInSeconds |
If trigger.type is set to SCHEDULED_RELATIVE , use this field to specify the time after which the reminder will ring (in seconds). |
integer |
trigger.timeZoneId |
A string containing the ID of the time zone. See How time zones work. | enum |
trigger.recurrence |
Contains information about recurrence information for the reminder. | object |
trigger.recurrence.freq |
Deprecated: One of: WEEKLY , DAILY . Frequency type of the recurrence. |
enum |
trigger.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. | enum |
alertInfo |
Contains information about the alert. | object |
alertInfo.spokenInfo |
Contains information about the spoken content in the alert. | object |
alertInfo.spokenInfo.content |
Contains the content of the alert. | object |
alertInfo.spokenInfo.content.locale |
Locale in which value is specified. | enum |
alertInfo.spokenInfo.content.text |
Text used for display and spoken purposes. | string |
pushNotification |
Contains information about the push notification. | object |
pushNotification.status |
One of: ENABLED , DISABLED |
enum |
Response
HTTP/1.1 200 OK
Body of the response
{
"alertToken": "string",
"createdTime": "2019-08-14T15:40:55.002Z",
"updatedTime": "2019-08-14T15:40:55.002Z",
"status": "ON",
"version": "string",
"href": "string"
}
Field | Description | Parameter Type |
---|---|---|
alertToken |
Unique id of this reminder alert. | string |
createdTime |
Valid ISO 8601 format - Created time of this reminder alert. | string |
updatedTime |
Valid ISO 8601 format - Last updated time of this reminder alert. | string |
status |
ON or COMPLETED . |
enum |
version |
Version of this reminder alert. | string |
href |
URI to retrieve the created alert. | string |
Get a specified reminder
The skill invokes this API to get a specified reminder for the current skill.
Request
GET /v1/alerts/reminders/{id}
Response
The response includes a reminder object inside the alerts
object.
HTTP/1.1 200 OK
{
"totalCount": "string",
"alerts": [
{
"alertToken": "string",
"createdTime": "2019-08-14T15:47:48.386Z",
"updatedTime": "2019-08-14T15:47:48.386Z",
"status": "ON",
"trigger": {
"type": "SCHEDULED_ABSOLUTE",
"scheduledTime": "2019-08-14T15:47:48.387Z",
"offsetInSeconds": 0,
"timeZoneId": "string",
"recurrence": {
"freq": "WEEKLY", //deprecated
"byDay": [ //deprecated
"SU"
],
"interval": 0
}
},
"alertInfo": {
"spokenInfo": {
"content": [
{
"locale": "string",
"text": "string"
}
]
}
},
"pushNotification": {
"status": "ENABLED"
},
"version": "string"
}
],
"links": "string"
}
Get all reminders
A skill invokes this API to get all reminders for the skill. This request also retrieves completed reminders, which have a status of COMPLETED
.
Request
GET /v1/alerts/reminders
Response
The response includes one or more reminder objects inside the alerts
object.
HTTP/1.1 200 OK
{
"totalCount": "string",
"alerts": [
{
"alertToken": "string",
"createdTime": "2019-08-14T16:03:38.811Z",
"updatedTime": "2019-08-14T16:03:38.811Z",
"status": "ON",
"trigger": {
"type": "SCHEDULED_ABSOLUTE",
"scheduledTime": "2019-08-14T16:03:38.811Z",
"offsetInSeconds": 0,
"timeZoneId": "string",
"recurrence": {
"freq": "WEEKLY", //deprecated
"byDay": [ //deprecated
"SU"
],
"interval": 0
}
},
"alertInfo": {
"spokenInfo": {
"content": [
{
"locale": "string",
"text": "string"
}
]
}
},
"pushNotification": {
"status": "ENABLED"
},
"version": "string"
}
],
"links": "string"
}
Update a reminder
The skill invokes this API to update a reminder for the current skill.
Request
PUT /v1/alerts/reminders/{id}
Body of the request
timezoneId
field, ensure that you consider when the reminder will actually occur, as described in How time zones work.{
"createdTime": "2019-08-14T15:53:12.919Z",
"trigger": {
"type": "SCHEDULED_ABSOLUTE",
"scheduledTime": "2019-08-14T15:53:12.919Z",
"offsetInSeconds": 0,
"timeZoneId": "string",
"recurrence": {
"freq": "WEEKLY", //deprecated
"byDay": [ //deprecated
"SU"
],
"interval": 0
}
},
"alertInfo": {
"spokenInfo": {
"content": [
{
"locale": "string",
"text": "string"
}
]
}
},
"pushNotification": {
"status": "ENABLED"
}
}
Response
HTTP/1.1 200 OK
Body of the response
{
"alertToken": "string",
"createdTime": "2019-08-14T15:40:55.002Z",
"updatedTime": "2019-08-14T15:40:55.002Z",
"status": "ON",
"version": "string",
"href": "string"
}
Field | Description | Parameter Type |
---|---|---|
alertToken |
Unique id of this reminder alert. | string |
createdTime |
Valid ISO 8601 format - Created time of this reminder alert. | string |
updatedTime |
Valid ISO 8601 format - Last updated time of this reminder alert. | string |
status |
ON or COMPLETED . |
enum |
version |
Version of this reminder alert. | string |
href |
URI to retrieve the created alert. | string |
Delete a reminder
A skill invokes this API to delete a specified reminder for the current skill. This operation only deletes active reminders, and not completed ones.
The Alexa app shows completed reminders for three days after completion, after which they are automatically deleted.
Request
DELETE /v1/alerts/reminders/{id}
Response
HTTP/1.1 200 OK
Reminder object
Field | Description | Parameter Type |
---|---|---|
requestTime |
Created time of this reminder alert in valid ISO 8601 format. | string |
trigger |
Required. Trigger information for reminder. | object |
trigger.type |
One of: SCHEDULED_ABSOLUTE , SCHEDULED_RELATIVE . A reminder may be set for a specified time, or relative to the requestTime as calculated by the offsetInSeconds . |
enum |
trigger.scheduledTime |
Intended trigger time in valid ISO 8601 format. Used if the trigger.type is SCHEDULED_ABSOLUTE . |
string |
trigger.offsetInSeconds |
If trigger.type is SCHEDULED_RELATIVE , use this field to specify the time after which reminder will ring (in seconds) |
integer |
trigger.timeZoneId |
Intended reminder’s time zone. See this list of time zones | string |
alertInfo |
Alert information for VUI/GUI presentation of the reminder | object |
alertInfo.spokenInfo |
Required. VUI presentation of the reminder. Spoken and display information is the same. | object |
alertInfo.spokenInfo.content |
Content of the spoken and displayed information. alertInfo.spokenInfo.content.text for at least one locale is mandatory. |
string |
alertInfo.spokenInfo.content.locale |
Locale in which the spoken text is rendered. | One of the supported locales for Alexa, such as en-US . |
alertInfo.spokenInfo.content.text |
Spoken text in plain-text format. | string |
pushNotification |
Enable/disable push notifications of reminders to Alexa mobile apps. | object |
pushNotification.status |
One of: ENABLED , DISABLED . Default is ENABLED . |
enum |
How trigger times are calculated
Skills can set reminders in absolute or relative time.
Set these values by using a trigger.type
of either SCHEDULED_ABSOLUTE
or SCHEDULED_RELATIVE
.
Absolute calculations
Example: Your skill wants to set a reminder to a fixed pre-calculated time – for instance, to remind someone to take some medicine on June 1st at 7pm.
To set this reminder, use a SCHEDULED_ABSOLUTE
reminder and a fixed value for the mandatory scheduledTime
field.
"type" : "SCHEDULED_ABSOLUTE"
"scheduledTime" : "2019-06-01T19:00:00"
Relative calculations
Example: Your skill wants to set a reminder to a relative, duration-based time – for instance, to remind someone take medicine in one hour.
To set this reminder, use a SCHEDULED_RELATIVE
reminder. The ring time calculates by comparing the requestedTime
to the offsetInSeconds
that the skill sets.
"type" : "SCHEDULED_RELATIVE"
"offsetInSeconds" : 3600
How time zones work for reminder times
Case 1: set a reminder in the time zone of the device
If your skill wants to set the reminder in the same time zone of the device, you don't have to set the timezoneId
field.
The following example sets the reminder at 7 pm in the correct time zone of the device.
"scheduledTime" : "2019-06-01T19:00:00"
Case 2: Set a reminder in the time zone of the app
If your skill provides the date, time, and time zone of the desired reminder, you must set an appropriate timezoneId
field for when the reminder should occur.
The following example sets a reminder for a reservation on June 1st at 7pm in New York.
"scheduledTime" : "2019-06-01T19:00:00"
"timezoneId" : "America/New_York"
2019-06-01T19:00:00
in America/New_York
speaks and displays as 4 P.M PDT. Error messages
HTTP Status Code | Enum | Message |
---|---|---|
400 | 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. |
|
401 | 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. | |
403 | MAX_REMINDERS_EXCEEDED | Max limit of reminders on the device reached (for example, 500). |
DEVICE_NOT_SUPPORTED | Reminders are not supported on this device. | |
404 | ALERT_NOT_FOUND | Alert does not exist. |
409 | MISSING_TIME_ZONE | Device has no time zone set. |
429 | MAX_RATE_EXCEEDED | Requests are throttled at the rate of 25 TPS per skill. |
500 | INTERNAL_SERVER_ERROR | |
503 | SERVICE_UNAVAILABLE | |
504 | DEVICE_NOT_REACHABLE | Device not reachable/offline. |
Subscribe to reminder events
By subscribing to reminder events, your skill can be notified of these events without calling the Alexa Reminders API. Your skill can use account linking to integrate with an external app, and use notifications of these events to make changes in the app, 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 may arrive out of order. For example, if a reminder is updated twice, and the earlier update event arrives after the second update event, then the earlier update should be disregarded.
Alexa attempts to redeliver events if the skill service does not send an acknowledgment in response. The skill service cannot retrieve past events from Alexa, but must rely on the events being delivered.
For more details on subscribing to reminder events, see Skill events in Alexa skills.
apiEndpoint value used in event
This endpoint is https://api.amazonalexa.com
.
Reminder events in JSON format
Your skill can subscribe to reminder events. You set this up by configuring your skill.json
manifest file. For more details on this process, see Use Events in Your Skill Service.
You can set up the following reminder events.
ReminderStarted
Alexa generates the ReminderStarted
when a reminder starts ringing. The skill service can then take corresponding actions at the trigger time.
{
"version": "1.0",
"context": {
"System": {
"application": {
"applicationId": "<skill_id>"
},
"user": {
"userId": "amzn1.ask.account.VEBA...",
"accessToken": "<access_token>",
"permissions": {
"consentToken": "Atza|IgEB..."
}
},
"apiEndpoint": "https://api.amazonalexa.com"
}
},
"request": {
"type": "Reminders.ReminderStarted",
"requestId": "913e4588-62f9-4d5b",
"timestamp": "2017-09-15T01:46:14Z",
"body": {
"alertToken": "<alert-token-value>",
}
},
"session": {
"attributes": {}
}
}
ReminderCreated
Alexa generates the ReminderCreated
event after creating a reminder. Alexa sends this event to the skill that created the reminder, not the user who used the skill.
{
"version": "1.0",
"context": {
"System": {
"application": {
"applicationId": "<skill_id>"
},
"user": {
"userId": "amzn1.ask.account.VEBA...",
"accessToken": "<access_token>",
"permissions": {
"consentToken": "Atza|IgEB..."
}
},
"apiEndpoint": "https://api.amazonalexa.com"
}
},
"request": {
"type": "Reminders.ReminderCreated",
"requestId": "<requestId-value>",
"timestamp": "2017-09-15T01:46:14Z",
"body": {
"alertToken": "<alert-token-value>"
}
},
"session": {
"attributes": {}
}
}
ReminderDeleted
Alexa generates the ReminderDeleted
event after the user deletes a reminder. Alexa sends this event to the skill that created the reminder.
{
"version": "1.0",
"context": {
"System": {
"application": {
"applicationId": "<skill_id>"
},
"user": {
"userId": "amzn1.ask.account.VEBA...",
"accessToken": "<access_token>",
"permissions": {
"consentToken": "Atza|IgEB..."
}
},
"apiEndpoint": "https://api.amazonalexa.com"
}
},
"request": {
"type": "Reminders.ReminderDeleted",
"requestId": "<requestId-value",
"timestamp": "2017-09-15T01:46:14Z",
"body": {
"alertTokens": "[alert-token-values]"
}
},
"session": {
"attributes": {}
}
}
ReminderUpdated
Alexa generates the ReminderUpdated
event when a reminder updates. This event doesn't provide any details on the update, except for the current state of the reminder. To get further update details, the skill should use the Get all reminders API .
Possible updates include one of the following:
- Completed
- Turned on
Or, when a reminder:
- Has its trigger time updated.
- Has its label updated.
{
"version": "1.0",
"context": {
"System": {
"application": {
"applicationId": "<skill_id>"
},
"user": {
"userId": "amzn1.ask.account.VEBA...",
"accessToken": "<access_token>",
"permissions": {
"consentToken": "Atza|IgEB..."
}
},
"apiEndpoint": "https://api.amazonalexa.com"
}
},
"request": {
"type": "Reminders.ReminderUpdated",
"requestId": "913e4588-62f9-4d5b",
"timestamp": "2017-09-15T01:46:14Z",
"body": {
"status": "DEFERRED",
"alertToken": "09d9d7df-05be-438c-veba"
}
},
"session": {
"attributes": {}
}
}
ReminderStatusChanged
Alexa generates the ReminderStatusChanged
event when the reminder status changes.
Possible statuses include one of the following:
- On
- Completed
- Deferred
{
"version": "1.0",
"context": {
"System": {
"application": {
"applicationId": "<skill_id>"
},
"user": {
"userId": "amzn1.ask.account.VEBA...",
"accessToken": "<access_token>",
"permissions": {
"consentToken": "Atza|IgEB..."
}
},
"apiEndpoint": "https://api.amazonalexa.com"
}
},
"request": {
"type": "Reminders.ReminderStatusChanged",
"requestId": "913e4588-62f9-4d5b",
"timestamp": "2017-09-15T01:46:14Z",
"body": {
"status": "COMPLETED",
"alertToken": "09d9d7df-05be-438c-veba"
}
},
"session": {
"attributes": {}
}
}
Last updated: Oct 13, 2021