Smart Schedule object
A Smart Schedule represents a configured booking flow with host-routing logic. The Platform API exposes two shapes: a lightweight Summary (used in list responses) and the full Schedule (returned from the get-by-id endpoint).
Summary
Returned by GET /api/v1alpha1/smart-schedules.
The SmartScheduleSummary schema
Fields
id string
The smart schedule identifier, prefixed sched_.
name string
The display name of the schedule.
description string
(optional) Short description of the schedule's purpose. May be null.
status string
One of:
active— accepting bookingsdisabled— administratively paused; visible in list responses but not bookable
Draft schedules are never returned by any API endpoint.
durationMinutes number
Default meeting length in minutes. Used as the slot-grid spacing in /availability when no explicit durationMinutes is passed.
timeZone string
The IANA time zone the schedule's business hours are anchored to on the server (e.g., America/Los_Angeles). Response timestamps are always in UTC — this field is informational and lets your UI render the "office hours" context if needed.
publishedAt string
(optional) ISO 8601 UTC timestamp. When the schedule is published, this reflects the schedule's original creation time (a lower bound on the true publish time — the underlying data model does not yet persist a separate publish timestamp). Omitted when the schedule has never been published.
updatedAt string
ISO 8601 UTC. The most recent modification timestamp.
{
"id": "sched_...",
"name": "Demo Call",
"description": "Schedule a product demo.",
"status": "active",
"durationMinutes": 30,
"timeZone": "America/Los_Angeles",
"publishedAt": "2026-05-01T12:00:00Z",
"updatedAt": "2026-07-14T09:30:00Z"
}Full Schedule
Returned by GET /api/v1alpha1/smart-schedules/{id}. Includes everything in Summary, plus the fields below.
The SmartSchedule schema
Additional fields (beyond Summary)
bookingWindow object
(optional) The bookable window relative to "now" that governs which slots /availability will emit.
| Attribute | Type | Description |
|---|---|---|
minAdvanceMinutes | number | Minimum lead time, in minutes, before a slot can be booked (e.g., 120 = no bookings within the next 2 hours). |
maxAdvanceDays | number | Maximum look-ahead, in days, for bookable slots. |
Either or both may be null when the schedule has no configured limit for that direction.
matchingForm object
The intake form whose answers drive host routing. Submit the answers to /availability to get matched hosts.
| Attribute | Type | Description |
|---|---|---|
fields | list | The form's questions in display order. Each is a MatchingFormFieldmodel. |
Only fields returned here are valid keys on a form-values submission — extras are rejected.
surveyQuestions list
Informational pre-booking questions. Not used for routing — captured for the confirmation email, calendar event body, and post-booking webhook payload. See SurveyQuestionmodel.
The list is empty when the schedule has no survey questions.
assignees list
The hosts eligible to receive bookings on this schedule. Flat, not grouped — the priority groups you see in an availability response are computed at match-time from the form values you submit, so a grouped shape here would be fabricated.
Each assignee is a lightweight host reference — just userId and displayName, same shape as the host reference on an availability response.
| Attribute | Type | Description |
|---|---|---|
host.userId | string | Host identifier, prefixed usr_. Byte-identical to the value returned in availability responses and on booked meetings. |
host.displayName | string | Host's display name (first + last, falling back to email when no name is stored). |
Assignee-level title, status, and per-assignee availability are not exposed here — a host with no available slots simply doesn't appear in the availability response, which is the honest signal.
{
"id": "sched_...",
"name": "Demo Call",
"description": "...",
"status": "active",
"durationMinutes": 30,
"timeZone": "America/Los_Angeles",
"bookingWindow": {
"minAdvanceMinutes": 120,
"maxAdvanceDays": 14
},
"matchingForm": {
"fields": [
{
"key": "region",
"label": "Region",
"type": "select",
"options": ["NA-East", "NA-West", "EMEA"],
"required": true
}
]
},
"surveyQuestions": [
{ "key": "whatBrings", "label": "What brings you here today?", "type": "long-text", "required": false }
],
"assignees": [
{ "host": { "userId": "usr_...", "displayName": "Alex Rivera" } },
{ "host": { "userId": "usr_...", "displayName": "Sam Chen" } }
],
"publishedAt": "2026-05-01T12:00:00Z",
"updatedAt": "2026-07-14T09:30:00Z"
}