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

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# On booking requested

> Subscribes when a booking awaits host approval.

`calcom.onBookingRequested` subscribes when a booking awaits host approval.

```ts automations/on-booking-requested.automation.ts theme={null}
import { automation, markSignificant } from "automate.ax"
import { calcom } from "automate.ax/calcom"

export default automation("On booking requested", () => {
  const event = calcom.onBookingRequested()
  markSignificant(event)
})
```

## Scope

Omit `scope` for personal bookings. To watch one team-owned Collective or Round Robin event type, pass `{ type: "team", teamId, eventTypeId }`. Team scope requires a Cal.com Teams plan or higher and an API key owned by a team admin or owner.

## Event

| Field                                 | Type                  | Required |
| ------------------------------------- | --------------------- | -------- |
| `createdAt`                           | `string (date-time)`  | Yes      |
| `payload`                             | `object`              | Yes      |
| `payload.additionalNotes`             | `string`              | No       |
| `payload.attendees`                   | `object[]`            | Yes      |
| `payload.attendees[].email`           | `string (email)`      | Yes      |
| `payload.attendees[].id`              | `integer`             | No       |
| `payload.attendees[].language`        | `object`              | Yes      |
| `payload.attendees[].language.locale` | `string`              | Yes      |
| `payload.attendees[].name`            | `string`              | Yes      |
| `payload.attendees[].phoneNumber`     | `string \| null`      | No       |
| `payload.attendees[].timeZone`        | `string`              | Yes      |
| `payload.attendees[].username`        | `string \| null`      | No       |
| `payload.attendees[].utcOffset`       | `number`              | No       |
| `payload.bookingId`                   | `integer`             | Yes      |
| `payload.customInputs`                | `object \| null`      | No       |
| `payload.description`                 | `string`              | Yes      |
| `payload.endTime`                     | `string`              | Yes      |
| `payload.eventDescription`            | `string \| null`      | No       |
| `payload.eventTitle`                  | `string`              | No       |
| `payload.eventTypeId`                 | `integer \| null`     | No       |
| `payload.location`                    | `JSON value`          | No       |
| `payload.metadata`                    | `object`              | No       |
| `payload.organizer`                   | `object`              | Yes      |
| `payload.organizer.email`             | `string (email)`      | Yes      |
| `payload.organizer.id`                | `integer`             | No       |
| `payload.organizer.language`          | `object`              | Yes      |
| `payload.organizer.language.locale`   | `string`              | Yes      |
| `payload.organizer.name`              | `string`              | Yes      |
| `payload.organizer.phoneNumber`       | `string \| null`      | No       |
| `payload.organizer.timeZone`          | `string`              | Yes      |
| `payload.organizer.username`          | `string \| null`      | No       |
| `payload.organizer.utcOffset`         | `number`              | No       |
| `payload.responses`                   | `object \| null`      | No       |
| `payload.startTime`                   | `string`              | Yes      |
| `payload.status`                      | `string`              | Yes      |
| `payload.title`                       | `string`              | Yes      |
| `payload.type`                        | `string`              | Yes      |
| `payload.uid`                         | `string`              | Yes      |
| `payload.requiresConfirmation`        | `boolean`             | Yes      |
| `triggerEvent`                        | `"BOOKING_REQUESTED"` | Yes      |

Additional provider fields are preserved.

Automate.ax creates and maintains the Cal.com webhook, verifies `x-cal-signature-256`, and deduplicates provider retries. Use `calcom.onEvent` when one automation should receive every supported Cal.com event.
