> ## 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.

# Reserve slot

> Reserves an available Cal.com slot.

`calcom.reserveSlot` reserves an available Cal.com slot.

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

export default automation("Reserve slot", () => {
  markSignificant(
    calcom.reserveSlot({
      eventTypeId: 23,
      slotStart: "2026-09-10T17:00:00.000Z",
    }),
  )
})
```

## Input

| Field                 | Type                 | Required | Description                                |
| --------------------- | -------------------- | -------- | ------------------------------------------ |
| `eventTypeId`         | `number`             | Yes      | Event type whose slot to reserve.          |
| `slotStart`           | `string (date-time)` | Yes      | Slot start in UTC.                         |
| `slotDuration`        | `number`             | No       | Slot length in minutes.                    |
| `reservationDuration` | `number`             | No       | Hold duration in minutes; defaults to `5`. |

## Output

| Field                 | Type                 | Required | Description                          |
| --------------------- | -------------------- | -------- | ------------------------------------ |
| `eventTypeId`         | `number`             | Yes      | Event type that owns the slot.       |
| `slotStart`           | `string (date-time)` | Yes      | Reserved slot start.                 |
| `slotEnd`             | `string (date-time)` | Yes      | Reserved slot end.                   |
| `slotDuration`        | `number`             | Yes      | Slot length in minutes.              |
| `reservationUid`      | `string`             | Yes      | Reservation identifier.              |
| `reservationDuration` | `number`             | Yes      | Hold duration in minutes.            |
| `reservationUntil`    | `string (date-time)` | Yes      | Time when Cal.com releases the hold. |

Cal.com enforces account role, plan, and availability requirements. Provider rejections surface as structured action failures with the HTTP status and any `Retry-After` delay.
