Documentation Index

Fetch the complete documentation index at: https://docs.algosolutions.com/llms.txt

Use this file to discover all available pages before exploring further.

Skip to main content

Scheduler API

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/schedules

Response 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

events

Start date.

String (YYYY-MM-DD)

Required

days

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=7

Sample 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=7

Example 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 specifyevid when creating new events. Otherwise, if an event with the specified evid already 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 ID evid is automatically created.

  • stream_audio : Creates a Stream Audio event. An event ID evid is automatically created.

  • sip_call : Creates a SIP Call with Tone event. An event ID evid is automatically created.

  • api_call : Creates an API Call event. An event ID evid  and 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:

  • Event Structure: Play Tone

  • Event Structure: Stream Audio

  • Event Structure: SIP Call with Tone

  • Event Structure: API Call

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/schedules

Sample 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 evid or actid are provided, or if the IDs are invalid, new events are created based on the specified event_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

events

Create or update events

Array of events

Required

You must specify a valid evid.

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/schedules

Sample 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 groupid when creating a new group. Otherwise, if a group with the specified groupid already exists, the existing group is updated instead.

  • Don’t specifyevid when adding new events to the group. Otherwise, if an event with the specifiedevid already 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

groups

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:

  • Event Structure: Play Tone

  • Event Structure: Stream Audio

  • Event Structure: SIP Call with Tone

  • Event Structure: API Call

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

groups

Create groups with nested events.

Array of groups.

Required

You must specify a valid groupid.

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

Delete events or groups.

Array of objects.

Required

Specify the target event or group IDs:

  • evid: Event ID for Play Tone, Stream Audio, or SIP Call with Tone.

  • actid: API Call event ID.

  • groupid: Group ID.

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/schedules

Sample 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: -1 to 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 includes affected_events which lists all available events.

Applicable Products: 8301, 8305

Minimum Firmware Version: 5.7

URI

POST /api/schedules

Parameters

Element

Description

Type

Required

Notes

exclude

Remove event instances on a specified date.

Array of objects.

Required

  • Use exdate ( YYYY-MM-DD) to specify the date.

  • Use evidto specify events.

  • Use groupidto specify groups.

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/schedules

Sample 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: -1 to 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 includes affected_events which lists all available events.

Applicable Products: 8301, 8305

Minimum Firmware Version: 5.7

URI

POST /api/schedules

Parameters

Element

Description

Type

Required

Notes

remove_exclude

Restore event or group instances on a specified date.

Array of objects.

Required

  • Use date ( YYYY-MM-DD) to specify the date.

  • Use evidto specify events.

  • Use groupidto specify groups.

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/schedules

Sample 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: -1 to 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 includes affected_events which lists all available events.

Applicable Products: 8301, 8305

Minimum Firmware Version: 5.7

URI

POST /api/schedules

Parameters

Element

Description

Type

Required

Notes

skip

Skip event or group instances on a specified date.

Array of objects.

Required

  • Use date ( YYYY-MM-DD) to specify the date.

  • Use evidto specify standalone events.

  • Use groupidto specify groups.

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/schedules

Sample 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: -1 to 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 includes affected_events which lists all available events.

Applicable Products: 8301, 8305

Minimum Firmware Version: 5.7

URI

POST /api/schedules

Parameters

Element

Description

Type

Required

Notes

remove_skip

Restore event or group instances on a specified date..

Array of objects

Required

  • Use date ( YYYY-MM-DD) to specify the date.

  • Use evidto specify events.

  • Use groupidto specify groups.

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

events

Action to perform.

Array of objects

Required

tag

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 the start_date and start_time. Otherwise, the schedule fails.

Applicable Products: 8301, 8305

Minimum Firmware Version: 5.7

URI

POST /api/schedules

Parameters

Element

Description

Type

Required

Note

events

Action to perform.

Array of objects

Required

delay

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

  • delete

  • exclude

  • remove_exclude

  • skip

  • remove_skip

Action to perform.

Array of objects

Required

tag

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

api_call

Specifies the API call(s) to execute.

String

N/A

If an event includes api_call entries but its event_type is not api_call, the associated api_call entries are ignored.

audio

The audio file to play.

String

Required

Valid values:

  • Any audio file name that is available in System → File Manager.

auto_remove

Deletes all instances of the event or group after it is triggered.

