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

# List available slots

> Lists available slots for a personal, team, or dynamic Cal.com event.

`calcom.listAvailableSlots` lists available slots for a personal, team, or dynamic Cal.com event.

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

export default automation("List available slots", () => {
  markSignificant(
    calcom.listAvailableSlots({
      eventTypeId: 23,
      start: "2026-09-10",
      end: "2026-09-11",
      timeZone: "UTC",
    }),
  )
})
```

## Input

Pass these fields:

| Field                    | Type                                  | Required | Description             |
| ------------------------ | ------------------------------------- | -------- | ----------------------- |
| `bookingUidToReschedule` | `string`                              | No       | —                       |
| `duration`               | `integer`                             | No       | Must be greater than 0. |
| `end`                    | `string (date) \| string (date-time)` | Yes      | —                       |
| `eventTypeId`            | `integer`                             | No       | Must be greater than 0. |
| `eventTypeSlug`          | `string`                              | No       | —                       |
| `format`                 | `"range" \| "time"`                   | No       | —                       |
| `organizationSlug`       | `string`                              | No       | —                       |
| `start`                  | `string (date) \| string (date-time)` | Yes      | —                       |
| `teamSlug`               | `string`                              | No       | —                       |
| `timeZone`               | `string`                              | No       | —                       |
| `username`               | `string`                              | No       | —                       |
| `usernames`              | `string[]`                            | No       | Minimum items: 2.       |

## Output

Returns a record keyed by date. Each value is an array of slot objects.

| Field            | Type      | Required | Description                                     |
| ---------------- | --------- | -------- | ----------------------------------------------- |
| `start`          | `string`  | Yes      | Slot start.                                     |
| `end`            | `string`  | No       | Slot end when `format` is `"range"`.            |
| `bookingUid`     | `string`  | No       | Booking identifier for a partially seated slot. |
| `seatsBooked`    | `integer` | No       | Seats already booked for a seated event.        |
| `seatsRemaining` | `integer` | No       | Seats still available for a seated event.       |
| `seatsTotal`     | `integer` | No       | Total seats for a seated event.                 |

Identify an event with `eventTypeId`, or use the slug and owner fields for a personal, team, organization, or dynamic event. The action sends multiple `usernames` as a comma-separated Cal.com filter.

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.
