> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coffeechats.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Booking tools

> Tools that read your booking page, your event types, your bookings and your booking conflicts.

These tools read your booking page, your event types, your bookings and your booking conflicts. They need the permission `booking:read`, which you grant on the Authorize access page when you connect.

This page is generated from the connector's tool catalogue. It describes 9 tools. Every tool reads or writes only your own account.

## Permissions this page needs

* `booking:read`: Read your booking settings, event types, bookings, and booking conflicts

The [permissions reference](/mcp/scopes.md) lists every permission you can grant.

## `booking.profile.get`

Your agent host shows this tool as "Get booking profile".

Read the authenticated host's booking username, display name, public profile settings, and publication state.

Permissions: This tool needs `booking:read`, which the Authorize access page describes as "Read your booking settings, event types, bookings, and booking conflicts".

Risk: `read`. This tool only reads your own data. It never changes anything and it never asks for your approval.

### Input

This tool takes no input.

### Example call

```json booking.profile.get input theme={"system"}
{}
```

### Result

A result is never larger than 16,384 bytes.

A result carries these top-level fields:

```json Top-level fields theme={"system"}
[
  "displayName",
  "headline",
  "headlineSource",
  "isPublic",
  "showLinkedIn",
  "showResume",
  "username",
  "welcomeMessage"
]
```

### Errors

A failed call returns one protocol error with no error code, and its text is `Tool call failed.` every time. This tool looks up no record by id, so it never sends a text that names a record. The [error codes](/mcp/errors.md) page gives every text a read failure can carry.

## `booking.settings.get`

Your agent host shows this tool as "Get booking settings".

Read the authenticated student's own private booking settings: handle, publication state, booking page text, meeting location, scheduling rules, intake questions and cancellation policy.

Permissions: This tool needs `booking:read`, which the Authorize access page describes as "Read your booking settings, event types, bookings, and booking conflicts".

Risk: `read`. This tool only reads your own data. It never changes anything and it never asks for your approval.

### Input

| Property | Type | Required | Bounds |
| - | - | - | - |
| `cursor` | string | no | 1 to 256 characters; pattern `^[A-Za-z0-9_-]+$` |

### Example call

```json booking.settings.get input theme={"system"}
{}
```

### Result

A result is never larger than 16,384 bytes.
If the stored value does not fit, the tool returns a measured fragment and a cursor for the next one.

This tool's result takes one of these 2 forms, and one call returns exactly one of them. The field named beside each form below says which one you are looking at. Open a form to read its top-level fields.

> **Shape 1**
>
> ```json Top-level fields theme={"system"}
> [
>   "allowCancel",
>   "allowReschedule",
>   "bufferAfter",
>   "bufferBefore",
>   "calendarDescription",
>   "cancelDeadline",
>   "confirmationMessage",
>   "customBookingUrl",
>   "customLocationDetails",
>   "defaultLocation",
>   "displayName",
>   "headline",
>   "headlineSource",
>   "intakeQuestions",
>   "isPublic",
>   "maxPerDay",
>   "minimumNotice",
>   "rollingDays",
>   "showLinkedIn",
>   "showResume",
>   "useCustomUrl",
>   "username",
>   "welcomeMessage",
>   "zoomLink"
> ]
> ```

> **Shape 2**
>
> ```json Top-level fields theme={"system"}
> [
>   "fragment",
>   "nextCursor"
> ]
> ```

### Errors

A failed call returns one protocol error with no error code, and its text is `Tool call failed.` every time. This tool looks up no record by id, so it never sends a text that names a record. The [error codes](/mcp/errors.md) page gives every text a read failure can carry.

## `booking.event_types.list`

Your agent host shows this tool as "List event types".

List the authenticated host's event types with bounded pagination and an opaque cursor.

Permissions: This tool needs `booking:read`, which the Authorize access page describes as "Read your booking settings, event types, bookings, and booking conflicts".

Risk: `read`. This tool only reads your own data. It never changes anything and it never asks for your approval.

### Input

| Property | Type | Required | Bounds |
| - | - | - | - |
| `cursor` | string | no | 1 to 256 characters; pattern `^[A-Za-z0-9_-]+$` |
| `limit` | integer | no | from 1 to 20 |

### Example call

```json booking.event_types.list input theme={"system"}
{
  "limit": 10
}
```

### Result