Boolean or 0/1

Optional

Default value: 0.

This can be used to remove temporary schedules intended for testing purposes.

color

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.

delay

Postpone the event triggering time in seconds.

Integer

Optional

if specified, the event starts after the specified delay  period, calculated from the event creation time.

  • If specified, don’t specify the start_date or start_time. Otherwise, the schedule fails.

  • To ensure the event is entered into the Scheduler in time to be activated, set the delay time to at least 10 seconds.

dtmf

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).

duration

The duration of this event in seconds.

Integer

N/A

Don’t specify.

It’s generated automatically.

enabled

Whether this event is enabled.

Boolean or 0/1

Optional

Default value: 1

event_type

The event type.

Enum

Required

Valid values:

  • play_tone

evid

The unique ID of the event.

Integer

Optional

Leave it empty to create a new event.

Specify the ID to update an existing event.

exdate

Specifies dates to exclude from the recurrence set generated by rrule and rdate.

String (YYYY-MM-DD)

Optional

extension

The target SIP extension.

Integer

N/A

greyed_out_date

Days that have skipped events or groups.

String (YYYY-MM-DD)

N/A

Don’t specify.

It’s generated automatically.

mgroup

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:

  • Poly Group Page

  • Poly Push-to-Talk

  • Regular RTP + Poly Group Page

  • Regular RTP + Poly Push-to-Talk

name

The name of the event.

String

Required

rdate

Specifies additional dates on which the event occurs, beyond those defined by rrule.

String (YYYY-MM-DD)

N/A

rrule

Defines the recurrence pattern of a repeating event, including the frequency and optional rule components such as INTERVAL, COUNT, UNTIL, and BYDAY.

String

Required

Must include FREQ=.

Valid FREQ values:

  • DAILY

  • WEEKLY

  • MONTHLY

  • YEARLY

No whitespace allowed.

start_date

The start date of the event.

String (YYYY-MM-DD)

Required

start_time

The start time of the event.

String (HH-MM:SS)

Required

tag

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:

  • delete : Delete events.

  • exclude : Exclude a date.

  • remove_exclude : Re-add the excluded date.

  • skip : Skip events.

  • remove_skip : Restore skipped events.

zone

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:

  • Regular (RTP)

  • Regular RTP + Poly Group Page

  • Regular RTP + Poly Push-to-Talk

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

api_call

Specifies the API call(s) to execute.

String

N/A

If an event includes api_call entries but its event_type is not api_call, the associated api_call entries are ignored.

audio

The audio file to play.

String

N/A

Valid values:

  • Any audio file name that is available in System → File Manager.

auto_remove

Deletes all instances of the event or group after it is triggered.

Boolean or 0/1

Optional

Default value: 0.

This can be used to remove temporary schedules intended for testing purposes.

color

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.

delay

Postpone the event triggering time in seconds.

Integer

Optional

if specified, the event starts after the specified delay  period, calculated from the event creation time.

  • If specified, don’t specify the start_date or start_time. Otherwise, the schedule fails.

  • To ensure the event is entered into the Scheduler in time to be activated, set the delay time to at least 10 seconds.

dtmf

The DTMF tone to play before the tone.

Integer

N/A

duration

The duration of this event in seconds.

Integer

N/A

Don’t specify.

It’s generated automatically.

enabled

Whether this event is enabled.

Boolean or 0/1

Optional

Default value: 1

event_type

The event type.

Enum

Required

Valid value:

  • stream_audio

evid

The unique ID of the event.

Integer

Optional

Leave it empty to create a new event.

Specify the ID to update an existing event.

exdate

Specifies dates to exclude from the recurrence set generated by rrule and rdate.

String (YYYY-MM-DD)

Optional

extension

The target SIP extension.

Integer

N/A

greyed_out_date

Days that have skipped events or groups.

String (YYYY-MM-DD)

N/A

Don’t specify.

It’s generated automatically.

mgroup

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:

  • Poly Group Page

  • Poly Push-to-Talk

  • Regular RTP + Poly Group Page

  • Regular RTP + Poly Push-to-Talk

name

The name of the event.

String

Required

rdate

Specifies additional dates on which the event occurs, beyond those defined by rrule.

String (YYYY-MM-DD)

N/A

rrule

