Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Get started
Connect with Matter
Alexa Connect Kit
Add-ons
Certify
Resources
Skip to main content
Implement the Alexa.ThermostatController.Schedule interface in your Alexa add-on so that customers can define schedules for their thermostat. A customer can set up the temperature schedule on the device or in the Alexa app. Typically, you use the Alexa.ThermostatController.Schedule interface with the Alexa.ThermostatController and Alexa.TemperatureSensor interfaces. For the list of locales that the Alexa.ThermostatController.Schedule interface supports, see List of Alexa Interfaces and Supported Languages. For the definitions of the message properties, see Alexa Interface Message and Property Reference.

Utterances

The Alexa.ThermostatController.Schedule interface is different from other Alexa interfaces. Your add-on doesn’t support voice user interactions with Alexa directly. Instead, Alexa communicates with your add-on to set and get thermostat schedules. This interface doesn’t have any user utterances.

Properties and objects

The Alexa.ThermostatController.Schedule interface includes the following properties and objects.

Reportable properties

The following table shows the properties that the Alexa.ThermostatController.Schedule interface defines. You identify the properties that you support in your discovery response. All the properties are optional. Include only the properties that match the features of your thermostat device.
PropertyDescriptionType
adaptiveRecoveryEnabledUsed to enable or disable pre-heating and pre-cooling within the schedule. For example, before the next schedule begins, the heating, ventilation, and air conditioning (HVAC) system turns on the heat to try to meet the target temperature at the start of the next schedule.Boolean
scheduleEnabledUsed to enable or disable the thermostat schedule.Boolean

WeeklySchedule object

The WeeklySchedule object defines the schedule that your thermostat device follows.
PropertyDescriptionTypeRequired
temperatureScalePreferred temperature scale configured on the thermostat. This value is usually the same as the temperatureScale property in the Alexa.ThermostatController.Configuration interface.StringYes
MondayIndicates the schedule for Monday.Array of ScheduleEntry objectsYes
TuesdayIndicates the schedule for Tuesday.Array of ScheduleEntry objectsYes
WednesdayIndicates the schedule for Wednesday.Array of ScheduleEntry objectsYes
ThursdayIndicates the schedule for Thursday.Array of ScheduleEntry objectsYes
FridayIndicates the schedule for Friday.Array of ScheduleEntry objectsYes
SaturdayIndicates the schedule for Saturday.Array of ScheduleEntry objectsYes
SundayIndicates the schedule for Sunday.Array of ScheduleEntry objectsYes

ScheduleEntry object

The ScheduleEntry object defines the details of the thermostat temperature setting at a particular time of the day. The schedule entry doesn’t include an end time. The time ends when the next schedule entry begins.
PropertyDescriptionTypeRequired
startTimeInMinutesIndicates the start time for the temperature change, expressed in number of minutes from the start of day. For example, 300 minutes is 5:00 AM. Valid values: 0 – 1439.IntegerYes
setpointsDefines the target temperature for the living space to reach and maintain until the next schedule entry.SetPoints objectYes
fanSettingIndicates the operational setting of the fan.FanSetting objectNo
activityTypeIndicates the type of activity that causes the temperature change.ActivityType objectNo

SetPoints object

The SetPoints object defines the target temperature for the living space.
PropertyDescriptionType
upperSetpointIndicates that the thermostat should maintain the temperature below this setpoint.Temperature
lowerSetpointIndicates that the thermostat should maintain the temperature above this setpoint.Temperature

FanSetting object

The FanSetting object defines the fan operating mode.
PropertyDescriptionType
modeIndicates the operational setting on the fan. For example, CIRCULATE indicates that the fan runs at random intervals.
If the mode isn’t specified, the HVAC system uses the manufacturer default setting.
Valid values: ON, AUTO, CIRCULATE.
String

ActivityType object

The ActivityType object enables the user to set a schedule based on the type of activity.
PropertyDescriptionType
typeIndicates the type of activity.
Valid values: AWAY, HOME, SLEEP.
String

Discovery

You describe endpoints that support Alexa.ThermostatController.Schedule by using the standard discovery mechanism described in Alexa.Discovery. Set retrievable to true for the properties that you report when Alexa sends your add-on a state report request. Set proactivelyReported to true for the properties that you proactively report to Alexa in a change report. Use THERMOSTAT for the display category. For the full list of display categories, see display categories.

Configuration object

