Skip to the content.

Schedules

Tools for managing schedules. A schedule defines time-based rules that determine when playlists, templates, or campaigns play on devices.


list_schedules

List all schedules in the account. Returns schedule objects with id, name, type, group assignment, and device targets.

Parameter Type Required Description
group_id string No Filter by schedule group ID
device_id string No Filter by target device ID
take number No Results per page
page number No Page number (1-based)

get_schedule

Get a schedule by ID including its time entries and device assignments. Returns the schedule’s name, type (Playlist, Template, or Campaign), content reference, playback rules, and assigned device IDs.

Parameter Type Required Description
id string Yes The schedule ID

create_schedule

Create a schedule via the GraphQL createSchedule mutation. A schedule plays a playlist or template — or, for CAMPAIGN (Smart Schedule), content chosen by conditions — on devices. Returns the created schedule; on failure validationErrors lists each rejected condition with its index and field.

Parameter Type Required Description
name string Yes Schedule name
type PLAYLIST | TEMPLATE | CAMPAIGN Yes Content type
priority LOWEST … HIGHEST No Resolves overlapping schedules (default NORMAL)
groupId string No Schedule group (folder) id
tags string[] No Tags
playlistId string When type = PLAYLIST Playlist to play
templateId string When type = TEMPLATE Template to play
timing object No Recurring window: { startDate, endDate (yyyy-MM-dd), startTime, endTime (HH:mm:ss), days: DayOfWeek[] }. Omit for always-eligible
deviceIds string[] No Devices assigned directly. Campaign schedules usually target devices with Where conditions instead
conditions condition[] No Smart-schedule conditions — see below

Conditions

Each condition is { type, operator?, value1?, value2?, value3?, value4? }. operator (AND, OR, AND_NOT, OR_NOT) combines with the previous condition and is ignored on the first. Value meanings depend on type; run introspect_schema({ typeName: "ConditionType" }) for the full 46-type reference. The common ones:

Group Type Values
Where EVERYWHERE / NOWHERE none
Where SPECIFIC_DEVICE value1 = device id
Where DEVICE_BY_GROUP / DEVICE_BY_NESTED_GROUP value1 = device group id
Where DEVICE_BY_TAG value1 = newline-delimited tags
Where DEVICE_BY_NAME value1 = name or .NET regex
When DATE_RANGE / TIME_RANGE value1 = start, value2 = end ("MM/dd/yyyy hh:mm:ss tt" or ISO 8601)
When DAYS_OF_WEEK value1 = bitfield, Sun=1 Mon=2 Tue=4 Wed=8 Thu=16 Fri=32 Sat=64
When ALWAYS / NEVER none (NEVER disables a schedule without deleting it)
What (Campaign only) SPECIFIC_PLAYLIST / SPECIFIC_TEMPLATE value1 = id
What (Campaign only) PLAYLIST_BY_TAG / TEMPLATE_BY_TAG value1 = newline-delimited tags
Audience PCT_MALE, PCT_FEMALE, PCT_ADULT, … value1 = 0-100, value2 = optional comparison operator

Example — weekday business-hours playlist on two lobby displays:

{
  "name": "Lobby loop",
  "type": "PLAYLIST",
  "playlistId": "<playlist-id>",
  "timing": { "startTime": "08:00:00", "endTime": "18:00:00", "days": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"] },
  "deviceIds": ["<device-id>", "<device-id>"]
}

update_schedule

Update a schedule via the GraphQL updateSchedule mutation. type and priority are required by the API on every update. deviceIds and conditions replace the existing assignments/conditions when supplied, so read the schedule first (get_schedule) if you are editing them. tags: null or [] clears the tags. Changing type requires the matching templateId / playlistId.

Parameter Type Required Description
id string Yes The schedule id
type PLAYLIST | TEMPLATE | CAMPAIGN Yes Content type
priority LOWEST … HIGHEST Yes Schedule priority
name string No Schedule name
tags string[] | null No null / [] clears

Plus groupId, playlistId, templateId, timing, deviceIds and conditions as in create_schedule.


delete_schedule

Permanently delete a schedule together with its conditions and device assignments. Cannot be undone; devices assigned to it stop receiving its content. To disable a schedule without deleting it, update it with a NEVER condition instead.

Parameter Type Required Description
id string Yes The schedule id

Back to Home