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
- GETGet 'Add to Calendar' links for a booking
Calendars
Conferencing
Destination Calendars
Event Types
Event Types / Webhooks
OAuth Clients
Schedules
Selected Calendars
Slots
Stripe
Teams / Event Types
Teams / Memberships
Timezones
Reschedule a booking
Reschedule a booking or seated booking
curl --request POST \
--url https://api.cal.com/v2/bookings/{bookingUid}/reschedule \
--header 'Content-Type: application/json' \
--header 'cal-api-version: <cal-api-version>' \
--data '{
"start": "2024-08-13T10:00:00Z",
"rescheduledBy": "<string>",
"reschedulingReason": "User requested reschedule"
}'
{
"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"
}
}
}
Headers
Must be set to 2024-08-13
Path Parameters
Body
Start time in ISO 8601 format for the new booking
"2024-08-13T10:00:00Z"
Email of the person who is rescheduling the booking - only needed when rescheduling a booking that requires a confirmation. If event type owner email is provided then rescheduled booking will be automatically confirmed. If attendee email or no email is passed then the event type owner will have to confirm the rescheduled booking.
Reason for rescheduling the booking
"User requested reschedule"
Response
success
, error
"success"
Booking data, which can be either a BookingOutput object or a RecurringBookingOutput object
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}/reschedule \
--header 'Content-Type: application/json' \
--header 'cal-api-version: <cal-api-version>' \
--data '{
"start": "2024-08-13T10:00:00Z",
"rescheduledBy": "<string>",
"reschedulingReason": "User requested reschedule"
}'
{
"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"
}
}
}