Scheduler
You can use API commands to query, create, delete, update, skip, or restore events and groups.
You can also apply tags to identify events and batch-process them later.
Prerequisites
All examples in this section use the Standard authentication method, which requires:
Setting Authentication Method to Standard (under Advanced Settings → Admin).
Setting a RESTful API Password (under Advanced Settings → Admin).
Ensuring your computer’s time zone matches the device’s time zone.
The HMAC timestamp validation required by Standard API authentication must fall within the timestamp tolerance, which is controlled by
api.auth.tsvar(30 seconds by default).
Note
If you want to use the Basic authentication in API calls, include an authentication payload by encoding the RESTFUL API username (admin) and password in Base64.
Scheduler API Commands
You can use API commands to query, create, delete, update, skip or restore events and groups.
Note
You can combine multiple API requests into a single command. For example, you can create one event and delete another in the same request.
If any operation in a request fails, the entire transaction is rolled back and no changes are committed.
Use HTTPS with the Standard or Basic authentication method.
Retrieve All Schedules
Retrieve the full Scheduler database, including events, groups, and events inside each group.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
GET /api/schedules
Parameters
None.
Sample Request Format
curl -X GET \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
https://10.12.123.12/api/schedulesResponse Format
{
"format": "v2.0",
"groups": [
<Group>
],
"events": [
<Event>
]
}Example Response
{
"format": "v2.0",
"events": [
{
"enabled": 1,
"api_call": [],
"greyed_out_date": "",
"tag": "",
"start_time": "12:00",
"duration": "",
"exdate": "",
"evid": 1,
"extension": "",
"mgroup": "NULL",
"audio": "bell-na.wav",
"event_type": "play_tone",
"dtmf": "2",
"name": "Lunch Break",
"auto_remove": 0,
"rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
"start_date": "2026-09-01",
"color": "#ff8800",
"zone": 1,
"rdate": ""
}
],
"groups": [
{
"color": "#dd036d",
"rdate": "",
"groupid": 1,
"start_date": "2026-02-25",
"rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
"name": "School Day",
"events": [
{
"enabled": 1,
"api_call": [],
"greyed_out_date": "",
"tag": "",
"start_time": "08:00:00",
"duration": "",
"exdate": "",
"evid": 2,
"extension": "",
"audio": "bell-na.wav",
"event_type": "play_tone",
"rdate": "",
"name": "Morning Bell",
"auto_remove": 0,
"rrule": "",
"start_date": "",
"color": "#dd036d",
"zone": 1,
"dtmf": ""
}
]
}
]
}Retrieve Scheduled Event Instances Within a Date Range
Retrieve scheduled event instances within a specified date range.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
GET /api/schedules?events=<date>&days=<number>
Parameters
Element | Description | Format / Type | Required | Note |
|---|---|---|---|---|
| Start date. | String (YYYY-MM-DD) | Required | |
| Number of days to return. | Integer | Required | Default value: 1 |
Sample Request: Query 7-day schedules starting from today
curl -X GET `
-H "Authorization: hmac <user>:<nonce>:<digest>" `
https://10.12.123.12/api/schedules?events=&days=7Sample Request: Query 7-day schedules starting from a specified date
curl -X GET \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
https://10.12.123.12/api/schedules?events=2026-02-15&days=7Example Response:
{
"format": "v2.0",
"events": {
"2026-02-15": [],
"2026-02-16": [],
"2026-02-17": [],
"2026-02-18": [],
"2026-02-19": [
{
"evid": 9,
"color": "#88fc0b",
"name": "Emergency Alert",
"start_time": "13:13:00",
"skipped": 0
}
],
"2026-02-20": [
{
"evid": 9,
"color": "#88fc0b",
"name": "Emergency Alert",
"start_time": "13:13:00",
"skipped": 0
}
],
"2026-02-21": [
{
"evid": 9,
"color": "#88fc0b",
"name": "Emergency Alert",
"start_time": "13:13:00",
"skipped": 0
}
]
}
}Create Stand-Alone Events
Create standalone events.
Note
Don’t specify
evidwhen creating new events. Otherwise, if an event with the specifiedevidalready exists, the existing event is updated instead, regardless where is its location.
The event type is decided by event_type :
play_tone: Creates a Play Tone event. An event IDevidis automatically created.stream_audio: Creates a Stream Audio event. An event IDevidis automatically created.sip_call: Creates a SIP Call with Tone event. An event IDevidis automatically created.api_call: Creates an API Call event. An event IDevidand API Call IDsactidare automatically created. You can add up to 5 API calls in one API Call event.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
POST /api/schedules
Parameters
Refer to the following links for the event structure and parameters required by each event type:
Sample Request: Create a standalone Play Tone event
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
-d '{
"events": [
{
"event_type": "play_tone",
"name": "Lunch Bell",
"start_time": "12:00",
"zone": 1,
"audio": "bell-na.wav",
"start_date": "2026-09-01",
"rrule": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR",
"rdate": "",
"exdate": "",
"color": "#ff8800"
}
]
}' \
https://10.12.123.12/api/schedulesSample Response
{
"rdate": "",
"duration": "",
"greyed_out_date": "",
"evid": 13,
"exdate": "",
"auto_remove": 0,
"extension": "",
"start_date": "2026-09-01",
"start_time": "12:00",
"zone": 1,
"color": "#ff8800",
"enabled": 1,
"tag": "",
"api_call": [],
"name": "test",
"audio": "bell-na.wav",
"event_type": "play_tone",
"dtmf": "",
"rrule": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"
}Update Events
Update specified events. The target events are identified by the provided evid.
Note
If no
evidoractidare provided, or if the IDs are invalid, new events are created based on the specifiedevent_type.Include only the parameters you want to modify. All other parameters remain unchanged.
To update an API Call event, provide at least two IDs:
evid: The ID of its host event.
actid: The ID for the API calls.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
POST /api/schedules
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
| Create or update events | Array of events | Required | You must specify a valid |
Sample Request: Update an API Call event payload
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
-d '{
"events": [
{
"evid": 1,
"api_call": [
{
"actid": 1,
"payload": "{\"path\":\"chime.wav\",\"loop\":false}"
}
]
}
]
}' \
https://10.12.123.12/api/schedulesSample Response
{
"events": [
{
"evid": 1,
"api_call": [
{
"actid": 1,
"payload": "{\"path\":\"chime.wav\",\"loop\":false}"
}
]
}
]
}Create a Group
Create a group of events.
Note
Don’t specify
groupidwhen creating a new group. Otherwise, if a group with the specifiedgroupidalready exists, the existing group is updated instead.Don’t specify
evidwhen adding new events to the group. Otherwise, if an event with the specifiedevidalready exists, the existing event is updated instead, regardless where is its location.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
POST /api/schedules
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
| Create groups with nested events | Array of groups | Required |
To add events to a group, refer to the following links for the event structure and parameters required by each event type:
Request Format
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
-d '{
"groups": [
{
...
"events": [
{
"event_type": "play_tone",
...
},
{
"event_type": "sip_call",
...
}
]
}
]
}' \
"https://10.12.123.12/api/schedules"Sample Body Request
{
"groups": [
{
"name": "Morning Music",
"color": "#3366ff",
"start_date": "2026-02-21",
"rrule": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR",
"rdate": "",
"events": [
{
"event_type": "play_tone",
"name": "Start of Day",
"enabled": true,
"start_time": "08:30",
"duration": 30,
"zone": 1,
"audio": "bell-na.wav",
"color": "#33cc99"
},
{
"event_type": "api_call",
"name": "Notify PA",
"enabled": true,
"start_time": "08:50",
"color": "#33cc99",
"api_call": [
{
"method": "POST",
"target": "https://10.0.0.10",
"path": "/api/controls/tone/start",
"header": "Content-Type: application/json",
"payload": "{\"path\":\"chime.wav\",\"loop\":false,\"mcast\":false}"
}
]
}
]
}
]
}Sample Response
{
"groups": [
{
"name": "Morning Music",
"groupid": 1,
"rrule": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR",
"events": [
{
"audio": "bell-na.wav",
"duration": 30,
"start_time": "08:30",
"name": "Start of Day",
"evid": 2,
"event_type": "play_tone",
"enabled": true,
"color": "#33cc99",
"zone": 1
},
{
"enabled": true,
"evid": 3,
"api_call": [
{
"actid": 2,
"method": "POST",
"payload": "{\"path\":\"chime.wav\",\"loop\":false,\"mcast\":false}",
"header": "Content-Type: application/json",
"target": "https://10.0.0.10",
"path": "/api/controls/tone/start"
}
],
"event_type": "api_call",
"start_time": "08:50",
"color": "#33cc99",
"name": "Notify PA"
}
],
"rdate": "",
"start_date": "2026-02-21",
"color": "#3366ff"
}
]
}Update Groups
Update an existing group or its nested events. The target groups and events are identified by the provided groupid and event IDs (evid or actid).
Note
If no IDs are provided, or if the IDs are invalid, new group or event instances are created.
Include only the parameters you want to modify. All other parameters remain unchanged.
To update an API Call event in a group, provide at least these IDs:
groupid: The ID of the host group.
evid: The ID of its host event.
actid: The ID for the API calls.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
POST /api/schedules
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
| Create groups with nested events. | Array of groups. | Required | You must specify a valid |
Sample Request: Update a group by groupid
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
-d
'{
"groups": [
{
"groupid": 1,
"rrule": "FREQ=WEEKLY;BYDAY=MO,FR"
}
],
"events": [
{
"name": "Open Day",
"evid": 2
}
]
}' \
https://10.12.123.12/api/schedules
Sample Response
{
"events": [
{
"evid": 2,
"name": "Open Day"
}
],
"groups": [
{
"rrule": "FREQ=WEEKLY;BYDAY=MO,FR",
"groupid": 1
}
]
}Delete Events or Groups
Delete events or groups by specifying their IDs.
Note
When you delete a group, all events it contains are also deleted.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
POST /api/schedules
Parameters
Element | Description | Format / Type | Required | Note |
|---|---|---|---|---|
| Delete events or groups. | Array of objects. | Required | Specify the target event or group IDs:
|
Sample Request: Delete a group and an API Call event
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
-d '
{
"delete": [
{
"groupid": 1
},
{
"actid": 3
}
]
}' \
https://10.12.123.12/api/schedulesSample Response
{
"delete": [
{
"groupid": 1
},
{
"actid": 3
}
]
}Exclude Event or Group Instances from a Specified Date
Remove instances of the specified event or group on a specified date.
Excluded events or group instances do not appear in the Calendar, but they can be restored if needed.
Note
This command does not modify the event definition itself.
Use
evid: -1to target all events (including both standalone events and events inside groups) that have an occurrence on the specified date.When using
evid: -1, the response includesaffected_eventswhich lists all available events.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
POST /api/schedules
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
| Remove event instances on a specified date. | Array of objects. | Required |
|
Sample Request: Exclude event instances on a specified date
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
-d '{"exclude":[{"evid":4,"exdate":"2026-09-01"}]}' \
https://10.12.123.12/api/schedulesSample Response
{
"exclude": [
{
"evid": 4,
"exdate": "2026-09-01"
}
]
}Restore Excluded Event or Group Instances
Restore excluded event or group instances on a specified date.
Note
This command does not modify the event or group definition itself.
Use
evid: -1to target all events (including both standalone events and events inside groups) that have an occurrence on the specified date.When using
evid: -1, the response includesaffected_eventswhich lists all available events.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
POST /api/schedules
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
| Restore event or group instances on a specified date. | Array of objects. | Required |
|
Sample Request: Restore event instances on a specified date
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
-d '{
"remove_exclude": [
{
"evid": 4,
"date": "2026-09-01"
}
]
}' \
https://10.12.123.12/api/schedulesSample Response
{
"remove_exclude": [
{
"date": "2026-09-01",
"evid": 4
}
]
}
Skip Event or Group Instances
Remove event or group instances from a specified date.
Skipped events or groups still appear in the Calendar and can be restored if needed.
Note
This command does not modify the event definition itself.
Use
evid: -1to target all events (including both standalone events and events inside groups) that have an occurrence on the specified date.When using
evid: -1, the response includesaffected_eventswhich lists all available events.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
POST /api/schedules
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
| Skip event or group instances on a specified date. | Array of objects. | Required |
|
Sample Request: Skip a group instance from a specified date
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
-d '{"skip":[{"groupid":101,"date":"2025-12-01"}]}' \
https://10.12.123.12/api/schedulesSample Response
{
"skip": [
{
"groupid": 101,
"date": "2025-12-01"
}
]
}
Restore Skipped Event or Group Instances
Restore skipped event or group instances.
Note
This command does not modify the event or group definition itself.
Use
evid: -1to target all events (including both standalone events and events inside groups) that have an occurrence on the specified date.When using
evid: -1, the response includesaffected_eventswhich lists all available events.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
POST /api/schedules
Parameters
Element | Description | Type | Required | Notes |
|---|---|---|---|---|
| Restore event or group instances on a specified date.. | Array of objects | Required |
|
Sample Request: Restore all skipped events for the specified day
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
-d '{
"remove_skip": [
{
"evid": -1,
"date": "2026-03-09"
}
]
}' \
https://10.12.123.12/api/schedules
Sample Response
Note
The response returns all events for the day with its latest state (regardless if they are skipped or not before the change).
{
"remove_skip": [
{
"evid": -1,
"date": "2026-03-09",
"affected_events": [
{
"start_time": "00:00:00",
"name": "Start a strobe",
"evid": 1,
"recurrent": 1,
"skipped": 0,
"color": "#cdebfa"
},
{
"skipped": 0,
"group": "Morning Music",
"group_color": "#3366ff",
"color": "#33cc99",
"name": "Open Day",
"recurrent": 1,
"groupid": 1,
"start_time": "08:30",
"evid": 2
},
{
"skipped": 0,
"group": "Morning Music",
"group_color": "#3366ff",
"color": "#33cc99",
"name": "Notify PA",
"recurrent": 1,
"groupid": 1,
"start_time": "08:50",
"evid": 3
}
]
}
]
}Apply Tags to Events
You can use tags to identify events and batch manage them later.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
POST /api/schedules
Parameters
Element | Description | Type | Required |
|---|---|---|---|
| Action to perform. | Array of objects | Required |
| Event tag. | String | Required |
Sample Request: Add the tag “Test” to an existing event
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
-d '{
"events": [
{
"evid": 1,
"tag": "Test"
}
]
}' \
https://10.12.123.12/api/schedules
Sample Response
{
"events": [
{
"evid": 1,
"tag": "Test"
}
]
}Delay the Start of an Event
You can use delay to postpone the triggering of events after its creation time.
Note
If you specify
delay, don’t set thestart_dateandstart_time. Otherwise, the schedule fails.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
POST /api/schedules
Parameters
Element | Description | Type | Required | Note |
|---|---|---|---|---|
| Action to perform. | Array of objects | Required | |
| Postpone the event triggering time in seconds. | Integer | Required | To ensure the event is entered into the Scheduler in time to be activated, set the delay time to at least 10 seconds. |
Sample Request: Trigger an event one minute after its creation
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
-d '{
"events": [
{
"name": "DELAYED TIMER",
"color": "#ffcc99",
"event_type": "play_tone",
"audio": "bell-na.wav",
"delay": "20",
"auto_remove": 1
}
]
}' \
https://10.12.123.12/api/schedules
Sample Response
{
"events": [
{
"start_date": "2026-02-03",
"audio": "bell-na.wav",
"name": "DELAYED TIMER",
"event_type": "play_tone",
"delay": "20",
"color": "#ffcc99",
"auto_remove": 1,
"start_time": "10:29:09",
"evid": 12
}
]
}Batch Manage Events Using Tags
You can use tags to batch manage events, including:
delete: Delete events.exclude: Exclude a date.remove_exclude: Re-add the excluded date.skip: Skip events.remove_skip: Restore skipped events.
Applicable Products: 8301, 8305
Minimum Firmware Version: 5.7
URI
POST /api/schedules
Parameters
Element | Description | Type | Required |
|---|---|---|---|
| Action to perform. | Array of objects | Required |
| Event tag. | String | Required |
Sample Request: Skip all events tagged as “Test” on a specified date
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: hmac <user>:<nonce>:<digest>" \
-d '{
"skip": [
{
"tag":"Test",
"date": "2026-12-01"
}
]
}' \
https://10.12.123.12/api/schedules
Sample Response
{
"skip": [
{
"date": "2026-12-01",
"tag": "Test"
}
]
}Event Structure
Refer to the following section for the structure and available parameters for different event types.
Event Structure: Play Tone
This table shows parameters available to the event type Play Tone.
Element | Description | Type | Required | Note |
|---|---|---|---|---|
| Specifies the API call(s) to execute. | String | N/A | If an event includes |
| The audio file to play. | String | Required | Valid values:
|
| Deletes all instances of the event or group after it is triggered. | Boolean or | Optional | Default value: 0. This can be used to remove temporary schedules intended for testing purposes. |
| The color of the event to display on the Calendar. | String (Hex color value) | Required | If not specified, a unique color is assigned automatically for each new event. |
| Postpone the event triggering time in seconds. | Integer | Optional | if specified, the event starts after the specified
|
| The DTMF tone to play before the tone. | Integer | Optional | Used only when the following configuration is set: Advanced Settings → Advanced Audio → Play DTMF Tones Before Pages/Alerts and set Alert Specific for DTMF Tone(s). |
| The duration of this event in seconds. | Integer | N/A | Don’t specify. It’s generated automatically. |
| Whether this event is enabled. | Boolean or | Optional | Default value: 1 |
| The event type. | Enum | Required | Valid values:
|
| The unique ID of the event. | Integer | Optional | Leave it empty to create a new event. Specify the ID to update an existing event. |
| Specifies dates to exclude from the recurrence set generated by | String (YYYY-MM-DD) | Optional | |
| The target SIP extension. | Integer | N/A | |
| Days that have skipped events or groups. | String (YYYY-MM-DD) | N/A | Don’t specify. It’s generated automatically. |
| Poly page group ID. | Integer | N/A | Specify the target Poly page group ID when you have set Multicast Type to one of the following in Basic Settings → Multicast:
|
| The name of the event. | String | Required | |
| Specifies additional dates on which the event occurs, beyond those defined by | String (YYYY-MM-DD) | N/A | |
| Defines the recurrence pattern of a repeating event, including the frequency and optional rule components such as | String | Required | Must include Valid
No whitespace allowed. |
| The start date of the event. | String (YYYY-MM-DD) | Required | |
| The start time of the event. | String (HH-MM:SS) | Required | |
| An optional identifier for events. This identifier can be used to perform actions on multiple events at once. | String | Optional | You can use tags to batch manage events, including:
|
| The target multicast zone. | Integer | Optional | Specify the target multicast zone when you have set Multicast Type to one of the following in Basic Settings → Multicast:
|
Example:
{
"zone": 1,
"api_call": [],
"event_type": "play_tone",
"audio": "bell-na.wav",
"name": "Lunch Break",
"auto_remove": 0,
"enabled": 1,
"duration": "",
"rdate": "",
"tag": "",
"color": "#ff8800",
"exdate": "",
"evid": 1,
"start_date": "2026-09-01",
"greyed_out_date": "",
"rrule": "FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR",
"extension": "",
"start_time": "12:00",
"dtmf": "2",
"mgroup": "NULL"
}
Event Structure: Stream Audio
This table shows parameters available to the event type Stream Audio.
Note
The Stream Audio event type (
stream_audio) is available only to 8301.
Element | Description | Type | Required | Note |
|---|---|---|---|---|
| Specifies the API call(s) to execute. | String | N/A | If an event includes |
| The audio file to play. | String | N/A | Valid values:
|
| Deletes all instances of the event or group after it is triggered. | Boolean or | Optional | Default value: 0. This can be used to remove temporary schedules intended for testing purposes. |
| The color of the event to display on the Calendar. | String (Hex color value) | Required | If not specified, a unique color is assigned automatically for each new event. |
| Postpone the event triggering time in seconds. | Integer | Optional | if specified, the event starts after the specified
|
| The DTMF tone to play before the tone. | Integer | N/A | |
| The duration of this event in seconds. | Integer | N/A | Don’t specify. It’s generated automatically. |
| Whether this event is enabled. | Boolean or | Optional | Default value: 1 |
| The event type. | Enum | Required | Valid value:
|
| The unique ID of the event. | Integer | Optional | Leave it empty to create a new event. Specify the ID to update an existing event. |
| Specifies dates to exclude from the recurrence set generated by | String (YYYY-MM-DD) | Optional | |
| The target SIP extension. | Integer | N/A | |
| Days that have skipped events or groups. | String (YYYY-MM-DD) | N/A | Don’t specify. It’s generated automatically. |
| Poly page group ID. | Integer | N/A | Specify the target Poly page group ID when you have set Multicast Type to one of the following in Basic Settings → Multicast:
|
| The name of the event. | String | Required | |
| Specifies additional dates on which the event occurs, beyond those defined by | String (YYYY-MM-DD) | N/A | |
| Defines the recurrence pattern of a repeating event, including the frequency and optional rule components such as | String | Required | Must include Valid
No whitespace allowed. |
| The start date of the event. | String (YYYY-MM-DD) | Required | |
| The start time of the event. | String (HH-MM:SS) | Required | |
| An optional identifier for events. This identifier can be used to perform actions on multiple events at once. | String | Optional | You can use tags to batch manage events, including:
|
| The target multicast zone. | Integer | Optional | Specify the target multicast zone when you have set Multicast Type to one of the following in Basic Settings → Multicast:
|
Example:
{
"evid": 1,
"duration": 3600,
"enabled": 1,
"rdate": "",
"dtmf": "",
"zone": 1,
"auto_remove": 0,
"exdate": "",
"extension": "",
"audio": "",
"tag": "",
"color": "#ffd5de",
"event_type": "stream_audio",
"greyed_out_date": "",
"start_date": "2026-02-26",
"name": "Lunch Music",
"rrule": "FREQ=MONTHLY;INTERVAL=2",
"start_time": "00:00:00",
"api_call": []
}Event Structure: SIP Call with Tone
This table shows parameters available to the event type SIP Call with Tone.
Element | Description | Type | Required | Note |
|---|---|---|---|---|
| Specifies the API call(s) to execute. | String | N/A | If an event includes |
| The audio file to play. | String | Required | Valid values:
|
| Deletes all instances of the event or group after it is triggered. | Boolean or | Optional | Default value: 0. This can be used to remove temporary schedules intended for testing purposes. |
| The color of the event to display on the Calendar. | String (Hex color value) | Required | If not specified, a unique color is assigned automatically for each new event. |
| Postpone the event triggering time in seconds. | Integer | Optional | if specified, the event starts after the specified
|
| The DTMF tone to play before the tone. | Integer | Optional | Used only when the following configuration is set: Advanced Settings → Advanced Audio → Play DTMF Tones Before Pages/Alerts and set Alert Specific for DTMF Tone(s). |
| The duration of this event in seconds. | Integer | N/A | Don’t specify. It’s calculated automatically as per the start_time, stop_time. |
| Whether this event is enabled. | Boolean or | Optional | Default value: 1 |
| The event type. | Enum | Required | Valid values:
|
| The unique ID of the event. | Integer | Optional | Leave it empty to create a new event. Specify the ID to update an existing event. |
| Specifies dates to exclude from the recurrence set generated by | String (YYYY-MM-DD) | Optional | |
| The target SIP extension. | Integer | Required | |
| Days that have skipped events or groups. | String (YYYY-MM-DD) | N/A | Don’t specify. It’s generated automatically. |
| Poly page group ID. | Integer | N/A | Specify the target Poly page group ID when you have set Multicast Type to one of the following in Basic Settings → Multicast:
|
| The name of the event. | String | Required | |
| Specifies additional dates on which the event occurs, beyond those defined by | String (YYYY-MM-DD) | N/A | |
| Defines the recurrence pattern of a repeating event, including the frequency and optional rule components such as | String | Required | Must include Valid
No whitespace allowed. |
| The start date of the event. | String (YYYY-MM-DD) | Required | |
| The start time of the event. | String (HH-MM:SS) | Required | |
| An optional identifier for events. This identifier can be used to perform actions on multiple events at once. | String | Optional | You can use tags to batch manage events, including:
|
| The target multicast zone. | Integer | Optional | Specify the target multicast zone when you have set Multicast Type to one of the following in Basic Settings → Multicast:
|
Example:
{
"duration": "",
"event_type": "sip_call",
"start_time": "00:00:00",
"extension": "1234",
"exdate": "",
"evid": 1,
"dtmf": "",
"audio": "bell-na.wav",
"tag": "",
"api_call": [],
"color": "#831f8f",
"auto_remove": 0,
"enabled": 1,
"start_date": "2026-02-24",
"rdate": "",
"greyed_out_date": "",
"rrule": "",
"name": "SIP CALL"
}
Event Structure: API Call
This table shows parameters available to an API call.
Element | Description | Type | Required | Note |
|---|---|---|---|---|
| Specifies the API call(s) to execute. | String | Required | If an event includes |
| Unique ID for the API Call. | Integer | Required | Leave it empty to create a new event. Specify the ID to update an existing event. |
| HTTP header content included in the API request. | String | Required | May include authentication headers or predefined variables:
Here, the <Base64 Value> is the RESTful API username (admin) and password encoded in Base64. The default RESTful API Password is algo.
|
| HTTP method used for the API request. | String | Required | Common values: |
| User-defined name for the API call. | String | Optional | |
| API endpoint path on the target device. | String | Required | Should not include protocol or host (e.g., |
| Request body content sent with the API call. | String | Required | Required for methods such as |
| The audio file to play. | String | Required | Valid values:
|
| Deletes all instances of the event or group after it is triggered. | Boolean or | Optional | Default value: 0. This can be used to remove temporary schedules intended for testing purposes. |
| The color of the event to display on the Calendar. | String (Hex color value) | Optional | If not specified, a unique color is assigned automatically for each new event. |
| Postpone the event triggering time in seconds. | Integer | Optional | if specified, the event starts after the specified
|
| The DTMF tone to play before the tone. | Integer | Optional | Used only when the following configuration is set: Advanced Settings → Advanced Audio → Play DTMF Tones Before Pages/Alerts and set Alert Specific for DTMF Tone(s). |
| The duration of this event in seconds. | Optional | ||
| Whether this event is enabled. | Boolean or | Optional | Default value: 1 |
| The event type. | Enum | Required | Valid values:
|
| The unique ID of the event. | Integer | Optional | Leave it empty to create a new event. Specify the ID to update an existing event. |
| Specifies dates to exclude from the recurrence set generated by | String (YYYY-MM-DD) | Optional | |
| The target SIP extension. | Integer | Required | |
| Days that have skipped events or groups. | String (YYYY-MM-DD) | N/A | Don’t specify. It’s generated automatically. |
| Poly page group ID. | Integer | N/A | Specify the target Poly page group ID when you have set Multicast Type to one of the following in Basic Settings → Multicast:
|
| The name of the event. | String | Required | |
| Specifies additional dates on which the event occurs, beyond those defined by | String (YYYY-MM-DD) | N/A | |
| Defines the recurrence pattern of a repeating event, including the frequency and optional rule components such as | String | Required | Must include Valid
No whitespace allowed. |
| The start date of the event. | String (YYYY-MM-DD) | Required | |
| The start time of the event. | String (HH-MM:SS) | Required | |
| An optional identifier for events. This identifier can be used to perform actions on multiple events at once. | String | Optional | You can use tags to batch manage events, including:
|
Example:
{
"api_call": [
{
"path": "api/controls/screen/start",
"payload": "{\n \"type\": \"image\",\n \"image1\": \"alerts-severe-weather-A.png\"\n}",
"target": "10.11.12.123",
"method": "POST",
"header": "%ALGO_HEADERS%",
"name": "",
"actid": 1
}
],
"mgroup": 0,
"exdate": "",
"zone": "NULL",
"evid": 1,
"rdate": "",
"rrule": "",
"auto_remove": 0,
"start_date": "2026-02-27",
"tag": "",
"event_type": "api_call",
"greyed_out_date": "",
"audio": "bell-na.wav",
"start_time": "00:00:00",
"color": "#f4daf7",
"duration": "",
"dtmf": "",
"extension": "",
"enabled": 1,
"name": "Start Screen"
}Group Structure
This table shows parameters available to a group.
Element | Description | Type | Required | Note |
|---|---|---|---|---|
| The color of the event to display on the Calendar. | String (Hex color value) | Required | If not specified, a unique color is automatically assigned to each new group. |
| The unique ID of the group. | Integer | Optional | Leave it empty to create a new group. Specify the ID to update an existing group. |
| The list of events. | String | Required | Refer to the following links for the event structure and parameters required by each event type: |
| The name of the event. | String | Required | |
| Specifies additional dates on which the event occurs, beyond those defined by | String (YYYY-MM-DD) | N/A | Reserved. |
| Defines the recurrence pattern of a repeating event, including the frequency and optional rule components such as | String | Required | Must include Valid
No whitespace allowed. |
| The start date of the event. | String (YYYY-MM-DD) | Required |
Example:
"groups": [
{
"rrule": "FREQ=DAILY;INTERVAL=1;UNTIL=20261224T000000Z",
"groupid": 1,
"events": [
{
<Event1>,
<Event2>
}
],
"rdate": "",
"start_date": "2026-02-24",
"color": "#f4daf7",
"name": "Group 1"
}
]Related Links:
Refer to the following links for the event structure and parameters required by each event type:
Scheduler API FAQs
Can I put multiple commands into a single API command?
You can combine multiple POST commands into a single request. For example, you can add a group, remove a standalone event, and skip an instance of another event in one API request.
However, regardless of the order in which operations are written in the request, they are executed in the following order:
Any
excludeoperationAny
remove_excludeoperationAny
skipoperationAny
remove_skipoperationAny
deleteoperationAdd or update groups
Add or update standalone events
How can I quickly locate API request errors in the system log file?
Go to System → System Log → Download systlog.txt.
In the systlog.txt, search for sched2-load for GET API errors and sched2-save for POST API request errors.
.png)