- Create the climate presets that you want to use in your weekly program.
- Create the daily programs that you want to use in your weekly program. In each daily program, define a set of time periods. For each of these time periods, specify the starting time for the period and the key that identifies the climate preset that you want to activate at the starting time.
- Update the weekly program on the thermostat. To define the weekly program, specify the configured daily program that you want to apply to each day of the week.
Daily Program Period Properties
Each daily program period contains the following properties:| Property | Description |
|---|---|
starts_at_time | Time at which the thermostat daily program period starts, in ISO 8601 format. |
climate_preset_key | Key of the climate preset to activate at the starts_at_time. |
Daily Program Properties
Each daily program contains the following properties:| Property | Description |
|---|---|
thermostat_daily_program_id | ID of the thermostat daily program. |
device_id | ID of the thermostat device on which the thermostat daily program is configured. |
name | User-friendly name to identify the thermostat daily program. |
periods | Array of thermostat daily program periods. |
created_at | Date and time at which the thermostat daily program was created. |
Weekly Program Properties
Each weekly program contains the following properties:| Property | Description |
|---|---|
device_id | ID of the thermostat device on which the weekly program is configured. |
monday_program_id | ID of the thermostat daily program to run on Mondays. |
tuesday_program_id | ID of the thermostat daily program to run on Tuesdays. |
wednesday_program_id | ID of the thermostat daily program to run on Wednesdays. |
thursday_program_id | ID of the thermostat daily program to run on Thursdays. |
friday_program_id | ID of the thermostat daily program to run on Fridays. |
saturday_program_id | ID of the thermostat daily program to run on Saturdays. |
sunday_program_id | ID of the thermostat daily program to run on Sundays. |
created_at | Date and time at which the thermostat weekly program was created. |
Create a Daily Program
To define a daily program, use/thermostats/daily_programs/create, specifying the thermostat that you want to program, a name for the daily program, and the desired set of daily program periods.
The following example creates a weekday daily program with four period, each of which is linked to a configured climate preset:
- JavaScript
- cURL
- Python
- Ruby
- PHP
- C#
Request:Response:
Update a Daily Program
To update a daily program, use/thermostats/daily_programs/update, specifying the ID of the daily program that you want to change. You can edit the name for the daily program and the desired replacement set of daily program periods. To delete a daily program period, simply omit it when specifying the complete set of replacement program periods for the daily program.
Updating a daily program returns an action attempt so that you can track the status of pushing this program change to the thermostat.
The following example changes the climate preset for the second period and the starting time of the third period:
- JavaScript
- cURL
- Python
- Ruby
- PHP
- C#
Request:Response:
Delete a Daily Program
To delete a daily program, use/thermostats/daily_programs/delete, specifying the ID of the daily program that you want to delete. You cannot delete a daily program that’s currently assigned to a weekly program.
- JavaScript
- cURL
- Python
- Ruby
- PHP
- C#
Request:Response:
Update the Weekly Program
You set or update the weekly program using/thermostats/update_weekly_program. In this command, specify the ID of the thermostat for which you want to set or update the weekly program, as well as the ID of the configured daily program that you want to use for each day of the week. You can use a different daily program for each day of the week, or you can assign the same daily program to multiple days. If you do not want to specify a program for a day, set the corresponding program ID parameter to null.
To replace a weekly program, use /thermostats/update_weekly_program, specifying the desired replacement daily program IDs. The new weekly program overwrites any previous weekly program. To clear all daily programs from the weekly program, set all daily program ID parameters to null.
Updating the weekly program returns an action attempt so that you can track the status of pushing this program change to the thermostat.
The following example assigns the same weekday program to each weekday and the same weekend program to each weekend day:
- JavaScript
- cURL
- Python
- Ruby
- PHP
- C#
Request:Response:

