curl --request POST \
--url https://api.cal.com/v2/bookings/{bookingUid}/cancel \
--header 'Content-Type: application/json' \
--header 'cal-api-version: <cal-api-version>' \
--data '{
"cancellationReason": "User requested cancellation",
"cancelSubsequentBookings": true
}'
{
"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",
"rescheduledToUid": "new_uid_456",
"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": "[email protected]",
"timeZone": "America/New_York",
"language": "en",
"absent": false,
"phoneNumber": "+1234567890"
}
],
"guests": [
"[email protected]",
"[email protected]"
],
"bookingFieldsResponses": {
"customField": "customValue"
}
}
}
:bookingUid can be :bookingUid of an usual booking, individual recurrence or recurring booking to cancel all recurrences.
Cancelling seated bookings: It is possible to cancel specific seat within a booking as an attendee or all of the seats as the host.
As an attendee - provide :bookingUid in the request URL /bookings/:bookingUid/cancel
and seatUid in the request body {"seatUid": "123-123-123"}
. This will remove this particular attendance from the booking.
As the host - host can cancel booking for all attendees aka for every seat. Provide :bookingUid in the request URL /bookings/:bookingUid/cancel
and cancellationReason in the request body {"cancellationReason": "Will travel"}
and Authorization: Bearer token
request header where token is event type owner (host) credential. This will cancel the booking for all attendees.
Cancelling recurring seated bookings: For recurring seated bookings it is not possible to cancel all of them with 1 call like with non-seated recurring bookings by providing recurring bookind uid - you have to cancel each recurrence booking by its bookingUid + seatUid.
curl --request POST \
--url https://api.cal.com/v2/bookings/{bookingUid}/cancel \
--header 'Content-Type: application/json' \
--header 'cal-api-version: <cal-api-version>' \
--data '{
"cancellationReason": "User requested cancellation",
"cancelSubsequentBookings": true
}'
{
"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",
"rescheduledToUid": "new_uid_456",
"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": "[email protected]",
"timeZone": "America/New_York",
"language": "en",
"absent": false,
"phoneNumber": "+1234567890"
}
],
"guests": [
"[email protected]",
"[email protected]"
],
"bookingFieldsResponses": {
"customField": "customValue"
}
}
}
Must be set to 2024-08-13
Accepts different types of cancel booking input: Cancel Booking (Option 1) or Cancel Seated Booking (Option 2)
The body is of type object
.
The response is of type object
.
Was this page helpful?