Skip to main content
The Scheduling API lets you manage scheduling pages, event types, meetings, and availability schedules programmatically. Requires scheduling:read, scheduling:write, meetings:read, or meetings:write scopes.

Scheduling Pages

Scheduling pages are booking pages your contacts use to schedule meetings. Each page can contain multiple event types.

Endpoints

Query Parameters

Use these when listing scheduling pages:

List Scheduling Pages

Create a Scheduling Page

Get Scheduling Page

Returns the scheduling page with its event types included.

Update a Scheduling Page

Send only the fields you want to change. settings is merged into the page’s existing settings, so setting one key leaves the others untouched. Protected keys (password, notifications, email_verification, security, custom_js, custom_html, thank_you_custom_html) are ignored by the public API.
The same settings keys are accepted when creating a page with POST /v1/scheduling-pages.

Scheduling Page Settings

Timezones must be valid IANA zones and default_phone_country a two-letter country code; anything else is rejected with 400 invalid_request.
Regional booking pages: a French demo page should open on Paris time and +33 even for a teammate previewing it from New York, and a US page the other way round. Set default_timezone and default_phone_country per page, or use Settings → Timezone display and Settings → Phone country code in the scheduling editor.

Event Types

Event types define the different kinds of meetings available on a scheduling page (e.g., “30 Min Demo”, “15 Min Quick Call”). Event type endpoints are nested under their parent scheduling page.

Endpoints

Event Type Fields

Meetings

Meetings represent booked appointments. You can list, retrieve, update the status of, or delete meetings.

Endpoints

Query Parameters

Use these when listing meetings:

List Meetings

Update a Meeting

You can update the status (to pending_confirmation, scheduled, completed, cancelled, rescheduled, or no_show), notes, and cancellation_reason (when cancelling).
Cancellation cleanup: When you set the status to cancelled, OrbitForms automatically deletes the associated Zoom meeting (if one was created), removes the calendar event, and sends a cancellation notification email to the attendee.

Recordings and AI notes

When a workspace connects Fathom or Fireflies, each recording is attached to the meeting it belongs to (matched by attendee email and time). GET /v1/meetings/{id} then returns a transcripts array: one entry per recording with provider, title, started_at, duration_seconds, attendees, share_url, the notetaker’s own provider_summary and provider_action_items, and ai_notes once they are written. Pass include_transcript=true to add each recording’s transcript text (speaker-labelled lines, up to 200,000 characters; transcript_truncated is true when cut). POST /v1/meetings/{id}/notes returns the recording’s AI notes: a 3-6 sentence summary, key_points, and action_items, each with the owner and due_date said in the call and the task_id it became. Notes already written are returned free; new notes use one AI credit. Pass transcript_id to pick a recording (the newest one with a transcript otherwise) and refresh: true to write new notes (free again if the last ones are under 10 minutes old). Needs meetings:read. Errors: 402 out of AI credits, 429 too many AI requests, 503 AI unavailable. To turn an action item into a task, create it with POST /v1/tasks.

Availability Schedules

Availability schedules define working hours and date-specific overrides (holidays, vacation, etc.) for team members. These endpoints are read-only via the public API since availability is tied to individual user calendars.

Endpoints

Query Parameters

Get Availability Schedule

Returns the schedule with its weekly rules and any date-specific overrides.

Calendar

These public-facing endpoints power the booking widget. They allow your contacts to check available time slots and book meetings without authentication. The availability endpoint accounts for the host’s calendar events, buffer times, and date overrides. The booking endpoint creates the calendar event, generates the meeting link (Zoom or Google Meet), and sends a confirmation email to both parties. Microsoft Teams support coming soon.
These are public-facing endpoints used by the booking widget. They do not require an API key or authentication.

Endpoints

Get Available Time Slots

Returns available time slots for a given host on a given date. Slots are calculated based on the host’s availability schedule, existing calendar events, buffer times, and minimum notice requirements. Pass event_type_id (recommended) so the event type’s duration, buffer, and booking-window rules apply; for round-robin and group pages, also pass scheduling_page_id.

Query Parameters

Round-robin pages return an additional round_robin: true flag and an available_host_count on each slot.

Book a Meeting

Books a meeting for the selected time slot. Creates a calendar event on the host’s calendar, generates a meeting link (Zoom or Google Meet depending on the event type configuration; Microsoft Teams coming soon), and sends a confirmation email to both the host and attendee. Booking a slot that is already taken returns a 409 error.

Request Body

Returns 201 Created with the meeting record, the calendar event, and the meeting link:

Required Scopes

Next: Rate Limits