# Availability and calendars

{/* AUTO-SYNCED SOURCE: this page lives in apps/app/src/modules/booking/docs/ and is mirrored into the docs app by `bun sync:module-docs`. Edit it in the module, not in apps/docs. */}

<Lead>
The **Availability** area decides which times guests are offered at all. It has three tabs: **Zeitpläne** (schedules, your weekly grid with overrides), **Kalender** (connecting external calendars) and **Erweitert** (advanced: meeting limits and holidays).
</Lead>

Editing schedules, holidays and limits requires the configure permission. Calendar connections apply per person: each team member connects their own calendar.

## Schedules

On installation the tool automatically creates a default schedule called **Arbeitszeiten** (working hours): Monday to Friday, 09:00 to 17:00, time zone Europe/Berlin.

### The weekly grid

- Several time windows per weekday, at most **6 windows per day** (for example mornings, afternoons and a viewing evening).
- A day's hours can be **copied** to other weekdays with one click.
- Saving happens **automatically**: the status line shows "Gespeichert" (saved) or, for invalid input, a note that the windows need checking before saving.
- Invalid input is named clearly, for example overlapping windows. While an error is shown, the previous state stays active.

### Multiple schedules and the default

You can create any number of schedules, for example "working hours" and "viewing evenings". Each event type picks its schedule in the editor; a badge on the schedule shows on how many event types it is active. A schedule's menu offers **rename**, **duplicate**, **set as default** and **delete**. The default schedule is assigned to new event types automatically.

<Info title="Deleting only when unused">
A schedule still used by event types cannot be deleted ("Dieser Zeitplan wird noch von Terminarten verwendet."). Assign the affected event types a different schedule first.
</Info>

### Importing business hours

**Öffnungszeiten übernehmen** (import business hours) pulls the hours from your company profile into the schedule, with a preview before anything is replaced. Handy when your appointment hours match your office hours.

### Time zone

Each schedule has its own time zone. The weekly grid applies in that time zone; guests automatically see times in their own. You never have to convert, not even for international prospects.

### Date overrides

For vacation, trade fairs or special days you create **date overrides**:

- **All-day** (the day is not bookable at all) or with **custom windows** (only certain times bookable).
- Also as a **range** of up to 31 days in one go, for the summer vacation for example.

<Warning title="Two things you must know">
First: the override **replaces the weekly grid for that day entirely**. It is not grid plus override, only the override applies. Second: if a day already has booked appointments, the tool warns explicitly, because an override **never cancels anything automatically**. You reschedule or cancel existing appointments yourself, see [Meetings](/tools/booking/termine).
</Warning>

## Calendars

The **Kalender** tab connects your external calendars in both directions: busy times block your booking page, and booked appointments land in your calendar.

### Google and Outlook via one-click sign-in

The easiest way to connect Google Calendar and Outlook is **Mit Google anmelden** (sign in with Google) or **Mit Microsoft anmelden** (sign in with Microsoft). After that:

- Busy times block your booking page **in real time**.
- Bookings land in your calendar automatically; cancellations and reschedules remove or move the entry.
- Video event types without a fixed link automatically get a **Meet** or **Teams** link.

After a successful sign-in the tool confirms that the calendar account is connected and busy times are blocked from now on. You can disconnect any time via **Kalenderkonto trennen** (disconnect calendar account). If you see a message that the one-click sign-in is not configured, use the iCal route (see [Troubleshooting](/tools/booking/troubleshooting)).

### Any other calendar via iCal

Any calendar, including **iCloud** or Exchange, works via its **private iCal address**: copy the address in your calendar service, paste it in the tool, connect. The connect dialog includes click-by-click instructions for Google, Outlook and Apple iCloud; any other iCal or webcal address works just the same.

<Callout tone="success" title="Privacy: free/busy only">
From connected calendars the tool reads exclusively **when** you are busy. Titles, attendees or contents of your calendar entries are never read.
</Callout>

### Feed status

Each connected calendar feed shows its status: **active**, **error**, **waiting** or **disconnected**. **Jetzt synchronisieren** (sync now) triggers an immediate refresh. If syncing stays broken for a while, the tool overview shows a warning banner that calendar sync is disrupted and busy times are currently not being blocked.

### Export: subscribing to your bookings

The other way around, you can **subscribe** to your bookings as a calendar feed: the tool generates a secret feed address you add to Google, Outlook or Apple Calendar. Treat the address like a password. If it leaks, **Erneuern** (renew) generates a new address; the old one becomes invalid.

## Advanced

### Meeting limits

Define how many appointments a person accepts at most **per day** and **per week**, across all event types. Leaving a field empty means no limit; the per-day limit of individual event types still applies on top. This prevents days that fill up completely with viewings.

### Holidays

A master switch enables holiday blocking. You then pick the country (**Germany**, **Austria** or **Switzerland**) and, for Germany, your **federal state**, since holidays differ per state. The tool lists the holidays of the coming 12 months, each with its own switch: you can deliberately keep single holidays bookable (if you do offer viewings on Reformation Day, say).

## Further reading

Back to the overview: [Appointment Booking](/tools/booking). Next page: [Meetings](/tools/booking/termine). For sync problems: [Troubleshooting](/tools/booking/troubleshooting).