A result is never larger than 16,384 bytes.

A result carries these top-level fields:

```json Top-level fields theme={"system"}
[
  "eventTypes",
  "nextCursor"
]
```

### Errors

A failed call returns one protocol error with no error code, and its text is `Tool call failed.` every time. This tool looks up no record by id, so it never sends a text that names a record. The [error codes](/mcp/errors.md) page gives every text a read failure can carry.

## `booking.event_types.get`

Your agent host shows this tool as "Get event type".

Read one authenticated host event type by id with owner-checked lookup.

Permissions: This tool needs `booking:read`, which the Authorize access page describes as "Read your booking settings, event types, bookings, and booking conflicts".

Risk: `read`. This tool only reads your own data. It never changes anything and it never asks for your approval.

### Input

| Property | Type | Required | Bounds |
| - | - | - | - |
| `id` | string | yes | pattern `^[a-f0-9]{24}$` |

### Example call

```json booking.event_types.get input theme={"system"}
{
  "id": "c0ffeec0ffeec0ffee000005"
}
```

### Result

A result is never larger than 16,384 bytes.

A result carries these top-level fields:

```json Top-level fields theme={"system"}
[
  "eventType"
]
```

### Errors

A failed call returns one protocol error with no error code. Its text is `Tool call failed.` in every case but one: a call that finds no event type of yours says so and tells the agent to call the matching list tool. The [error codes](/mcp/errors.md) page quotes that text in full and lists the eight kinds of record it can name.

## `booking.event_types.questions.list`

Your agent host shows this tool as "List event type questions".

List one authenticated host event type's questions in stable stored order.

Permissions: This tool needs `booking:read`, which the Authorize access page describes as "Read your booking settings, event types, bookings, and booking conflicts".

Risk: `read`. This tool only reads your own data. It never changes anything and it never asks for your approval.

### Input

| Property | Type | Required | Bounds |
| - | - | - | - |
| `cursor` | string | no | 1 to 256 characters; pattern `^[A-Za-z0-9_-]+$` |
| `id` | string | yes | pattern `^[a-f0-9]{24}$` |

### Example call

```json booking.event_types.questions.list input theme={"system"}
{
  "id": "c0ffeec0ffeec0ffee000005"
}
```

### Result

A result is never larger than 16,384 bytes.

A result carries these top-level fields:

```json Top-level fields theme={"system"}
[
  "nextCursor",
  "questions"
]
```

### Errors

A failed call returns one protocol error with no error code. Its text is `Tool call failed.` in every case but one: a call that finds no event type of yours says so and tells the agent to call the matching list tool. The [error codes](/mcp/errors.md) page quotes that text in full and lists the eight kinds of record it can name.

## `booking.records.list`

Your agent host shows this tool as "List bookings".

List the authenticated host's bookings, including canceled records, with bounded pagination.

Permissions: This tool needs `booking:read`, which the Authorize access page describes as "Read your booking settings, event types, bookings, and booking conflicts".

Risk: `read`. This tool only reads your own data. It never changes anything and it never asks for your approval.

### Input

| Property | Type | Required | Bounds |
| - | - | - | - |
| `cursor` | string | no | 1 to 512 characters; pattern `^[A-Za-z0-9_-]+$` |
| `limit` | integer | no | from 1 to 20 |
| `status` | string | no | one of `PENDING`, `CONFIRMED`, `CANCELED`, `RESCHEDULED`, `NO_SHOW`, `COMPLETED` |

### Example call

```json booking.records.list input theme={"system"}
{
  "limit": 10,
  "status": "CONFIRMED"
}
```

### Result

A result is never larger than 16,384 bytes.
If the stored value does not fit, the tool returns a measured fragment and a cursor for the next one.

This tool's result takes one of these 2 forms, and one call returns exactly one of them. The field named beside each form below says which one you are looking at. Open a form to read its top-level fields.

> **Shape 1**
>
> ```json Top-level fields theme={"system"}
> [
>   "bookings",
>   "nextCursor"
> ]
> ```

> **Shape 2**
>
> ```json Top-level fields theme={"system"}
> [
>   "bookings",
>   "fragment",
>   "nextCursor"
> ]
> ```

### Errors

A failed call returns one protocol error with no error code, and its text is `Tool call failed.` every time. This tool looks up no record by id, so it never sends a text that names a record. The [error codes](/mcp/errors.md) page gives every text a read failure can carry.

