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

# TidyCal

> Manage TidyCal bookings and teams through OAuth or personal tokens, and poll because TidyCal has no webhooks.

Automate.ax connects to TidyCal with OAuth or a personal access token. TidyCal requires an Individual, Agency, or Pro plan for API access.

Team actions require an Agency or Pro plan; TidyCal's Individual plan does not include Team Features.

Use the TidyCal actions to inspect bookings and availability, create booking types and bookings, manage contacts, and work with teams. TidyCal does not provide native webhooks, so this integration has no provider event triggers. Use `onSchedule` with a list action when you need polling.

```ts automations/check-tidycal-bookings.automation.ts theme={null}
import { automation, filter, markSignificant, onSchedule } from "automate.ax"
import { tidyCal } from "automate.ax/tidycal"

export default automation("Check TidyCal bookings", () => {
  const tick = onSchedule({ schedule: "0 * * * *" })

  const bookings = tidyCal.listBookings({
    startsAt: tick.scheduledAt.transform((date) =>
      date.toISOString().slice(0, 10),
    ),
    includeTeams: true,
  })

  const nonEmptyBookings = filter(bookings, (result) => result.items.length > 0)
  markSignificant(nonEmptyBookings)
})
```

TidyCal does not publish granular REST API scopes. OAuth and personal tokens therefore authorize the provider's complete API surface. Automate.ax never exposes the credential to your automation.

Create personal tokens from [TidyCal's advanced integrations settings](https://tidycal.com/integrations/advanced). See the [official API documentation](https://tidycal.com/developer/docs/) for provider plan and endpoint behavior.

## Exports

```ts theme={null}
import { tidyCal, tidyCalAccount, getTidyCalApi } from "automate.ax/tidycal"
```

* `tidyCal` contains the packaged TidyCal actions.
* `tidyCalAccount("name")` selects a named TidyCal connection.
* `getTidyCalApi` creates the authenticated TidyCal API helper for a custom account-backed action.

## Actions

* [Get account](/reference/integrations/tidycal/actions/get-account)
* [List bookings](/reference/integrations/tidycal/actions/list-bookings)
* [Get booking](/reference/integrations/tidycal/actions/get-booking)
* [Cancel booking](/reference/integrations/tidycal/actions/cancel-booking)
* [List booking types](/reference/integrations/tidycal/actions/list-booking-types)
* [Create booking type](/reference/integrations/tidycal/actions/create-booking-type)
* [List available time slots](/reference/integrations/tidycal/actions/list-available-timeslots)
* [Create booking](/reference/integrations/tidycal/actions/create-booking)
* [List contacts](/reference/integrations/tidycal/actions/list-contacts)
* [Create contact](/reference/integrations/tidycal/actions/create-contact)
* [List teams](/reference/integrations/tidycal/actions/list-teams)
* [Get team](/reference/integrations/tidycal/actions/get-team)
* [List team bookings](/reference/integrations/tidycal/actions/list-team-bookings)
* [List team users](/reference/integrations/tidycal/actions/list-team-users)
* [Add team user](/reference/integrations/tidycal/actions/add-team-user)
* [Remove team user](/reference/integrations/tidycal/actions/remove-team-user)
* [List team booking types](/reference/integrations/tidycal/actions/list-team-booking-types)
* [Create team booking type](/reference/integrations/tidycal/actions/create-team-booking-type)
