Getting Started
Platform / Cal Provider
Platform / Managed Users
Platform / Webhooks
Orgs / Attributes
Orgs / Attributes / Options
Orgs / Delegation Credentials
Orgs / Event Types
Orgs / Memberships
Orgs / Orgs
Orgs / Schedules
Orgs / Teams
Orgs / Teams / Bookings
Orgs / Teams / Memberships
Orgs / Teams / Routing forms / Responses
Orgs / Teams / Schedules
Orgs / Users / OOO
Orgs / Webhooks
Api Keys
Bookings
- GETGet all bookings
- POSTCreate a booking
- GETGet a booking
- POSTReschedule a booking
- POSTCancel a booking
- POSTMark a booking absence
- POSTAutomatically reassign booking to a new host
- POSTReassign a booking to a specific user
- POSTConfirm booking that requires a confirmation
- POSTDecline booking that requires a confirmation
Calendars
Conferencing
Destination Calendars
Event Types
Event Types / Webhooks
OAuth Clients
Schedules
Selected Calendars
Slots
Stripe
Teams / Event Types
Teams / Memberships
Timezones
Decline booking that requires a confirmation
curl --request POST \
--url https://api.cal.com/v2/bookings/{bookingUid}/decline \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--header 'cal-api-version: <cal-api-version>' \
--data '{
"reason": "Host has to take another call"
}'
{
"status": "success",
"data": {
"id": 123,
"uid": "booking_uid_123",
"title": "Consultation",
"description": "Learn how to integrate scheduling into marketplace.",
"hosts": [
{
"id": 1,
"name": "Jane Doe",
"email": "[email protected]",
"username": "jane100",
"timeZone": "America/Los_Angeles"
}
],
"status": "accepted",
"cancellationReason": "User requested cancellation",
"cancelledByEmail": "[email protected]",
"reschedulingReason": "User rescheduled the event",
"rescheduledByEmail": "[email protected]",
"rescheduledFromUid": "previous_uid_123",
"start": "2024-08-13T15:30:00Z",
"end": "2024-08-13T16:30:00Z",
"duration": 60,
"eventTypeId": 50,
"eventType": {
"id": 1,
"slug": "some-event"
},
"meetingUrl": "https://example.com/recurring-meeting",
"location": "https://example.com/meeting",
"absentHost": true,
"createdAt": "2024-08-13T15:30:00Z",
"updatedAt": "2024-08-13T15:30:00Z",
"metadata": {
"key": "value"
},
"rating": 4,
"attendees": [
{
"name": "John Doe",
"email": "[email protected]",
"timeZone": "America/New_York",
"phoneNumber": "+919876543210",
"language": "it"
}
],
"guests": [
"[email protected]",
"[email protected]"
],
"bookingFieldsResponses": {
"customField": "customValue"
}
},
"error": {}
}
Headers
Must be set to 2024-08-13
value must be Bearer <token>
where <token>
either managed user access token or api key prefixed with cal_
Path Parameters
Body
Reason for declining a booking that requires a confirmation
"Host has to take another call"
Response
success
, error
"success"
Booking data, which can be either a BookingOutput object, a RecurringBookingOutput object, or an array of RecurringBookingOutput objects
123
"booking_uid_123"
"Consultation"
"Learn how to integrate scheduling into marketplace."
cancelled
, accepted
, rejected
, pending
"accepted"
"2024-08-13T15:30:00Z"
"2024-08-13T16:30:00Z"
60
Deprecated - rely on 'eventType' object containing the id instead.
50
"https://example.com/meeting"
true
"2024-08-13T15:30:00Z"
"2024-08-13T15:30:00Z"
The name of the attendee.
"John Doe"
The time zone of the attendee.
"America/New_York"
The email of the attendee.
The phone number of the attendee in international format.
"+919876543210"
The preferred language of the attendee. Used for booking confirmation.
ar
, ca
, de
, es
, eu
, he
, id
, ja
, lv
, pl
, ro
, sr
, th
, vi
, az
, cs
, el
, es-419
, fi
, hr
, it
, km
, nl
, pt
, ru
, sv
, tr
, zh-CN
, bg
, da
, en
, et
, fr
, hu
, iw
, ko
, no
, pt-BR
, sk
, ta
, uk
, zh-TW
"it"
Booking field responses consisting of an object with booking field slug as keys and user response as values.
{ "customField": "customValue" }
"User requested cancellation"
"User rescheduled the event"
"previous_uid_123"
Deprecated - rely on 'location' field instead.
"https://example.com/recurring-meeting"
{ "key": "value" }
4
Was this page helpful?
curl --request POST \
--url https://api.cal.com/v2/bookings/{bookingUid}/decline \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--header 'cal-api-version: <cal-api-version>' \
--data '{
"reason": "Host has to take another call"
}'
{
"status": "success",
"data": {
"id": 123,
"uid": "booking_uid_123",
"title": "Consultation",
"description": "Learn how to integrate scheduling into marketplace.",
"hosts": [
{
"id": 1,
"name": "Jane Doe",
"email": "[email protected]",
"username": "jane100",
"timeZone": "America/Los_Angeles"
}
],
"status": "accepted",
"cancellationReason": "User requested cancellation",
"cancelledByEmail": "[email protected]",
"reschedulingReason": "User rescheduled the event",
"rescheduledByEmail": "[email protected]",
"rescheduledFromUid": "previous_uid_123",
"start": "2024-08-13T15:30:00Z",
"end": "2024-08-13T16:30:00Z",
"duration": 60,
"eventTypeId": 50,
"eventType": {
"id": 1,
"slug": "some-event"
},
"meetingUrl": "https://example.com/recurring-meeting",
"location": "https://example.com/meeting",
"absentHost": true,
"createdAt": "2024-08-13T15:30:00Z",
"updatedAt": "2024-08-13T15:30:00Z",
"metadata": {
"key": "value"
},
"rating": 4,
"attendees": [
{
"name": "John Doe",
"email": "[email protected]",
"timeZone": "America/New_York",
"phoneNumber": "+919876543210",
"language": "it"
}
],
"guests": [
"[email protected]",
"[email protected]"
],
"bookingFieldsResponses": {
"customField": "customValue"
}
},
"error": {}
}