> ## Documentation Index
> Fetch the complete documentation index at: https://docs.featherhq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Calendars

> Calendars, schedules, event types, bookings, and external connections give Feather agents a native scheduling layer.

Calendars let Feather agents do more than suggest a next step. They can expose structured availability, create bookings, and connect to external calendars when needed.

## Calendar Building Blocks

* **Calendar**: the top-level scheduling container
* **Schedule**: when time is generally available
* **Event type**: the bookable meeting definition
* **Booking**: a scheduled appointment
* **Connection**: an external calendar account linked for sync

## Typical Setup Flow

1. Create a calendar
2. Add one or more schedules
3. Create event types
4. Optionally connect an external calendar
5. Query slots and create bookings from an agent or workflow

## Create a Calendar

```bash theme={"system"}
curl -X POST "https://prod.featherhq.com/api/v1/calendars" \
  -H "X-API-Key: $FEATHER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Sales team calendar",
    "description": "Primary scheduling calendar for demos"
  }'
```

## Create an Event Type

```bash theme={"system"}
curl -X POST "https://prod.featherhq.com/api/v1/calendars/CALENDAR_ID/event-types" \
  -H "X-API-Key: $FEATHER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "30-minute demo",
    "slug": "demo-30",
    "duration": 30,
    "slotInterval": 30,
    "minimumBookingNotice": 120,
    "location": "Google Meet",
    "addGoogleMeet": true
  }'
```

## Create a Booking

```bash theme={"system"}
curl -X POST "https://prod.featherhq.com/api/v1/calendar-bookings" \
  -H "X-API-Key: $FEATHER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "calendarId": "CALENDAR_ID",
    "eventTypeId": "EVENT_TYPE_ID",
    "startTime": "2026-03-18T18:00:00Z",
    "timezone": "America/New_York",
    "title": "Renewal review",
    "attendeeName": "Taylor Smith",
    "attendeeEmail": "taylor@example.com",
    "attendeePhone": "+14155550123",
    "leadId": "contact-123"
  }'
```

## When to Use Native Calendars

Native calendars are a good fit when you want:

* Agent-friendly booking APIs in the same platform
* Shared scheduling logic across voice and messaging channels
* Direct slot lookup and booking flows from workflows or tools

If you already run a separate scheduling stack, you can still use Feather tools or integrations to bridge into it.

## Related API Reference

<CardGroup cols={2}>
  <Card title="Calendars API" icon="code" href="/api-reference/calendars/create-a-calendar">
    Create and manage calendars.
  </Card>

  <Card title="Event Types API" icon="code" href="/api-reference/calendar-event-types/create-an-event-type">
    Define bookable meeting types.
  </Card>

  <Card title="Bookings API" icon="code" href="/api-reference/calendar-bookings/create-a-booking">
    Create, cancel, and reschedule bookings.
  </Card>

  <Card title="Connections API" icon="code" href="/api-reference/calendar-connections/get-oauth-url-for-external-calendar">
    Connect external calendar providers.
  </Card>
</CardGroup>
