Skip to content
Preview. The endpoints on this page are illustrative and are likely to change as they move toward general availability. Documentation is published in advance so you can start shaping your integration; treat request and response details as subject to revision.

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 bookings
  • disabled — 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.


json
{
  "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.

AttributeTypeDescription
minAdvanceMinutesnumberMinimum lead time, in minutes, before a slot can be booked (e.g., 120 = no bookings within the next 2 hours).
maxAdvanceDaysnumberMaximum 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.

AttributeTypeDescription
fieldslistThe 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.

AttributeTypeDescription
host.userIdstringHost identifier, prefixed usr_. Byte-identical to the value returned in availability responses and on booked meetings.
host.displayNamestringHost'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.

json
{
  "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"
}

Raleigh, NC — a Cirruspath, Inc. company