Skip to content

createSchedule

POST
/api/v1/schedules
curl --request POST \
--url https://example.com/api/v1/schedules \
--header 'Content-Type: application/json' \
--cookie tilecast_session=<tilecast_session> \
--data '{ "name": "example", "description": "example", "playlistId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "layoutId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "displayAction": { "type": "display_power_on", "input": "example", "volume": 1, "brightness": 1 }, "type": "one_time", "timezone": "example", "priority": 1, "enabled": true, "startDate": "2026-04-15", "endDate": "2026-04-15", "oneTimeStart": "2026-04-15T12:00:00Z", "oneTimeEnd": "2026-04-15T12:00:00Z", "dailyStart": "example", "dailyEnd": "example", "daysOfWeek": [ 1 ], "targets": [ { "type": "screen", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example" } ] }'

Requires the Owner or Administrator role and an authenticated user with the write scope. Cookie requests also require CSRF. The request contains exactly one of playlistId, layoutId, or displayAction. Display Control actions use the closed typed command registry; display_probe is not schedulable.

Media typeapplication/json
object
name
required
string
description
string
playlistId
string format: uuid
layoutId
string format: uuid
displayAction

A bounded Display Control action. A schedule may contain one action instead of a playlist or Layout. The server validates that only the field belonging to the selected type is present.

object
type
required
string
Allowed values: display_power_on display_power_off display_set_input display_set_volume display_mute display_unmute display_set_brightness
input
string
/^[A-Za-z0-9._:-]{1,32}$/
volume
integer
<= 100
brightness
integer
<= 100
type
required
string
Allowed values: one_time weekly
timezone
required
string
priority
required
integer
enabled
required
boolean
startDate
string | null format: date
endDate
string | null format: date
oneTimeStart
string | null format: date-time
oneTimeEnd
string | null format: date-time
dailyStart
string | null
dailyEnd
string | null
daysOfWeek
Array<integer>
targets
required
Array<object>
object
type
required
string
Allowed values: screen group
id
required
string format: uuid
name
string

Validated schedule created

Media typeapplication/json
object
data
required
object
id
required
string format: uuid
name
required
string
description
required
string
playlistId
string format: uuid
playlistName
required
string
layoutId
string format: uuid
layoutName
string
presentationType
required
string
Allowed values: playlist layout display_control
type
required
string
Allowed values: one_time weekly
timezone
required
string
priority
required
integer
>= -999 <= 999
specificity
required
integer
enabled
required
boolean
startDate
string format: date
endDate
string format: date
oneTimeStart
string format: date-time
oneTimeEnd
string format: date-time
dailyStart
string
dailyEnd
string
daysOfWeek
required
Array<integer>
displayAction

A bounded Display Control action. A schedule may contain one action instead of a playlist or Layout. The server validates that only the field belonging to the selected type is present.

object
type
required
string
Allowed values: display_power_on display_power_off display_set_input display_set_volume display_mute display_unmute display_set_brightness
input
string
/^[A-Za-z0-9._:-]{1,32}$/
volume
integer
<= 100
brightness
integer
<= 100
targets
required
Array<object>
object
type
required
string
Allowed values: screen group
id
required
string format: uuid
name
string
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
Example
{
"data": {
"presentationType": "playlist",
"type": "one_time",
"displayAction": {
"type": "display_power_on"
},
"targets": [
{
"type": "screen"
}
]
}
}

Authentication required

Role, scope, or cookie CSRF requirement not met

Schedule or target validation failed