## `booking.records.get`

Your agent host shows this tool as "Get booking".

Read one booking owned by the authenticated host without guest tokens or provider identifiers.

Permissions: This tool needs `booking:read`, which the Authorize access page describes as "Read your booking settings, event types, bookings, and booking conflicts".

Risk: `read`. This tool only reads your own data. It never changes anything and it never asks for your approval.

### Input

| Property | Type | Required | Bounds |
| - | - | - | - |
| `cursor` | string | no | 1 to 512 characters; pattern `^[A-Za-z0-9_-]+$` |
| `id` | string | yes | pattern `^[a-f0-9]{24}$` |

### Example call

```json booking.records.get input theme={"system"}
{
  "id": "c0ffeec0ffeec0ffee000006"
}
```

### Result

A result is never larger than 16,384 bytes.
If the stored value does not fit, the tool returns a measured fragment and a cursor for the next one.

This tool's result takes one of these 2 forms, and one call returns exactly one of them. The field named beside each form below says which one you are looking at. Open a form to read its top-level fields.

> **Shape 1**
>
> ```json Top-level fields theme={"system"}
> [
>   "booking"
> ]
> ```

> **Shape 2**
>
> ```json Top-level fields theme={"system"}
> [
>   "booking",
>   "fragment",
>   "nextCursor"
> ]
> ```

### Errors

A failed call returns one protocol error with no error code. Its text is `Tool call failed.` in every case but one: a call that finds no booking of yours says so and tells the agent to call the matching list tool. The [error codes](/mcp/errors.md) page quotes that text in full and lists the eight kinds of record it can name.

## `booking.records.answers.list`

Your agent host shows this tool as "List booking answers".

List one owned booking's intake answers in stable stored order with bounded pagination.

Permissions: This tool needs `booking:read`, which the Authorize access page describes as "Read your booking settings, event types, bookings, and booking conflicts".

Risk: `read`. This tool only reads your own data. It never changes anything and it never asks for your approval.

### Input

| Property | Type | Required | Bounds |
| - | - | - | - |
| `cursor` | string | no | 1 to 512 characters; pattern `^[A-Za-z0-9_-]+$` |
| `id` | string | yes | pattern `^[a-f0-9]{24}$` |

### Example call

```json booking.records.answers.list input theme={"system"}
{
  "id": "c0ffeec0ffeec0ffee000006"
}
```

### Result

A result is never larger than 16,384 bytes.

A result carries these top-level fields:

```json Top-level fields theme={"system"}
[
  "answers",
  "nextCursor"
]
```

### Errors

A failed call returns one protocol error with no error code. Its text is `Tool call failed.` in every case but one: a call that finds no booking of yours says so and tells the agent to call the matching list tool. The [error codes](/mcp/errors.md) page quotes that text in full and lists the eight kinds of record it can name.

## `booking.conflicts.list`

Your agent host shows this tool as "List booking conflicts".

List unresolved future booking conflicts for the authenticated host; detectedAt is the background check time.

Permissions: This tool needs `booking:read`, which the Authorize access page describes as "Read your booking settings, event types, bookings, and booking conflicts".

Risk: `read`. This tool only reads your own data. It never changes anything and it never asks for your approval.

### Input

| Property | Type | Required | Bounds |
| - | - | - | - |
| `cursor` | string | no | 1 to 512 characters; pattern `^[A-Za-z0-9_-]+$` |

### Example call

```json booking.conflicts.list input theme={"system"}
{}
```

### Result

A result is never larger than 16,384 bytes.
If the stored value does not fit, the tool returns a measured fragment and a cursor for the next one.

This tool's result takes one of these 2 forms, and one call returns exactly one of them. The field named beside each form below says which one you are looking at. Open a form to read its top-level fields.

> **Shape 1**
>
> ```json Top-level fields theme={"system"}
> [
>   "conflicts",
>   "nextCursor"
> ]
> ```

> **Shape 2**
>
> ```json Top-level fields theme={"system"}
> [
>   "conflicts",
>   "fragment",
>   "nextCursor"
> ]
> ```

### Errors

A failed call returns one protocol error with no error code, and its text is `Tool call failed.` every time. This tool looks up no record by id, so it never sends a text that names a record. The [error codes](/mcp/errors.md) page gives every text a read failure can carry.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.