Defines the recurrence pattern of a repeating event, including the frequency and optional rule components such as INTERVAL, COUNT, UNTIL, and BYDAY.

String

Required

Must include FREQ=.

ValidFREQ values:

  • DAILY

  • WEEKLY

  • MONTHLY

  • YEARLY

No whitespace allowed.

start_date

The start date of the event.

String (YYYY-MM-DD)

Required

start_time

The start time of the event.

String (HH-MM:SS)

Required

tag

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:

  • delete : Delete events.

  • exclude : Exclude a date.

  • remove_exclude : Re-add the excluded date.

  • skip : Skip events.

  • remove_skip : Restore skipped events.

zone

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:

  • Regular (RTP)

  • Regular RTP + Poly Group Page

  • Regular RTP + Poly Push-to-Talk

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

api_call

Specifies the API call(s) to execute.

String

N/A

If an event includes api_call entries but its event_type is not api_call, the associated api_call entries are ignored.

audio

The audio file to play.

String

Required

Valid values:

  • Any audio file name that is available in System → File Manager.

auto_remove

Deletes all instances of the event or group after it is triggered.

Boolean or 0/1

Optional

Default value: 0.

This can be used to remove temporary schedules intended for testing purposes.

color

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.

delay

Postpone the event triggering time in seconds.

Integer

Optional

if specified, the event starts after the specified delay  period, calculated from the event creation time.

  • If specified, don’t specify the start_date or start_time. Otherwise, the schedule fails.

  • To ensure the event is entered into the Scheduler in time to be activated, set the delay time to at least 10 seconds.

dtmf

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).

duration

The duration of this event in seconds.

Integer

N/A

Don’t specify.

It’s calculated automatically as per the start_time, stop_time.

enabled

Whether this event is enabled.

Boolean or 0/1

Optional

Default value: 1

event_type

The event type.

Enum

Required

Valid values:

  • sip_call

evid

The unique ID of the event.

Integer

Optional

Leave it empty to create a new event.

Specify the ID to update an existing event.

exdate

Specifies dates to exclude from the recurrence set generated by rrule and rdate.

String (YYYY-MM-DD)

Optional

extension

The target SIP extension.

Integer

Required

greyed_out_date

Days that have skipped events or groups.

String (YYYY-MM-DD)

N/A

Don’t specify.

It’s generated automatically.

mgroup

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:

  • Poly Group Page

  • Poly Push-to-Talk

  • Regular RTP + Poly Group Page

  • Regular RTP + Poly Push-to-Talk

name

The name of the event.

String

Required

rdate

Specifies additional dates on which the event occurs, beyond those defined by rrule.

String (YYYY-MM-DD)

N/A

rrule

Defines the recurrence pattern of a repeating event, including the frequency and optional rule components such as INTERVAL, COUNT, UNTIL, and BYDAY.

String

Required

Must include FREQ=.

Valid FREQ values:

  • DAILY

  • WEEKLY

  • MONTHLY

  • YEARLY

No whitespace allowed.

start_date

The start date of the event.

String (YYYY-MM-DD)

Required

start_time

The start time of the event.

String (HH-MM:SS)

Required

tag

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:

  • delete : Delete events.

  • exclude : Exclude a date.

  • remove_exclude : Re-add the excluded date.

  • skip : Skip events.

  • remove_skip : Restore skipped events.

zone

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:

  • Regular (RTP)

  • Regular RTP + Poly Group Page

  • Regular RTP + Poly Push-to-Talk

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

api_call

Specifies the API call(s) to execute.

String

Required

If an event includes api_call entries but its event_type is not api_call, the associated api_call entries are ignored.

    actid

Unique ID for the API Call.

Integer

Required

Leave it empty to create a new event.

Specify the ID to update an existing event.

       header

HTTP header content included in the API request.

String

Required

May include authentication headers or predefined variables:

  • When sending API requests to Algo endpoints that require the Standard authentication method, use %ALGO_HEADERS% to insert an Algo standard authentication header.

    "header": "%ALGO_HEADERS%"
  • When sending API requests to Algo endpoints that require Basic authentication, use this header format:

    "header": "Authorization: Basic <Base64 Value>\\r\\nContent-Type: application/json"

Here, the <Base64 Value> is the RESTful API username (admin) and password encoded in Base64.

