Email
Inboxes
Marketing
SMS
Sign
Verify
Forms
Scheduling
- List bookings GET
- Create a booking POST
- Retrieve a booking GET
- Reschedule a booking POST
- Cancel a booking POST
- Approve a booking POST
- Decline a booking POST
- Mark a no-show POST
- Set a booking's location PATCH
- Hold a slot POST
- Confirm a hold POST
- Release a hold DELETE
- Erase an attendee DELETE
- Create a booker session POST
- Create a manage session POST
Hooks
Risk
Platform
Confirm a hold
POST
/v1/scheduling/holds/{id}/confirm
Turns a hold into a booking. Always succeeds before the hold expires. Repeating it is safe.
bearerAuthheader
AuthorizationBearer <token>A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.
id*stringThe booking's id.
Coss-Version?"2026-10-10"The API version (a date) to use for this request. Defaults to your organization's version, pinned to the latest one when it first used the API and upgraded from the dashboard. The SDK always sends the version it was built for.
Value in
"2026-10-10"application/json- body
- body
- …
if_still_free?booleanAfter the hold expired, book anyway if nobody else took the slot. Default: refuse with hold_expired.
Default
falseThe booking.
application/json- response
- response
- …
object*"scheduling.booking"Value in
"scheduling.booking"id*stringevent_type*stringstatus*stringValue in
"held""pending_approval""confirmed""cancelled""declined"title*stringstart*stringend*stringhosts*array<string>attendees*array<>location*||||hold_expires_at*string|nullapproval_expires_at*string|nullseries*string|nullseries_index*number|nullgroup_session*string|nullcalendar_unverified*booleanexternal_conflict_at*string|nullno_show_at*string|nullcancelled_at*string|nullmetadata*created_at*stringupdated_at*stringimport { Coss } from "coss";const coss = new Coss({ apiKey: process.env.COSS_API_KEY, baseUrl: "https://api.coss.com",});const { data, error } = await coss.scheduling.holds.confirm("book_01kd2m9a0b1c2d3e4f5g6h7j8m", { if_still_free: true,});{ "object": "scheduling.booking", "id": "book_01kd2m9a0b1c2d3e4f5g6h7j8m", "event_type": "evtype_01kd2m9a0b1c2d3e4f5g6h7j8m", "status": "confirmed", "title": "Initial consultation", "start": "2027-01-04T15:00:00.000Z", "end": "2027-01-04T15:30:00.000Z", "hosts": [ "host_01kd2m9a0b1c2d3e4f5g6h7j8m" ], "attendees": [ { "id": "attn_01kd2m9a0b1c2d3e4f5g6h7j8m", "uid": "patient_77", "name": "Sam Lee", "email": "sam@example.com", "phone": null, "time_zone": "UTC", "locale": null } ], "location": null, "hold_expires_at": null, "approval_expires_at": null, "series": null, "series_index": null, "group_session": null, "calendar_unverified": false, "external_conflict_at": null, "no_show_at": null, "cancelled_at": null, "metadata": {}, "created_at": "2027-01-01T10:00:00.000Z", "updated_at": "2027-01-01T10:00:00.000Z"}