curl --request PATCH \
--url https://api.cal.com/v2/bookings/{bookingUid}/location \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--header 'cal-api-version: <cal-api-version>' \
--data '
{
"location": {
"type": "address",
"address": "123 Example St, City, Country"
}
}
'{
"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",
"displayEmail": "jane100@example.com",
"username": "jane100",
"timeZone": "America/Los_Angeles"
}
],
"status": "accepted",
"start": "2024-08-13T15:30:00Z",
"end": "2024-08-13T16:30:00Z",
"duration": 60,
"eventTypeId": 50,
"eventType": {
"id": 1,
"slug": "some-event"
},
"location": "https://example.com/meeting",
"absentHost": true,
"createdAt": "2024-08-13T15:30:00Z",
"updatedAt": "2024-08-13T15:30:00Z",
"attendees": [
{
"name": "John Doe",
"email": "john@example.com",
"displayEmail": "john@example.com",
"timeZone": "America/New_York",
"absent": false,
"language": "en",
"phoneNumber": "+1234567890"
}
],
"bookingFieldsResponses": {
"customField": "customValue"
},
"cancellationReason": "User requested cancellation",
"cancelledByEmail": "canceller@example.com",
"reschedulingReason": "User rescheduled the event",
"rescheduledByEmail": "rescheduler@example.com",
"rescheduledFromUid": "previous_uid_123",
"rescheduledToUid": "new_uid_456",
"meetingUrl": "https://example.com/recurring-meeting",
"metadata": {
"key": "value"
},
"rating": 4,
"icsUid": "ics_uid_123",
"guests": [
"guest1@example.com",
"guest2@example.com"
]
}
}Current Limitation: Updating a booking location will update the location in Cal.com, but the corresponding Calendar event will not be updated automatically. The old location will persist in the Calendar event. This is a known limitation that will be addressed in a future update.
curl --request PATCH \
--url https://api.cal.com/v2/bookings/{bookingUid}/location \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--header 'cal-api-version: <cal-api-version>' \
--data '
{
"location": {
"type": "address",
"address": "123 Example St, City, Country"
}
}
'{
"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",
"displayEmail": "jane100@example.com",
"username": "jane100",
"timeZone": "America/Los_Angeles"
}
],
"status": "accepted",
"start": "2024-08-13T15:30:00Z",
"end": "2024-08-13T16:30:00Z",
"duration": 60,
"eventTypeId": 50,
"eventType": {
"id": 1,
"slug": "some-event"
},
"location": "https://example.com/meeting",
"absentHost": true,
"createdAt": "2024-08-13T15:30:00Z",
"updatedAt": "2024-08-13T15:30:00Z",
"attendees": [
{
"name": "John Doe",
"email": "john@example.com",
"displayEmail": "john@example.com",
"timeZone": "America/New_York",
"absent": false,
"language": "en",
"phoneNumber": "+1234567890"
}
],
"bookingFieldsResponses": {
"customField": "customValue"
},
"cancellationReason": "User requested cancellation",
"cancelledByEmail": "canceller@example.com",
"reschedulingReason": "User rescheduled the event",
"rescheduledByEmail": "rescheduler@example.com",
"rescheduledFromUid": "previous_uid_123",
"rescheduledToUid": "new_uid_456",
"meetingUrl": "https://example.com/recurring-meeting",
"metadata": {
"key": "value"
},
"rating": 4,
"icsUid": "ics_uid_123",
"guests": [
"guest1@example.com",
"guest2@example.com"
]
}
}Must be set to 2024-08-13. This header is required as this endpoint does not exist in older API versions.
value must be Bearer <token> where <token> is api key prefixed with cal_, managed user access token, or OAuth access token
One of the event type locations. If instead of passing one of the location objects as required by schema you are still passing a string please use an object.
Show child attributes
success, error "success"
Booking data, which can be either a BookingOutput object, a RecurringBookingOutput object, or an array of RecurringBookingOutput objects
Show child attributes
Was this page helpful?