The default RESTful API Password is algo.

  • When sending API requests to non-Algo endpoints, refer to their documentation for the authentication header requirements.

        method

HTTP method used for the API request.

String

Required

Common values: GET, POST, PUT, DELETE.

        name

User-defined name for the API call.

String

Optional

        path

API endpoint path on the target device.

String

Required

Should not include protocol or host (e.g., api/controls/screen/start).

        payload

Request body content sent with the API call.

String

Required

Required for methods such as POST or PUT. Must be valid JSON if provided.

audio

The audio file to play.

String

Required

Valid values:

  • Any audio file name that is available in System → File Manager.

auto_remove

Deletes all instances of the event or group after it is triggered.

Boolean or 0/1

Optional

Default value: 0.

This can be used to remove temporary schedules intended for testing purposes.

color

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.

delay

Postpone the event triggering time in seconds.

Integer

Optional

if specified, the event starts after the specified delay  period, calculated from the event creation time.

  • If specified, don’t specify the start_date or start_time. Otherwise, the schedule fails.

  • To ensure the event is entered into the Scheduler in time to be activated, set the delay time to at least 10 seconds.

dtmf

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).

duration

The duration of this event in seconds.

Optional

enabled

Whether this event is enabled.

Boolean or 0/1

Optional

Default value: 1

event_type

The event type.

Enum

Required

Valid values:

  • play_tone

  • stream_audio

  • sip_call

  • api_call

evid

The unique ID of the event.

Integer

Optional

Leave it empty to create a new event.

Specify the ID to update an existing event.

exdate

Specifies dates to exclude from the recurrence set generated by rrule and rdate.

String (YYYY-MM-DD)

Optional

extension

The target SIP extension.

Integer

Required

greyed_out_date

Days that have skipped events or groups.

String (YYYY-MM-DD)

N/A

Don’t specify.

It’s generated automatically.

mgroup

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:

  • Poly Group Page

  • Poly Push-to-Talk

  • Regular RTP + Poly Group Page

  • Regular RTP + Poly Push-to-Talk

name

The name of the event.

String

Required

rdate

Specifies additional dates on which the event occurs, beyond those defined by rrule.

String (YYYY-MM-DD)

N/A

rrule

Defines the recurrence pattern of a repeating event, including the frequency and optional rule components such as INTERVAL, COUNT, UNTIL, and BYDAY.

String

Required

Must include FREQ=.

Valid FREQ values:

  • DAILY

  • WEEKLY

  • MONTHLY

  • YEARLY

No whitespace allowed.

start_date

The start date of the event.

String (YYYY-MM-DD)

Required

start_time

The start time of the event.

String (HH-MM:SS)

Required

tag

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:

  • delete : Delete events.

  • exclude : Exclude a date.

  • remove_exclude : Re-add the excluded date.

  • skip : Skip events.

  • remove_skip : Restore skipped events.

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

color

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.

groupid

The unique ID of the group.

Integer

Optional

Leave it empty to create a new group.

Specify the ID to update an existing group.

events

The list of events.

String

Required

Refer to the following links for the event structure and parameters required by each event type:

  • Event Structure: Play Tone

  • Event Structure: Stream Audio

  • Event Structure: SIP Call with Tone

  • Event Structure: API Call

name

The name of the event.

String

Required

rdate

Specifies additional dates on which the event occurs, beyond those defined by rrule.

String (YYYY-MM-DD)

N/A

Reserved.

rrule

Defines the recurrence pattern of a repeating event, including the frequency and optional rule components such as INTERVAL, COUNT, UNTIL, and BYDAY.

String

Required

Must include FREQ=.

ValidFREQ values:

  • DAILY

  • WEEKLY

  • MONTHLY

  • YEARLY

No whitespace allowed.

start_date

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:

  • Event Structure: Play Tone

  • Event Structure: Stream Audio

  • Event Structure: SIP Call with Tone

  • Event Structure: API Call


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:

  1. Any exclude operation

  2. Any remove_exclude operation

  3. Any skip operation

  4. Any remove_skip operation

  5. Any delete operation

  6. Add or update groups

  7. Add or update standalone events

How can I quickly locate API request errors in the system log file?

  1. Go to System → System Log → Download systlog.txt.

  2. In the systlog.txt, search for sched2-load for GET API errors and sched2-save for POST API request errors.