Skip to main content
GET
/
v2
/
teams
/
{teamId}
/
bookings
Get team bookings
curl --request GET \
  --url https://api.cal.com/v2/teams/{teamId}/bookings \
  --header 'Authorization: <authorization>'
{
  "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"
      ]
    }
  ],
  "pagination": {
    "totalItems": 123,
    "remainingItems": 103,
    "returnedItems": 10,
    "itemsPerPage": 10,
    "currentPage": 2,
    "totalPages": 13,
    "hasNextPage": true,
    "hasPreviousPage": true
  },
  "error": {}
}

Headers

Authorization
string
required

value must be Bearer <token> where <token> is api key prefixed with cal_

Path Parameters

teamId
number
required

Query Parameters

status
enum<string>[]

Filter bookings by status. If you want to filter by multiple statuses, separate them with a comma.

Available options:
upcoming,
recurring,
past,
cancelled,
unconfirmed
Example:

"?status=upcoming,past"

attendeeEmail
string

Filter bookings by the attendee's email address.

Example:

"example@domain.com"

attendeeName
string

Filter bookings by the attendee's name.

Example:

"John Doe"

bookingUid
string

Filter bookings by the booking Uid.

Example:

"2NtaeaVcKfpmSZ4CthFdfk"

eventTypeIds
string

Filter bookings by event type ids belonging to the team. Event type ids must be separated by a comma.

Example:

"100,200"

afterStart
string

Filter bookings that start after this date-time (ISO 8601).

Example:

"2024-08-13T10:00:00.000Z"

beforeEnd
string

Filter bookings that end before this date-time (ISO 8601).

Example:

"2024-08-20T10:00:00.000Z"

teamMemberIds
string

Filter bookings by team member user ids. Multiple ids can be separated by a comma. Only works for team events.

Example:

"10,20"

teamMemberEmails
string

Filter bookings by team member emails. Multiple emails can be separated by a comma. Only works for team events.

Example:

"alice@example.com,bob@example.com"

sortStart
enum<string>

Sort results by their start time (when booking is scheduled for) in ascending or descending order.

Available options:
asc,
desc
Example:

"?sortStart=asc OR ?sortStart=desc"

sortEnd
enum<string>

Sort results by their end time (when booking is scheduled to end) in ascending or descending order.

Available options:
asc,
desc
Example:

"?sortEnd=asc OR ?sortEnd=desc"

sortCreated
enum<string>

Sort results by their creation time (when booking was made) in ascending or descending order.

Available options:
asc,
desc
Example:

"?sortCreated=asc OR ?sortCreated=desc"

take
number

The number of items to return

Required range: 1 <= x <= 250
Example:

10

skip
number

The number of items to skip

Required range: x >= 0
Example:

0

Response

200 - application/json
status
enum<string>
required
Available options:
success,
error
Example:

"success"

data
object[]
required

Array of booking data, which can contain either BookingOutput objects or RecurringBookingOutput objects

pagination
object
required
error
object