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

# Availability

> Define when you can be booked, with multi-calendar conflict checking

Availability is the set of rules that determine when bookers can grab a slot on your calendar. Hiveku combines your work hours, blackout dates, recurring blocks, and live free/busy data from your connected calendars to offer only slots when you're actually free.

Configure availability in `/dashboard/calendar/` under the **Availability** tab.

## What goes into "available"?

A slot is offered to the booker only if **all** of these are true:

1. It falls inside your **work hours** for that weekday
2. It is not inside a **blackout date** (vacation, holiday, etc.)
3. It is not inside a **recurring block** (lunch, focus time)
4. It is not in conflict with an event on any **connected calendar**
5. The meeting type's **daily cap** has not been hit
6. Buffer time before and after fits cleanly

<Info>
  Availability is checked in real time when the booking page loads. Add a vacation day at 9 AM and the slot disappears for new bookers immediately.
</Info>

## Work hours

Set the hours you're available for meetings on each weekday. Most teams configure something like 9 AM–12 PM and 1 PM–5 PM, Monday through Friday.

<Steps>
  <Step title="Pick your time zone">
    Set this once at the top of the Availability tab. Bookers see slots in their local time, but rules are stored in yours.
  </Step>

  <Step title="Set hours per weekday">
    Toggle each day on or off, then drag the time range. You can split a day into multiple ranges (morning + afternoon).
  </Step>

  <Step title="Save">
    The new schedule applies to all future bookings. Existing bookings are not affected.
  </Step>
</Steps>

<Tip>
  Use multiple ranges on the same day to carve out lunch — for example, "Monday: 9 AM–12 PM, 1 PM–5 PM". Skip the recurring blocks step entirely.
</Tip>

## Blackout dates

Blackout dates remove specific calendar days from your availability. Use for:

* **Vacation** — full days or partial days off
* **Public holidays** — federal, regional, or company holidays
* **Conferences** — days you're traveling and not bookable
* **Personal events** — weddings, appointments, family time

Add blackout dates from the **Availability** tab. Single days, date ranges, and partial days (e.g., "Friday afternoon only") are all supported.

<Warning>
  Blackout dates do **not** cancel existing bookings. If you add a blackout for next Tuesday but already have a 2 PM meeting that day, the meeting stays. Cancel manually from the **Bookings** tab.
</Warning>

## Recurring blocks

Recurring blocks are weekly time ranges that are always blocked. Common uses:

* **Lunch** — 12 PM–1 PM, every weekday
* **Focus time** — Tuesday and Thursday mornings, 9 AM–11 AM
* **Team standup** — Monday 9:30 AM–9:45 AM

Recurring blocks repeat indefinitely until you remove them. To skip a single occurrence, add a blackout date for that day.

## Multi-calendar conflict checking

This is the killer feature: Hiveku reads free/busy from every calendar you connect and excludes any time that's already booked.

<Tabs>
  <Tab title="Google Calendar">
    Connect via [Connect Google Calendar](/how-tos/connect-google-calendar). Hiveku reads your primary calendar plus any secondary or shared calendars you grant access to. Even private events block bookings — just the title is hidden.
  </Tab>

  <Tab title="Outlook">
    Connect via [Connect Outlook](/how-tos/connect-outlook). Both your work (Microsoft 365) and personal (Outlook.com) calendars are supported, and you can connect both at once.
  </Tab>

  <Tab title="Multiple accounts">
    You can connect multiple Google accounts and multiple Outlook accounts on the same Hiveku user — say, a personal Gmail and a work Google Workspace. All of them are checked before a slot is offered.
  </Tab>
</Tabs>

<Info>
  Bookings made on Hiveku are written **back** to the primary calendar of your choice. Pick which calendar receives new events from the dropdown at the top of the Availability tab.
</Info>

## Minimum notice and booking window

Two safeguards keep your schedule sane:

* **Minimum notice** — How close to the start time someone can still book. Default is 1 hour. Common settings: 4 hours, 24 hours.
* **Booking window** — How far into the future bookers can grab a slot. Default is 30 days. Common settings: 14 days, 60 days, 90 days.

Both protect against last-minute surprises and far-future bookings you'll forget about.

## Slot increments

Choose how granular the offered slots are:

* **Every 15 minutes** — most flexible (default for 15-min meetings)
* **Every 30 minutes** — clean half-hour starts (default for 30-min meetings)
* **Every hour** — top-of-the-hour only

A 15-minute increment with a 30-minute meeting type means slots like 9:00, 9:15, 9:30, 9:45 — back-to-back bookings can overlap (so add a buffer).

## Time zone behavior

Your availability is **stored** in your time zone but **displayed** in the booker's time zone on the public page. If you're in New York (Eastern) and configure 9 AM–5 PM, a booker in San Francisco sees 6 AM–2 PM. Daylight savings is handled automatically.

<Tip>
  When you travel, your stored availability does not move with you. If you'll work different hours from a different country for a stretch, update your time zone or add temporary blackouts.
</Tip>

## API

```bash theme={null}
# Read your current availability rules
curl https://api.hiveku.com/api/calendar/availability \
  -H "Authorization: Bearer hk_live_xxx"

# Update work hours and recurring blocks
curl -X POST https://api.hiveku.com/api/calendar/availability \
  -H "Authorization: Bearer hk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "timezone": "America/New_York",
    "work_hours": {
      "monday": [{"start": "09:00", "end": "17:00"}],
      "tuesday": [{"start": "09:00", "end": "12:00"}, {"start": "13:00", "end": "17:00"}]
    },
    "min_notice_hours": 4,
    "booking_window_days": 30
  }'
```

## Troubleshooting

<AccordionGroup>
  <Accordion title="A booker says no slots are available, but I am free">
    Check that your calendar connection is healthy in Settings > Integrations. An expired token silently blocks all slots until reconnected. Also check minimum notice — a 24-hour minimum hides today entirely.
  </Accordion>

  <Accordion title="I'm getting double-booked">
    Make sure every relevant calendar is connected. If your team uses a separate "Holds" calendar, connect that one too. Also check for duplicate calendars (e.g., primary and a synced copy) — only the primary needs to be the write target.
  </Accordion>

  <Accordion title="My time zone is wrong">
    Update the time zone at the top of the Availability tab. Bookings already on the calendar keep their original time — only future slots are recalculated.
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Meeting types" icon="clock" href="/calendar/meeting-types">
    Define what bookers can schedule.
  </Card>

  <Card title="Team calendars" icon="users" href="/calendar/team-calendars">
    Apply availability rules across multiple users.
  </Card>
</CardGroup>
