curl --request GET \
--url https://api.cal.com/v2/bookings \
--header 'Authorization: <authorization>' \
--header 'cal-api-version: <cal-api-version>'{
"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",
"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": "[email protected]",
"timeZone": "America/New_York",
"absent": false,
"language": "en",
"phoneNumber": "+1234567890"
}
],
"bookingFieldsResponses": {
"customField": "customValue"
},
"cancellationReason": "User requested cancellation",
"cancelledByEmail": "[email protected]",
"reschedulingReason": "User rescheduled the event",
"rescheduledByEmail": "[email protected]",
"rescheduledFromUid": "previous_uid_123",
"rescheduledToUid": "new_uid_456",
"meetingUrl": "https://example.com/recurring-meeting",
"metadata": {
"key": "value"
},
"rating": 4,
"icsUid": "ics_uid_123",
"guests": [
"[email protected]",
"[email protected]"
]
}
],
"pagination": {
"totalItems": 123,
"remainingItems": 103,
"returnedItems": 10,
"itemsPerPage": 10,
"currentPage": 2,
"totalPages": 13,
"hasNextPage": true,
"hasPreviousPage": true
},
"error": {}
}curl --request GET \
--url https://api.cal.com/v2/bookings \
--header 'Authorization: <authorization>' \
--header 'cal-api-version: <cal-api-version>'{
"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",
"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": "[email protected]",
"timeZone": "America/New_York",
"absent": false,
"language": "en",
"phoneNumber": "+1234567890"
}
],
"bookingFieldsResponses": {
"customField": "customValue"
},
"cancellationReason": "User requested cancellation",
"cancelledByEmail": "[email protected]",
"reschedulingReason": "User rescheduled the event",
"rescheduledByEmail": "[email protected]",
"rescheduledFromUid": "previous_uid_123",
"rescheduledToUid": "new_uid_456",
"meetingUrl": "https://example.com/recurring-meeting",
"metadata": {
"key": "value"
},
"rating": 4,
"icsUid": "ics_uid_123",
"guests": [
"[email protected]",
"[email protected]"
]
}
],
"pagination": {
"totalItems": 123,
"remainingItems": 103,
"returnedItems": 10,
"itemsPerPage": 10,
"currentPage": 2,
"totalPages": 13,
"hasNextPage": true,
"hasPreviousPage": true
},
"error": {}
}Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
value must be Bearer <token> where <token> is api key prefixed with cal_ or managed user access token
Filter bookings by status. If you want to filter by multiple statuses, separate them with a comma.
upcoming, recurring, past, cancelled, unconfirmed Filter bookings by the attendee's email address.
Filter bookings by the attendee's name.
Filter bookings by the booking Uid.
Filter bookings by event type ids belonging to the user. Event type ids must be separated by a comma.
Filter bookings by event type id belonging to the user.
Filter bookings by team ids that user is part of. Team ids must be separated by a comma.
Filter bookings by team id that user is part of
Filter bookings with start after this date string.
Filter bookings with end before this date string.
Filter bookings that have been created after this date string.
Filter bookings that have been created before this date string.
Filter bookings that have been updated after this date string.
Filter bookings that have been updated before this date string.
Sort results by their start time in ascending or descending order.
asc, desc Sort results by their end time in ascending or descending order.
asc, desc Sort results by their creation time (when booking was made) in ascending or descending order.
asc, desc Sort results by their updated time (for example when booking status changes) in ascending or descending order.
asc, desc The number of items to return
The number of items to skip
success, error "success"
Array of booking data, which can contain either BookingOutput objects or RecurringBookingOutput objects
Show child attributes
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"
Show child attributes
"John Doe"
"America/New_York"
false
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, bn "en"
"+1234567890"
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"
UID of the previous booking from which this booking was rescheduled.
"previous_uid_123"
UID of the new booking to which this booking was rescheduled.
"new_uid_456"
Deprecated - rely on 'location' field instead.
"https://example.com/recurring-meeting"
{ "key": "value" }4
UID of ICS event.
"ics_uid_123"
Show child attributes
The total number of items available across all pages, matching the query criteria.
x >= 0123
The number of items remaining to be fetched after the current page. Calculated as: totalItems - (skip + itemsPerPage).
x >= 0103
The number of items returned in the current page.
10
The maximum number of items requested per page.
x >= 110
The current page number being returned.
x >= 12
The total number of pages available.
x >= 013
Indicates if there is a subsequent page available after the current one.
true
Indicates if there is a preceding page available before the current one.
true
Was this page helpful?