Bookings
Decline a booking
Getting Started
Platform / Managed Users
Platform / Webhooks
Orgs / Attributes
Orgs / Attributes / Options
- GETGet all attribute options
- POSTCreate an attribute option
- DELDelete an attribute option
- PATCHUpdate an attribute option
- GETGet by attribute id all of the attribute options that are assigned to users
- GETGet by attribute slug all of the attribute options that are assigned to users
- GETGet all attribute options for a user
- POSTAssign an attribute to a user
- DELUnassign an attribute from a user
Orgs / Bookings
Orgs / Delegation Credentials
Orgs / Memberships
Orgs / Routing forms
Orgs / Schedules
Orgs / Teams
Orgs / Teams / Bookings
Orgs / Teams / Conferencing
- POSTConnect your conferencing application to a team
- GETGet OAuth conferencing app's auth url for a team
- GETList team conferencing applications
- POSTSet team default conferencing application
- GETGet team default conferencing application
- DELDisconnect team conferencing application
- GETSave conferencing app OAuth credentials
Orgs / Teams / Event Types
Orgs / Teams / Memberships
Orgs / Teams / Routing forms
Orgs / Teams / Routing forms / Responses
Orgs / Teams / Users / Schedules
Orgs / Users / Bookings
Orgs / Users / OOO
Orgs / Users / Schedules
Orgs / Webhooks
Api Keys
Bookings
- GETGet all bookings
- POSTCreate a booking
- GETGet a booking
- POSTReschedule a booking
- POSTCancel a booking
- POSTMark a booking absence
- POSTReassign a booking to auto-selected host
- POSTReassign a booking to a specific host
- POSTConfirm a booking
- POSTDecline a booking
- GETGet 'Add to Calendar' links for a booking
- GETGet 'Booking References' for a booking
Calendars
Conferencing
Destination Calendars
Event Types
Event Types / Webhooks
Managed Orgs
OAuth Clients
Organization Team Verified Resources
- POSTRequest Email Verification Code
- POSTRequest Phone Number Verification Code
- POSTVerify an email for an org team.
- POSTVerify a phone number for an org team.
- GETGet list of verified emails of an org team.
- GETGet list of verified phone numbers of an org team.
- GETGet verified email of an org team by id.
- GETGet verified phone number of an org team by id.
Organizations/Teams Stripe
Routing forms
Schedules
Selected Calendars
Slots
Teams / Event Types
Teams / Memberships
Teams Verified Resources
- POSTRequest Email Verification Code
- POSTRequest Phone Number Verification Code
- POSTVerify an email for a team.
- POSTVerify a phone number for an org team.
- GETGet list of verified emails of a team.
- GETGet list of verified phone numbers of a team.
- GETGet verified email of a team by id.
- GETGet verified phone number of a team by id.
Verified Resources
Bookings
Decline a booking
The provided authorization header refers to the owner of the booking.
POST
/
v2
/
bookings
/
{bookingUid}
/
decline
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": "jane100@example.com",
"username": "jane100",
"timeZone": "America/Los_Angeles"
}
],
"status": "accepted",
"cancellationReason": "User requested cancellation",
"cancelledByEmail": "canceller@example.com",
"reschedulingReason": "User rescheduled the event",
"rescheduledByEmail": "rescheduler@example.com",
"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,
"icsUid": "ics_uid_123",
"attendees": [
{
"name": "John Doe",
"email": "john.doe@example.com",
"timeZone": "America/New_York",
"phoneNumber": "+919876543210",
"language": "it"
}
],
"guests": [
"guest1@example.com",
"guest2@example.com"
],
"bookingFieldsResponses": {
"customField": "customValue"
}
},
"error": {}
}
Headers
Must be set to 2024-08-13
value must be Bearer <token>
where <token>
is api key prefixed with cal_ or managed user access token
Path Parameters
Body
application/json
Response
200 - application/json
The response is of type object
.
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": "jane100@example.com",
"username": "jane100",
"timeZone": "America/Los_Angeles"
}
],
"status": "accepted",
"cancellationReason": "User requested cancellation",
"cancelledByEmail": "canceller@example.com",
"reschedulingReason": "User rescheduled the event",
"rescheduledByEmail": "rescheduler@example.com",
"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,
"icsUid": "ics_uid_123",
"attendees": [
{
"name": "John Doe",
"email": "john.doe@example.com",
"timeZone": "America/New_York",
"phoneNumber": "+919876543210",
"language": "it"
}
],
"guests": [
"guest1@example.com",
"guest2@example.com"
],
"bookingFieldsResponses": {
"customField": "customValue"
}
},
"error": {}
}