## Overview

**Prevent overlapping appointments** makes the platform **refuse** to create or reschedule an
appointment when it overlaps another one **on the same calendar**.

Until this setting existed, the module's only conflict check lived in the **public booking page** —
which has always offered free slots only. The direct path (the dashboard, the API and the bot's
calendar tools) had no check at all: nothing stopped two appointments at 08:00 and 08:30 on the same
calendar.

> **It is optional and ships off.** For a good reason: in many operations **several attendants share
> one calendar** and book at the same time on purpose. Turning it on by default would break those
> accounts. Turn it on only where overlapping really is a mistake.

## Prerequisites

- The **Calendar** module enabled on the account.
- **Administrator** permission to change the Calendar settings and the calendars themselves.
- At least one calendar created.

## Step by step

### Set the account default

1. Open **Calendar** and go to **Settings**.
2. Under **Scheduling defaults**, turn on **Prevent overlapping appointments**.
3. Save.

From then on, every calendar that has **no** decision of its own follows that default.

### Set a per-calendar exception

1. Open the Calendar's calendar list and edit the calendar you want.
2. In the **Overlapping appointments** field, pick one of three options:
   - **Use the Agenda default** — inherits the account setting (this is how every calendar starts);
   - **Block overlaps** — always prevents them, even with the account default off;
   - **Allow overlaps** — always permits them, even with the account default on.
3. Save.

## Settings & options

### How the decision is resolved

The rule is read top-down, and the first explicit decision wins:

```
calendar setting  →  Calendar default (account)  →  off
```

A calendar on **Use the Agenda default** simply follows the account — and goes back to following it if
you change the default later.

### Exactly what gets blocked

| Path | Behavior with the setting on |
|---|---|
| **Creating** an appointment from the dashboard, the API or a bot tool | fails if there is an overlap on the same calendar |
| **Rescheduling** (changing the date/time) | fails if the **new** time overlaps another appointment |
| **Editing** an appointment **without touching the time** | not checked — the check only runs when the date/time changes |
| **Booking from the public page** | unchanged: that page has always had its own conflict check and only offers free slots |

The comparison is always **within the same calendar**. Two different calendars never conflict with
each other, even if they belong to the same attendant.

### What counts as busy

Not every appointment blocks a slot. These are **left out** of the check:

- **cancelled** appointments — a cancellation gives the slot back;
- appointments marked **Free** (transparent, in Google Calendar's vocabulary) — they show up in the
  grid but do not occupy the host.

It is the same definition of "busy" the public booking page already used, on purpose: both sides of
the module agree on what a taken slot is.

An appointment marked **Free** is also not blocked when rescheduled — it never occupied anything.

### What the user sees

When the setting is on and there is a clash, the operation **fails** with a message that **names the
conflicting appointment**:

> This time overlaps the appointment "Client meeting" on the same calendar. Choose another time.

Nothing is half-saved: the appointment is simply not created (or not rescheduled).

## Use cases

- **A single-person calendar** (a clinic, a lawyer, a consultant): turning it on in the account
  default prevents the classic double booking.
- **A team with one calendar per attendant**: turning it on in the account default protects everyone,
  since each calendar belongs to one person.
- **A deliberately shared calendar** (a room, a class, an on-call shift with several attendants):
  leave that calendar on **Allow overlaps**, even with the account default on.
- **A calendar operated by the bot**: with the setting on, the bot cannot book over a taken slot — the
  tool fails and it has to offer another time.
- **Migrating a calendar**: leave it off while importing old appointments; turn it on once the data is
  tidy.

## Tips, limits & best practices

- **Turning it on does not fix what already exists.** The setting applies to what is created or
  rescheduled from now on. Overlaps already saved stay there — review them by hand.
- **It is per calendar, not per attendant.** If the same person works out of two calendars, one
  appointment on each is **not** treated as a conflict.
- **Appointments coming from Google** arrive through the sync and start counting as busy (if they are
  active and not marked Free) — but the sync itself is not refused; the setting acts on the direct
  path.
- **The public page never depended on this setting.** It avoided conflicts before and still does
  after — including with the setting off.
- **Mark as Free whatever genuinely does not occupy** the host (a personal reminder, an informational
  block). That keeps the check useful instead of noisy.
- **If the team complains that they "can't save"**, the first place to look is the **calendar's**
  setting, not the account's: an exception on *Block overlaps* beats an account default that is off.

## Troubleshooting

- **"I can't save an appointment"**: there is an overlap on the same calendar. The message names the
  conflicting appointment — open it, confirm whether it is still valid and choose another time, or
  cancel the old one.
- **"I turned it off in Calendar settings and it still blocks"**: that calendar has its own exception
  on **Block overlaps**. Switch it to *Use the Agenda default* or *Allow overlaps*.
- **"I turned it on and it still lets me double-book"**: either that calendar is on **Allow overlaps**,
  or the existing appointment is **cancelled** or marked **Free** — neither occupies a slot. Also
  check that both appointments really are on the **same** calendar.
- **"I edited the title and got an overlap error"**: the check only runs when the date/time changes. If
  you got the error, the time was changed too — check the start and end fields.
- **"The bot said it couldn't book"**: with the setting on, that is the expected behavior on a taken
  slot. Ask the contact for another time, or free the slot on the calendar.
- **"Two attendants need the same slot"**: use one calendar per attendant, or leave that calendar on
  **Allow overlaps**.

## See also

- [Event types, availability and buffers](/hc/ajuda/articles/calendar-scheduling-tipos-de-evento-disponibilidade-buffers-en)
- [Cascading availability](/hc/ajuda/articles/calendar-scheduling-disponibilidade-em-cascata-en)
- [Public booking page](/hc/ajuda/articles/calendar-scheduling-pagina-publica-de-agendamento-en)
- [Reschedule, cancel, Meet and .ics](/hc/ajuda/articles/calendar-scheduling-reagendar-cancelar-meet-ics-en)
- [Calendar overview](/hc/ajuda/articles/calendar-scheduling-overview-en)