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

# Calendar

> How to use OMNI's shared calendar: booking types, team availability and time off, reminders on WhatsApp and SMS, and online booking with a one-time code.

The **Calendar** battery adds a shared calendar for your team. You set what people can
book, who takes it and when they work. OMNI then offers only times that are really free,
sends confirmations and reminders on WhatsApp or SMS, and can let customers book
themselves online.

<Note>
  Your plan must include **Appointments** (the plan's name for Calendar). Without it, the
  Calendar screens say that appointments aren't in your plan.
</Note>

Open **Calendar** from the menu. It has three tabs: **Calendar**, **Booking types** and
**Settings**.

## Before you start

Appointments are switched off until someone turns them on. In **Calendar → Settings**,
turn on **Appointments on**. Until then, nothing can be booked and the calendar screens
show a notice.

<Steps>
  <Step title="Switch appointments on">
    In **Settings**, turn on **Appointments on** and save.
  </Step>

  <Step title="Add booking types">
    In **Booking types**, add what people can book — a consultation, a fitting, a demo.
  </Step>

  <Step title="Set your team's hours">
    In **Settings → Team availability**, set each teammate's working hours and the booking
    types they take.
  </Step>

  <Step title="Choose reminders">
    In **Settings**, add the reminders you want, for contacts and for teammates.
  </Step>
</Steps>

## The calendar

The **Calendar** tab shows appointments by **Month** or by **Day**. Choose whose calendar to
see — the whole organisation, **My calendar**, or one teammate — and filter by booking
type. The day view shows each teammate's appointments side by side, with busy times from
their own Google or Outlook calendar.

<Frame caption="The shared calendar">
  <img src="https://mintcdn.com/fire-flo-omno/qMiP0VYTVwEeCAoo/images/batteries/calendar.png?fit=max&auto=format&n=qMiP0VYTVwEeCAoo&q=85&s=b3e41554969f17fe8654e289326432bc" alt="The shared calendar in month view with appointments coloured by booking type" width="1440" height="900" data-path="images/batteries/calendar.png" />
</Frame>

Open an appointment to see its booking type, time, teammate, place or meeting link, who
booked it and where — the calendar, the Inbox, an AI agent, a workflow or the online
booking page — and its history. An appointment is **Requested**, **Confirmed**,
**Completed**, **Cancelled** or a **No-show**.

### Book an appointment

<Steps>
  <Step title="Open the booking form">
    Choose **Book** on the calendar, or **Book an appointment** beside a conversation in the
    Inbox.
  </Step>

  <Step title="Pick the contact and booking type">
    Search a name or number, then choose the booking type.
  </Step>

  <Step title="Pick a teammate and time">
    Leave the teammate as **Any available**, or pick one. OMNI lists the free times for the
    day you choose. You can type a time outside the free times; nothing then checks hours
    or time off, but it still can't overlap another appointment.
  </Step>

  <Step title="Book">
    Add notes for the team if you like, and choose **Book**.
  </Step>
</Steps>

To move an appointment, open it and reschedule. The contact and teammate are told once
reminders are on.

A contact's appointments also appear on their contact page and beside their thread in the
Inbox.

## Booking types

**Booking types** are what people can book.

<Frame caption="Booking types">
  <img src="https://mintcdn.com/fire-flo-omno/qMiP0VYTVwEeCAoo/images/batteries/booking-types.png?fit=max&auto=format&n=qMiP0VYTVwEeCAoo&q=85&s=b19b560f990646ea74120112641b6646" alt="The booking types list with slot duration, mode and default staff" width="1440" height="900" data-path="images/batteries/booking-types.png" />
</Frame>

| Field | What it does |
| - | - |
| **Name** | What the customer sees — "Consultation". |
| **Mode** | **Online**, **In person**, or **Either — chosen when booking**. |
| **Slot duration** | How long the meeting itself lasts. |
| **Prep time** | Blocked on the teammate's calendar just before the meeting. |
| **Default staff** | Who gets it unless someone picks another teammate, or **Any available**. |
| **Also bookable with** | Other teammates who take this booking type. |
| **Meeting link** / **Location** | Empty uses the teammate's own link, or the organisation's default location. |
| **Colour** | How it shows on the calendar. |
| **Description** | Optional. Shown when booking. |

Changes to a booking type apply to new bookings; existing appointments keep their times.

## Settings

### Team availability

**Team availability** shows who can be booked, when, for what — and how full their week
is. For each teammate, set their **working hours**, the **booking types** they take, their
**meeting link** for online appointments and their **location** for in-person ones. A
teammate can also be marked as not taking bookings.

**Time off** blocks a teammate's free times — or, with **Everyone — the organisation is
closed**, everyone's. Give the dates and, if you like, a reason.

### Appointment settings

| Setting | What it does |
| - | - |
| **Earliest booking** | How soon from now a booking can start. |
| **Book up to** | How far ahead people can book. |
| **Times start every** | The grid free times line up on: 09:00, 09:15, 09:30… |
| **Usually held** | Online or in person, by default. |
| **Default location** | Used for in-person appointments without their own. |

### Reminders

Add up to six reminders. Each is sent **on booking** or a set time before the appointment,
to the **Contact**, the **Teammate**, or both.

* **Contacts** get WhatsApp, or SMS when they have no open WhatsApp route. Opt-outs are
  always respected, and nothing goes to contacts in your quiet hours, if you have set them.
* **Teammates** get an email with a calendar invite and a notice in the panel.

How reminders go on each channel:

| Channel | How it works |
| - | - |
| **WhatsApp** | Inside WhatsApp's 24-hour window, the message comes with **Confirm**, **Reschedule** and **Cancel** buttons, and a tap changes the appointment. Outside the window, OMNI uses your approved reminder template. The settings show that template's status and let you submit it to WhatsApp. WhatsApp can also show a list of times that are really free; a tap books one. |
| **SMS** | Sent when the text matches one of your DLT templates. See [SMS sender IDs and DLT](/channels/sms-sender-ids-and-dlt). |

Calendar does not send on RCS or Voice.

### Confirmations and no-shows

* **Ask contacts to confirm** — on WhatsApp, with Confirm, Reschedule and Cancel buttons.
* **Mark as a no-show** a set time after the appointment ends, if nobody marks it done.
* **After a no-show**, send "Sorry we missed you — would you like to book again?"

### Your calendar

Each teammate can connect their own **Google Calendar** or **Outlook / Microsoft 365**,
where your provider has made it available. Their other meetings then block their free
times, and their appointments appear in their calendar. Only free/busy is read — never
titles or guests. One calendar at a time; you choose which of its calendars count as busy.

## Online booking

**Online booking** gives you a page where anyone can book themselves in — only the booking
types you choose, only at free times.

<Steps>
  <Step title="Switch it on">
    In **Settings → Online booking**, turn on **Online booking** and set the address ending
    of your page. Copy the **Booking page** link to share it. Each booking type you offer
    online has its own direct link too; a type you keep for staff only isn't offered.
  </Step>

  <Step title="Choose how bookings arrive">
    **Confirmed straight away**, or **Requested — a teammate confirms**.
  </Step>

  <Step title="Choose how people confirm their number">
    **A code on WhatsApp (SMS if no WhatsApp)**, or **A code on SMS**. WhatsApp codes to new
    numbers use your own code template; set its name here.
  </Step>

  <Step title="Set the limits">
    **Book up to** sets how far ahead, and **Limit per number** stops one number filling the
    diary.
  </Step>
</Steps>

On the page, a customer picks a booking type, a teammate or **Anyone available**, and a
free time. They give their name and mobile number, and enter the 6-digit code OMNI sends
them. The code is valid for 10 minutes, with 3 tries.

<Warning>
  Each code is one message, paid from your balance.
</Warning>

To change a booking later, the customer taps **Reschedule** or **Cancel** on the
confirmation message.

## With AI agents

When your plan also includes [AI Agents](/batteries/ai-agents):

* An **Appointments** agent (AppointmentBot) offers real free times, books, reschedules and
  cancels appointments, and chases confirmations and no-shows.
* Sales and support agents can be allowed to offer times and book, reschedule or cancel
  appointments — each needs approval by default.
* Workflows gain the blocks **Appointment changes**, **Has appointment?**, **Offer free
  times** and **Book appointment**.

## Who may use Calendar

| Permission | Lets someone | Roles that have it by default |
| - | - | - |
| See the appointments calendar | Open the calendar, booking types and settings | Owner, Admin, Support, Viewer |
| Book, move and cancel appointments | Book and change appointments | Owner, Admin, Support |
| Change appointment settings, booking types and team hours | Change settings, booking types, team hours, time off and online booking | Owner, Admin |

An Owner or Admin can change these on the **Roles** screen. See
[Team and roles](/using/team-and-roles).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.