Schedule configuration
A Schedule defines an on-call rotation for a Team: who is on call, in what order, how escalation works, and how VoIP calls behave. A Schedule belongs to a Team, so create the Team first.
Core fields
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
name | string | Yes | — | Schedule name. Cannot be empty. |
timezone | string | No | Org setting | IANA timezone (e.g. Asia/Tokyo). If omitted, empty, or UTC, the Organization's timezone is used. |
description | string | No | "" | Free-text description. Up to 500 characters. |
labels | array | No | [] | List of string labels. |
investigation_hints | string | No | — | Optional free-text hints shown to responders. |
rotation_period | string | Yes | — | One of manual, daily, weekly, biweekly, monthly. |
rotation_timeout_seconds | number | Yes | — | Seconds to wait for a responder before moving on. Range: 30–300. |
rotation_rounds | number | Yes | — | How many rounds to attempt. Range: 1–5. |
final_escalation_user_email | string | No | — | Email of the user notified as the final escalation. Resolved against the Team's members. |
members | array | Yes | — | At least one member. Each entry is { user_id, rotation_order } or { user_email, rotation_order }. Members must belong to the Team. |
configurations | array | No | [] | Overlay schedules with their own date ranges. Up to 10; date ranges must not overlap; each overlay needs at least one member. |
For members, identify the user by user_id or user_email (email takes precedence). The final-escalation user and all members must be members of the Team.
Each configurations overlay entry takes a required effective_date (start, YYYY-MM-DD), an optional end_date, and its own members list (same shape as the base members above).
VoIP call behavior
These optional fields control how the automated VoIP call to the on-call responder behaves.
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
voip_skip_confirmation | boolean | No | — | Skip the confirmation step on the call. |
voip_compact_guidance | boolean | No | — | Use shorter spoken guidance. |
voip_transcript_enabled | boolean | No | — | Enable call transcript. |
voip_input_mode | string | No | — | Input modality: voice_and_dtmf or dtmf_only. |
voip_barge_in | boolean | No | — | Allow barge-in (full duplex). When voice input is enabled and barge-in is on, the confirmation step cannot be disabled. |
voip_confirm_retry_interval_seconds | number | No | 8 | Wait time (seconds) before re-prompting in confirmation mode. Range: 3–60 (default 8). |
voip_confirm_max_retries | number | No | 2 | Maximum re-prompts in confirmation mode. Range: 1–5 (default 2). |
flapping_escalation_enabled | boolean | No | false | When ON, the server detects call flapping (caller repeatedly reconnects) and escalates to the next member early without waiting for the response timeout. Default OFF (opt-in). |
reconnect_window_seconds | number | No | 30 | Sliding window in seconds for counting reconnects to detect flapping. Range: 10–300 (default 30). |
flapping_reconnect_threshold | number | No | 3 | Number of reconnects within the window (initial connect is not counted) that triggers early escalation. Range: 2–10 (default 3). |