In addition to the usual discovery response fields, for Alexa.ThermostatController.Schedule, include a configuration object that contains the following fields.
PropertyDescriptionTypeRequired
supportedFanModesIndicates the supported operating modes of the fan.
Valid values: ON, AUTO, CIRCULATE.
Array of stringsYes
supportsAdaptiveRecoveryIndicates supports for pre-heating or pre-cooling.BooleanYes
maxEntryPerDayMaximum number of schedule entries for each day. If the restriction is complex, you can validate the schedule in your add-on or device.IntegerNo

Discover response example

The following example shows a Discover.Response message for an Alexa add-on that accepts thermostat configuration and supports the Alexa.ThermostatController, and Alexa.EndpointHealth interfaces. In this example, the thermostat device supports adaptive recovery.

Directives

Alexa sends the following Alexa.ThermostatController.Schedule interface directives to your add-on.

SetWeeklySchedule directive

Support the SetWeeklySchedule directive so that you can get the schedule that the customer configured during the thermostat setup or later in the Alexa app.

SetWeeklySchedule directive example

The following example shows a SetWeeklySchedule directive that Alexa sends to your add-on.

SetWeeklySchedule directive payload

The following table shows the payload details for the SetWeeklySchedule directive that Alexa sends to your add-on.
PropertyDescriptionTypeRequired
weeklyScheduleIndicates the schedule that the thermostat device follows for each day of the week.WeeklySchedule objectNo

SetWeeklySchedule response

If you handle a SetWeeklySchedule directive successfully, respond with an Alexa.Response event. A successful response confirms that the endpoint completed the requested action.

SetWeeklySchedule directive error handling

If you can’t handle a SetWeeklySchedule directive successfully, don’t change the schedule on the device and respond with an Alexa.ThermostatController.Schedule.ErrorResponse event. You can also respond with a generic Alexa.ErrorResponse event if your error isn’t specific to thermostats.

SetScheduleState directive

Support the SetScheduleState directive so that customers can enable and disable the thermostat schedule. You must save the previously set schedule so that the customer can enable the schedule again.

SetScheduleState directive example

The following example shows a SetScheduleState directive that Alexa sends to your add-on.

SetScheduleState directive payload

The following table shows the payload details for the SetScheduleState directive.
PropertyDescriptionTypeRequired
scheduleEnabledIndicates whether to enable (true) or disable (false) the thermostat schedule.BooleanYes

SetScheduleState response

If you handle a SetScheduleState directive successfully, respond with an Alexa.Response event. A successful response confirms that the endpoint completed the requested action.

SetScheduleState directive error handling

If you can’t handle a SetScheduleState directive successfully, respond with an Alexa.ThermostatController.Schedule.ErrorResponse event. You can also respond with a generic Alexa.ErrorResponse event if your error isn’t specific to thermostats.

SetAdaptiveRecovery directive

If your device supports adaptive recovery, Alexa sends the SetAdaptiveRecovery directive so that customers can enable or disable pre-heating and pre-cooling.

SetAdaptiveRecovery directive example

The following example shows a SetAdaptiveRecovery directive that Alexa sends to your add-on.

SetAdaptiveRecovery directive payload

The following table shows the payload details for the SetAdaptiveRecovery directive.
PropertyDescriptionTypeRequired
adaptiveRecoveryEnabledIndicates whether to enable (true) or disable (false) adaptive recovery.BooleanYes

SetAdaptiveRecovery response

If you handle a SetAdaptiveRecovery directive successfully, respond with an Alexa.Response event. A successful response confirms that the endpoint completed the requested action.

SetAdaptiveRecovery directive error handling

If you can’t handle a SetAdaptiveRecovery directive successfully, respond with an Alexa.ThermostatController.Schedule.ErrorResponse event. You can also respond with a generic Alexa.ErrorResponse event if your error isn’t specific to thermostats.

State reporting

Alexa sends a ReportState directive to request information about the state of an endpoint. When Alexa sends a ReportState directive, you send a StateReport event in response. The response contains the current state of all retrievable properties in the context object. You identify your retrievable properties in your discovery response. For details about state reports, see Understand State and Change Reporting.

StateReport response example

In this example, the thermostat device supports both setupState and temperatureScale.

Change reporting

You send a ChangeReport event to report changes proactively in the state of an endpoint. You identify the properties that you proactively report in your discovery response. For details about change reports, see Understand State and Change Reporting. The payload contains the values of properties that have changed, the context contains the values of other relevant properties.

ChangeReport event example

The following example shows a ChangeReport after the customer disables the schedule.
Last modified on September 30, 2026