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

# Create schedule

> Creates a Cal.com availability schedule.

`calcom.createSchedule` creates a Cal.com availability schedule.

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

export default automation("Create schedule", () => {
  markSignificant(
    calcom.createSchedule({
      name: "Work hours",
      timeZone: "America/Los_Angeles",
      isDefault: false,
    }),
  )
})
```

## Input

| Field                      | Type       | Required | Description                                |
| -------------------------- | ---------- | -------- | ------------------------------------------ |
| `name`                     | `string`   | Yes      | Schedule name.                             |
| `timeZone`                 | `string`   | Yes      | IANA time zone.                            |
| `isDefault`                | `boolean`  | Yes      | Whether this becomes the default schedule. |
| `availability`             | `object[]` | No       | Weekly availability blocks.                |
| `availability[].days`      | `string[]` | Yes      | Weekdays for the block.                    |
| `availability[].startTime` | `string`   | Yes      | Start in `HH:MM` format.                   |
| `availability[].endTime`   | `string`   | Yes      | End in `HH:MM` format.                     |
| `overrides`                | `object[]` | No       | Date-specific availability blocks.         |
| `overrides[].date`         | `string`   | Yes      | Override date.                             |
| `overrides[].startTime`    | `string`   | Yes      | Start in `HH:MM` format.                   |
| `overrides[].endTime`      | `string`   | Yes      | End in `HH:MM` format.                     |

## Output

Returns the created schedule with required `id`, `ownerId`, `name`, `timeZone`, `availability`, `isDefault`, and `overrides` fields.

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.
