---
title: "Save an Installed App Schedule"
method: POST
path: "/installedapps/{installedAppId}/schedules"
tags: ["Schedules"]
---

# Save an Installed App Schedule

`POST /installedapps/{installedAppId}/schedules`

## Request

- Base URL: `https://api.smartthings.com/v1`
- URL: `https://api.smartthings.com/v1/installedapps/{installedAppId}/schedules`
- Auth: OAuth 2
  - Implicit: `https://auth-global.api.smartthings.com`
  - Scopes: `w:schedules`
- TypeScript: <https://skmtc.dev/smartthings/apis/smartthings-api/docs/installedapps/:installedAppId/schedules/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a schedule for an installed app. The installed app must be in the location specified and the installed app must have permission to create schedules.

## Request body

- ScheduleRequest
  - `name` string, ^[A-Za-z0-9._\-]{1,36}$, required: The unique per installed app name of the schedule.
  - `once` OnceSchedule
    - `time` integer, required: The time in millis from jan 1 1970 UTC for ONCE schedules. Must be less than 2 years from now.
    - `overwrite` boolean
  - `cron` CronSchedule
    - `expression` string, required: The cron expression for the schedule for CRON schedules. The format matches that specified by the [Quartz scheduler](http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html) but should not include the seconds (1st) field. The exact second will be chosen at random but will remain consistent. The years part must be les than 2 years from now.
    - `timezone` string, required: The timezone id for CRON schedules.

## Response `200`

The created schedule.

- Schedule
  - `name` string, ^[A-Za-z0-9._\-]{1,36}$, required: The unique per installed app name of the schedule.
  - `installedAppId` string, uuid: The ID of the installed app.
  - `locationId` string, uuid: The ID of the location the installed app is in.
  - `userUuid` string, uuid: The UUID of the user who created the schedule.
  - `scheduledExecutions` integer[]: List of scheduled execution times in millis from jan 1 1970 UTC
  - `cron` CronSchedule
    - `expression` string, required: The cron expression for the schedule for CRON schedules. The format matches that specified by the [Quartz scheduler](http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html) but should not include the seconds (1st) field. The exact second will be chosen at random but will remain consistent. The years part must be les than 2 years from now.
    - `timezone` string, required: The timezone id for CRON schedules.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `422`: Unprocessable Entity
- `429`: Too many requests
- `default`: Unexpected error

---

[API](https://skmtc.dev/smartthings/apis/smartthings-api.md) - [All operations](https://skmtc.dev/smartthings/apis/smartthings-api/llms.txt) - [OpenAPI document](https://skmtc.dev/smartthings/apis/smartthings-api/revisions/2788a4236800?raw)
