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

> Creates an appointment on a calendar.

`highlevel.createAppointment` creates an appointment on a calendar.

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

export default automation("Create appointment", () => {
  markSignificant(
    highlevel.createAppointment({
      calendarId: "CVokAlI8fgw4WYWoCtQz",
      contactId: "0007BWpSzSwfiuSl0tR2",
      startTime: "2021-06-23T03:30:00+05:30",
    }),
  )
})
```

## Input

| Field                      | Type                                                                | Required | Description                                                                                                                                                      |
| -------------------------- | ------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `title`                    | `string`                                                            | No       | Title                                                                                                                                                            |
| `meetingLocationType`      | `custom \| zoom \| gmeet \| phone \| address \| ms_teams \| google` | No       | Meeting location type. - If `address` is provided in the request body, the `meetingLocationType` defaults to **custom**.                                         |
| `meetingLocationId`        | `string`                                                            | No       | The unique identifier for the meeting location. - This value can be found in `calendar.locationConfigurations`or `calendar.teamMembers[].locationConfigurations` |
| `overrideLocationConfig`   | `boolean`                                                           | No       | Flag to override location config - **false** - If only `meetingLocationId` is provided - **true** - If only `meetingLocationType` is provided                    |
| `appointmentStatus`        | `new \| confirmed \| cancelled \| showed \| noshow \| invalid`      | No       | HighLevel appointment status value.                                                                                                                              |
| `assignedUserId`           | `string`                                                            | No       | Assigned User Id                                                                                                                                                 |
| `description`              | `string`                                                            | No       | Appointment Description                                                                                                                                          |
| `address`                  | `string`                                                            | No       | Appointment Address                                                                                                                                              |
| `ignoreDateRange`          | `boolean`                                                           | No       | If set to true, the minimum scheduling notice and date range would be ignored                                                                                    |
| `toNotify`                 | `boolean`                                                           | No       | If set to false, the automations will not run                                                                                                                    |
| `ignoreFreeSlotValidation` | `boolean`                                                           | No       | If true the time slot validation would be avoided for any appointment creation (even the ignoreDateRange)                                                        |
| `rrule`                    | `string`                                                            | No       | iCalendar RFC 5545 recurrence rule. HighLevel derives instance IDs from the event start time and applies the rule only when free-slot validation is disabled.    |
| `calendarId`               | `string`                                                            | Yes      | Calendar Id                                                                                                                                                      |
| `contactId`                | `string`                                                            | Yes      | Contact Id                                                                                                                                                       |
| `startTime`                | `string`                                                            | Yes      | Start Time                                                                                                                                                       |
| `endTime`                  | `string`                                                            | No       | End Time                                                                                                                                                         |

Automate.ax supplies the connected sub-account's location ID. Optional second argument `{ account }` selects a named HighLevel binding.

## Output

| Field                 | Type                                                                                  | Required | Description                                                              |
| --------------------- | ------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------ |
| `calendarId`          | `string`                                                                              | Yes      | Calendar Id                                                              |
| `locationId`          | `string`                                                                              | Yes      | Location Id                                                              |
| `contactId`           | `string`                                                                              | Yes      | Contact Id                                                               |
| `startTime`           | `string`                                                                              | No       | Start Time                                                               |
| `endTime`             | `string`                                                                              | No       | End Time                                                                 |
| `title`               | `string`                                                                              | No       | Title                                                                    |
| `meetingLocationType` | `string`                                                                              | No       | Meeting Location Type                                                    |
| `appointmentStatus`   | `new \| confirmed \| cancelled \| showed \| noshow \| invalid \| active \| completed` | No       | HighLevel appointment status value.                                      |
| `assignedUserId`      | `string`                                                                              | No       | Assigned User Id                                                         |
| `address`             | `string`                                                                              | No       | Appointment Address                                                      |
| `isRecurring`         | `boolean`                                                                             | No       | true if the event is recurring otherwise false                           |
| `rrule`               | `string`                                                                              | No       | RRULE as per the iCalendar (RFC 5545) specification for recurring events |
| `id`                  | `string`                                                                              | Yes      | Id                                                                       |

This action calls `POST /calendars/events/appointments` with HighLevel API version `2021-04-15` and requires `calendars/events.write`. HighLevel validation and permission errors fail the action. Rate limits honor the provider's retry timing. Automate.ax does not automatically replay this create or send operation after an indeterminate transport failure.
