createSchedule
const url = 'https://example.com/api/v1/schedules';const options = { method: 'POST', headers: { cookie: 'tilecast_session=<tilecast_session>', 'Content-Type': 'application/json' }, body: '{"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"}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
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
object
Responses
Section titled “ Responses ”Validated schedule created
object
object
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
object
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