Help Center

Docs

Bookings

View and manage every booking against your booking pages from one place.

Bookings

A live list of bookings — Upcoming, Past, Cancelled, and Rescheduled — with cancel and reschedule actions inline.

The Bookings page (under Tools in the main sidebar) shows every booking that touches your booking pages. Sales reps see their own bookings, sales managers see their team's, and admins see the whole organization. Each row shows the booking page, booker name and email, date and time in the booking page's timezone, location type, and duration. Click a row to expand the detail drawer with the full booking record and action buttons.

Tabs

The four tabs across the top filter the list by booking lifecycle state.

FieldDescriptionType
UpcomingConfirmed bookings whose start time is in the future. This is the default tab and the one you'll spend most of your time in.tab
PastConfirmed bookings whose start time is in the past. Use this tab to mark attendance — Mark attended or Mark no-show.tab
CancelledBookings the booker or host cancelled. The cancellation reason and who cancelled (booker or host) are shown in the detail drawer.tab
RescheduledOld occurrences of bookings that have been rescheduled. The new occurrence appears in the Upcoming tab — both rows share the same booking series so you can audit the history.tab

What Each Row Shows

Quick scan from the list view, no click required.

  • Booking page title — what the booker chose.
  • A status word, at most one per row — Cancelled, Rescheduled, Attended, No-show, Needs review, or Not marked. Upcoming bookings carry none. See Marking what happened.
  • Booker name and email — the linked CRM person if matched, otherwise the raw values from the booking page.
  • Date, time, and timezone — rendered in the booking page's configured timezone, not the host's browser zone, so the host always sees what the booker sees.
  • Location and duration — e.g., “Meet · 30m” or “Phone · 60m”.

Paging, Searching, and Filtering

How to get to one booking in a list that keeps growing.

The list loads 50 bookings at a time with paging controls underneath. Changing a tab, a filter, or the search resets you to the first page. When the total is not known, the paging shows only Previous and Next rather than inventing a page count.

The search box reads Search booker name or email and runs on the server, so it covers every booking in the current tab and not just the page in front of you. It matches the booker's name and email address only. A full email address is matched exactly; anything else is treated as part of a name — so a bare domain fragment finds nothing, and you should search the name instead.

Alongside the search there is a filter bar: My open deals, a booking-page picker, a host picker, and From date / To date. Clear resets them. The host picker appears only if your role lets you see teammates' bookings and there is more than one host to pick from. A few of these cannot apply at the same time as Needs review; when that happens the page turns the conflicting one off and announces which, rather than silently narrowing your results.

Exporting to CSV

Take the view you are looking at with you.

The toolbar carries an export link — Export this view, or Export followed by the row count when the count is known. It exports the whole current view (tab, filters, and search), not just the 50 rows on screen, and it is absent when the view has no rows at all.

  • It needs scheduler.view, and the file is clamped to your data scope on the server — an own scope exports only your own bookings, whatever the filters say.
  • The cap is 5,000 rows. Above it the export is refused with a message asking you to narrow the filters.
  • The file is named bookings_export_ followed by the date.

The Detail Drawer

Click any row to expand it inline.

The drawer expands inline below the row and shows everything the booker submitted plus context the CRM has on file:

  • Start and end times, in the booking page's timezone.
  • Booker contact — name, email, phone if provided.
  • Strategy — Individual, Round robin, Collective, or Group. For group bookings, the attendee count is shown next to the strategy.
  • Notes the booker submitted.
  • Cancellation reason (and whether the booker or host cancelled), if applicable.
  • The meeting URL (Meet, Zoom, custom) as a clickable link — only rendered as a link when the URL parses as http:// or https://; anything else (a phone number, an address, or a defensively-blocked stale value) is shown as plain text.
  • Custom-question responses, if the booking page collected any.

Row Actions

What you can do from the drawer.

1

Reschedule

Available on Upcoming bookings if you have scheduler.edit. Opens a Reschedule booking dialog headed "Pick a new time". There is no free-text time entry: you pick a date, then one of the slots the booking page actually offers, so a reschedule can never land on a time the page would refuse. Days that offer nothing say why in one word — Full, No hours, Out of window, or Too soon. "Show more dates" walks 14 days forward at a time until the page's booking window runs out. On confirm, the booker receives a "your host has proposed a new time" email with the updated calendar invite (ICS METHOD:REQUEST, same UID, bumped SEQUENCE so their calendar moves the event in place). The Google Meet link survives — same join URL — because the underlying Calendar event is updated, not recreated.
2

Cancel booking

Available on Upcoming bookings if you have scheduler.delete. Opens a Cancel booking dialog with an "Optional reason (sent in the cancellation email)" textarea (up to 500 characters). On confirm, the booker receives a cancellation email with ICS METHOD:CANCEL and a matching UID, so their calendar removes the event automatically.
3

Copy new manage link

Mints a fresh booker management link when the original confirmation email was lost, forwarded, or broken by a workspace booking URL change. The old link stops working the moment you click this, so only use it when you intend to send the new one. The new manage URL has the shape /b/[workspace]/[page]/manage/[token] and is copied to your clipboard. It lives inside the expanded row rather than on the row itself, precisely because it rotates the link already in the booker's inbox.
4

Mark attended (past bookings)

