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.
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 thestatus (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. Passevent_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: 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 a409 error.
Request Body
201 Created with the meeting record, the calendar event, and the meeting link:
Required Scopes
Next: Rate Limits