# Meeting Booking

> A Calendly-style scheduler on your own site — visitors pick a meeting type, a day and a time in their zone, and the booking lands in your CRM with emails, calendar invites and reminders.

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

---
A **Meeting Booking** block lets visitors book time with you without leaving your site: they pick
what the call is about, a day, a time **in their own time zone**, leave their details, and it's
done. The booking lands in your [ESTAGE CRM](/crm/bookings/), and the confirmation email, the
calendar invite, the reminders and the cancel/reschedule links are all handled for you.

It is the ESTAGE answer to Calendly — not an embed of one.

## How to trigger it

- *"add a book-a-call page"*, *"add a scheduler"*, *"let people book a consultation"*
- The **Meeting Booking** entry in the [`/` slash menu](/building/chat-features/#the--slash-menu)
  — typing `/book` filters straight to it, and picking it drops a starting prompt into the
  composer for you to add details to

:::note
Genesis will not answer a booking request with a contact form or a hand-built calendar — a form
captures an email, a booking reserves a time. If you already use Cal.com or Calendly and want
*that* on the page, say so (*"embed my Calendly"*) and it's wired as a
[connector](/connectors/) instead.
:::

## What Genesis builds

1. The **MeetingBooking** block itself, plus the data wiring behind it. Both are generated; the AI
   won't rewrite them on later edits.
2. It goes on **the page you're on**, in the spot you asked for. It's a section you drop onto a
   page — like a pricing table or an order form — not a page of its own.
3. A **dedicated `/book` page** only when you asked for a booking *page* (*"a page where people can
   book"*, *"a /book page"*). That's also the only case where you get a **route** and a *"Book a
   call"* nav link or CTA: hanging those off a page that already has a nav is how a second *"Book a
   call"* item ends up in it.

The block lays out three columns of its own — summary, calendar, times — so it's dropped in as its
own **full-width `<section>`** between the neighbouring ones, never inside the narrow column you
happened to click. It survives a narrow column by stacking, but a scheduler squeezed into a third
of the page is a worse page than one with the sidebar above it.

## Before it can take bookings

The block *offers* meetings; it doesn't define them. What's on offer lives in the CRM:

| You need | Where | Why |
| --- | --- | --- |
| **At least one meeting type** | [CRM → Bookings → Meeting types](/crm/bookings/#meeting-types) | Name, duration, where it happens, the questions to ask |
| **An availability schedule** | [CRM → Bookings → Availability](/crm/bookings/#availability) | The hours the type is bookable in |
| **A payment gateway** (paid meetings only) | [Settings → Payments](/project-settings/payments/) | A paid meeting takes the payment on the page |

Until a meeting type is ticked for the page, the block shows *"Booking is not set up yet"*. That's
expected on a fresh build — not a bug to ask the AI to fix.

## Choosing what a page offers

Click the block in the live preview and the **Meeting Booking** panel opens on the right:

- A list of your meeting types — tick the ones this page should offer, then **Save to page**.
- The badge reads **N on page** or **Nothing offered**.
- Each row shows duration · where · seats · how many questions, with a **paid** tag on paid types.
  A type switched **Off** in the CRM can't be ticked.
- Links straight through to Meeting types, Availability and My bookings in the CRM.

That tick is the block's *only* setting. Durations, hours, prices, questions and the bookings
themselves stay in the CRM — the same way an [order form](/order-forms/) picks products it doesn't
define. One meeting type can be offered on as many pages and apps as you like.

## What visitors see

1. **Choose a meeting** — skipped when the page offers only one type.
2. **Select a date & time** — a month calendar where only days with openings are clickable, the
   times for the chosen day beside it, and a **Time zone** selector that starts on theirs. Group
   sessions show *"N left"* per slot.
3. **Enter your details** — name, email, optional phone, plus whatever questions the meeting type
   asks (short answer, long answer, dropdown, checkbox).
4. **Payment** — paid meetings only. The slot is held for 15 minutes while they pay, with a
   countdown; card details go straight to your gateway.
5. **You are booked** — a confirmation card with the time in their zone, the meeting link if there
   is one, **Reschedule** / **Cancel** links, and *Book another time*. The calendar invite is
   emailed.

Availability is computed live by ESTAGE on every request. Nothing about your schedule is stored in
the site's code, so a slot someone else just took disappears before it can be double-booked.

## Rescheduling and cancelling

The links in the confirmation and reminder emails (and on the confirmation screen) open a hosted
page on `genesis.estage.com`. No account, no login — the link itself is the credential, minted per
booking. Cancelling frees the seat; rescheduling picks a new time from live availability. You and
the invitee are both emailed, with an updated `.ics`.

## What you can ask for

The block takes a few options — just say so in chat, before or after it's placed:

| Ask for | What you get |
| --- | --- |
| *"add a heading above the booking card"* | A title and subtitle over the block |
| *"only offer the intro call here"* | One meeting type pinned, so visitors skip the chooser |
| *"show my name and photo on it"* | The host's name and avatar in the summary column |
| *"make it match the site"* | Restyled freely — colors, spacing, typography |

Ask for a different calendar or time picker, though, and Genesis will keep the one it has: the
scheduler's steps are what keep the booking, the emails and the CRM in sync.

## Notes

- **One booking block per page.** Different pages can offer different meeting types.
- The **ESTAGE video room** needs *ESTAGE Rooms Signature*. Without it, meetings set to the room
  are still booked — the meeting type's fallback link is used instead.
- A paid meeting on a site with **no payment gateway** shows a *"get in touch"* notice rather than
  taking a booking it can't charge for.
- Turning a meeting type **Off** or deleting it in the CRM takes it off the page immediately.
- Every invitee becomes a [contact](/crm/contacts/) in your CRM, and a paid booking becomes an
  [order](/crm/orders/).