Records that the booker showed up, and the row reads Attended.
5

Mark no-show (past bookings)

Records that the booker did not show, and the row reads No-show. No-shows roll up into the linked person's lifecycle metadata, so you can use them in workflows or filters (e.g., "send a we missed you email after a no-show"). On a desktop-width screen these two sit on the row itself; on smaller screens they are inside the expanded row.
The Reschedule and Cancel dialogs use proper inline forms, not browser confirm() popups, so screen readers announce them correctly and the textarea preserves whatever you typed if you accidentally collapse the drawer. If the slot you picked is taken between opening the dialog and confirming, the dialog stays open, refreshes that day, and asks you to pick another time.

Marking What Happened

The Needs review queue, and why nothing is ever marked for you.

A past booking that nobody has marked yet shows Needs review for a fixed window, then quietly settles to Not marked. The window is deliberately narrow so the queue stays finite:

  • A booking becomes reviewable 2 hours after it ends — long enough that a meeting running over is not counted as a miss.
  • It stays reviewable for 14 days. After that it drops out of the queue unmarked and reads Not marked.
  • Only confirmed bookings are counted. A cancelled or rescheduled one is never in the queue.

The Needs review chip in the toolbar filters the list to exactly that queue, with a count beside it. Turning it on switches you to the Past tab. The chip is hidden when the count is zero, unless it is already on. If more than 50 are waiting, the list says “Showing the 50 oldest. Mark these to see the rest.”; when there is nothing left it says “No meetings from the last 14 days are waiting to be marked.”

A reminder is not a verdict
You get a notification when past meetings are waiting — “Did this meeting happen?”, or “Did these meetings happen?” when several are due, batched into one notification per round rather than one per booking. It never guesses. Nothing marks a booking attended or no-show except a person clicking one of those two buttons, and a booking you have already marked is never asked about again.

Booking Reminder Emails

One reminder, a day before the meeting.

Roughly 24 hours before a confirmed booking, the booker gets a reminder email headed Your meeting is coming up, and the host gets one headed Upcoming meeting. Both repeat the meeting, the date and time, and the location. The host copy respects your own meeting-notification preferences, so you can turn it off for yourself; the booker copy always goes.

The expanded row shows Reminder sent to the booker with the date, and only once a reminder has genuinely been accepted for delivery. A booking with no such line has not had one sent yet — there is deliberately no “reminder scheduled” line, because a scheduled send is not a sent one.

Pre-Meeting Briefing

A notification that fires automatically before each booking.

When Pre-meeting briefing is enabled on the booking page (it is by default), a notification is sent to the host roughly 1 hour before each confirmed booking. The briefing includes recent activity with the linked person, their lifecycle stage, and any open opportunities tied to them — so you walk into the call with context, not a cold introduction.

Briefings are dispatched by a background cron that runs every 5 minutes. A booking that starts in less than 60 minutes when it's created (so the cron can't catch it before the meeting starts) doesn't get a briefing — the cron only fires for bookings whose briefing window hasn't already passed. The booking row records briefing_sent_atonce the notification ships so it's never duplicated.

What the Strategy Field Means

How the booking was assigned to a host.

FieldDescriptionType
IndividualDefault. The booking page belongs to one host; every booking is assigned to that host.strategy
Round robinMultiple eligible hosts; the system picks the host with no conflicting confirmed booking + the least-recent rotation cursor and bumps the cursor atomically. Tiebreaker: weight DESC, user_id ASC.strategy
CollectiveAll eligible hosts must be free; availability = the intersection of their schedules. The booking's primary host is the lowest user_id (deterministic anchor); the rest are calendar attendees on the provisioned event.strategy
GroupSingle host, but the booking page sets a group capacity > 1 so multiple bookers share a single slot. Each booker is a separate booking_attendees row; the row's attendee_count increments per registration. The drawer shows N attendees so you know how many people are joining.strategy

Permissions

  • scheduler.view — required to see the page, and to export. Data scope (own / team / all) decides which bookings show up, and the export is clamped to the same scope on the server.
  • scheduler.edit — required to reschedule, to copy a new manage link, and to mark a meeting attended or no-show.
  • scheduler.delete — required to cancel a booking.
  • The Reschedule and Cancel buttons are hidden if the booking is in the Past tab or your role doesn't have the matching permission. A view-only seat still sees the list and the empty states, without the actions.

Troubleshooting

My booking doesn't show up

Check that you're on the right tab (Upcoming hides past bookings, Past hides future ones). If you have own data scope on scheduler.view, you only see bookings where you're the assigned host — round-robin or collective bookings assigned to a teammate won't appear.

The Reschedule button is missing

You don't have scheduler.edit, the booking is in the past, or the booking is already cancelled or rescheduled. Past meetings can't be rescheduled from this view — create a new booking instead.

A reschedule failed with “already booked”

Another booking landed on the slot you picked between the time you opened the dialog and the time you clicked Confirm. Pick a different time. The database guarantees no double-booking can slip through, even under high concurrency.

The booker says they didn't get a cancel/reschedule email

Ask them to check their spam folder. Email delivery audit columns are stored on every booking; the cancellation/reschedule pipeline retries on transient failures and logs terminal ones. For Google Meet bookings, Google also sends its own native invite-update from a Google address — that's delivered independently.