# Bookings

> The owner's side of the booking scheduler — the meetings people booked, the meeting types they can book, and the hours you're bookable in.

Source: https://knowledge.estage.com/crm/bookings/
Part of the ESTAGE knowledge base (https://knowledge.estage.com). Full corpus: https://knowledge.estage.com/llms-full.txt

---
**Bookings** is where the scheduler on your site reports back. Three items in the CRM sidebar:

| Section | |
| --- | --- |
| **My bookings** | Who booked time with you, and what to do about it |
| **Meeting types** | What people can book, and for how long |
| **Availability** | The hours those meeting types are bookable in |

Your site does the *taking* — see the
[Meeting Booking block](/capabilities/meeting-booking/) for how a page offers these. Everything
about *what* is on offer is set here, once, and reused by every page and app of the project.

:::note
**Bookings is a section you can withhold.** All three items sit behind one permission —
**Bookings** in the project's [roles](/project-settings/roles/) — because someone trusted to see
who booked is trusted to see what's bookable. Its **delete** tick is marked *sensitive*: cancelling
a booking emails everyone holding it.

Roles that existed before the permission did don't carry it, so the section is hidden for them
until you tick it. The project owner is unaffected.
:::

## My bookings

Four counters across the top, over all time: **Booked**, **Upcoming**, **Show rate** and
**No-shows**. A show rate of **—** means there's nothing to divide yet, which is not the same as
nobody showing up.

Under them, **By meeting type** breaks the same numbers down per type — booked, upcoming, done,
no-show, show rate and revenue. Rows are counted by when the meeting *starts*; revenue excludes
refunds.

### List and Calendar

The bottom half switches between two views of the same thing:

- **List** — one row per **booking**: a seat somebody took. Tabs for **Upcoming**, **Past** and
  **Cancelled**.
- **Calendar** — one cell per **meeting**: the month those bookings sit in.

A row shows the invitee, when it starts (with their own time zone underneath), the meeting type,
and a status: **Confirmed**, **Awaiting payment**, **Cancelled** or **No-show**.

### Acting on a booking

Click a row for the full record — the invitee, the start time in their zone, the duration, the
meeting link, the order number if they paid, and **the booking form exactly as they answered it**.

The row menu carries the actions:

- **They didn't show up** — only offered on a confirmed meeting that has already started, and
  undoable.
- **Open the meeting…** — the meeting this seat sits in.
- **Cancel the booking** — the invitee is emailed, and a paid booking is refunded according to the
  meeting type's policy. If the gateway couldn't refund it automatically the row is flagged
  **Refund by hand** and you settle it in the gateway yourself.

### Acting on a meeting

Opening a meeting shows everyone in it, and the two actions that treat them as a group:

- **Move it** — pick a new time from live availability. Moving a meeting moves **everybody** in
  it; there is no per-booking reschedule from this side. (An invitee can reschedule their own seat
  from the link in their email.)
- **Cancel it** — calls the meeting off for everyone, with one email each.

## Meeting types

One row per bookable meeting: duration, where it happens, which availability it uses, seats,
and whether it's **Open**, **Off** or **Paid**. **New meeting type** creates one.

### The meeting type editor

The form is grouped the way you'd fill it in:

- **The meeting** — name and description (what visitors read before they pick a time),
  **Duration** from 15 to 120 minutes, and **Seats per slot**. One seat is a one-on-one; more
  makes it a group session, and the site shows how many are left.
- **Where it happens** — the **ESTAGE video room** (needs *ESTAGE Rooms Signature*, with a
  fallback link for when a room can't be created), a **phone call**, or **your own link** — Zoom,
  Meet, anything.
- **When it can be booked** — the **availability** schedule it uses, a **buffer** before and after
  each meeting, a **minimum notice** (from *any time* up to a week ahead), and how far out it's
  bookable, 7 to 365 days. Free slots are the schedule minus these rules, minus what's booked.
- **Reminders** — which email reminders the invitee gets: a week, a day, an hour or 15 minutes
  before. A day and an hour is the default.
- **Booking form** — your own questions, each a short answer, long answer, dropdown or checkbox,
  and each optional or required. The answers show up on the booking.
- **Price** — switch the meeting to paid and pick the [product](/crm/catalog/) it's sold as; the
  price comes from the product, so a paid meeting is an ordinary order in your books. Then choose
  what happens **if the invitee cancels** — keep the payment, refund in full, or refund only if
  they cancelled early enough, with a window you set. The slot is held 15 minutes while they pay.
- **Open for booking** — off hides the type from every page and stops new bookings, without
  touching the ones already made.

:::note
Deleting a meeting type is refused while it still has future bookings — cancel or let them run
first. Turning it **Off** is the safe way to retire one.
:::

## Availability

A **schedule** is a named weekly grid plus the dates that override it. One or more meeting types
point at each, so *"Working hours"* and *"Evenings only"* can live side by side.

- **Weekly hours** — toggle each day on or off and give it one or more intervals, in quarter-hour
  steps. A new schedule opens on Mon–Fri, 09:00–17:00.
- **Time zone** — the hours are stored in the schedule's own zone. Visitors always see times in
  theirs; nobody does the arithmetic.
- **Which projects use it** — this one only, or shared with your others. See below.
- **Date exceptions** — override a single date: **closed** for a holiday, or different **hours**
  just that once.

The list shows each schedule's hours, zone, exceptions and the meeting types on it. A schedule
still used by a meeting type can't be deleted — and that count covers **every project the schedule
reaches**, so one with no types here can still read *"3 in other projects"* and refuse to go.

### Sharing a schedule across projects

One set of working hours usually serves everything you run. **Available in**, on the schedule
itself, says how far it reaches:

| Available in | What it means |
| --- | --- |
| **This project only** | The default, and what every schedule made before sharing existed still is |
| **Selected projects** | The projects you name. The current one is always in the list, ticked and not removable — a schedule is in reach of the project that owns it by definition |
| **All my projects** | Every project you own, including ones you create later. No list to keep up to date |

:::caution
Sharing a schedule shares the **time**, not just the hours. Bookings on it are synchronised across
every project it reaches: an hour taken in one closes that slot in the others. Two separate *This
project only* schedules never do that, however identical they look — that difference is the whole
point of the setting.
:::

The picker lists your **Genesis projects**, each with its id beside the name — so sites with
similar names can still be told apart, and an owner who knows the number can type it into the
search box.

On the owning side the row is badged **All projects** or **Selected projects (N)**; an unshared
schedule carries no badge, since that's the ordinary case.

### A schedule shared into this project

In the other projects it reaches, the schedule appears with a **Shared · from _project_** badge and
opens **read-only**. The hours belong to the project that owns them, and that's the only place they
can be edited or deleted.

It's fully usable there, though: pick it in a meeting type like any local schedule. It's listed as
*"Working hours · _owning project_"* so it doesn't read as a duplicate of a local one with the same
name, and the meeting type form repeats the warning about shared time.

## Bookings and the rest of the CRM

- Every invitee becomes a [contact](/crm/contacts/) — the same people the rest of the CRM knows.
- A paid booking is an [order](/crm/orders/), with the meeting's product on it.
- Confirmation, cancellation and reschedule emails go to both you and the invitee, each with a
  calendar invite attached; reminders go to the invitee on the offsets you chose.
