Help Center

Docs

Booking Pages

Configure booking pages, availability, and booking confirmations

Booking Pages

Create and manage public booking pages contacts can use to schedule with you.

Booking pages are the configurable booking surfaces prospects and clients land on when they want to schedule a meeting with you. Each page defines its own duration, location, availability, branding, and policies. Most teams set up separate pages for distinct workflows — an introductory call, a product demo, an onboarding session, a support check-in.

A booking page can also require payment before a time is confirmed. See Paid Booking Pages for pricing a page, handing a quote or invoice payer a link once they pay, and what a refund or a dispute does to a link that has not been used yet.

How the Editor Is Laid Out

Six sections, and only the decisions you must make to share a working link are in plain view.

The booking-page editor has a rail of six sections — Basics, Availability, Timing, Limits, Team, and Booking form. Each one holds a single Advanced disclosure that starts closed. A control sits outside that disclosure only if a first-time user has to decide it to share a working link, so Basics shows the title, duration and location, and Availability shows where the hours come from, the weekly grid, and date-specific hours. Everything else — description, who can book the page, time zone, page URL, start-time spacing, buffers, caps, hosts, intake questions, follow-up email settings — is one click away under Advanced.

A title is enough to create a page
Create a page with nothing but a title and it is already usable: 30 minutes, Google Meet, your detected time zone, Monday to Friday 9:00 AM to 5:00 PM, bookable 30 days ahead, cancel and reschedule allowed, and a URL generated from the title. Change any of it later.

Creating a Booking Page

Define the core properties of a new booking page.

FieldDescriptionType
Name*A descriptive name for the booking page, such as "30-Minute Discovery Call" or "Product Demo". This is displayed to contacts on the booking page.text
Duration*The length of the meeting. Choose from preset options to standardize your meeting lengths.select (15 / 30 / 45 / 60 / 90 min)
Location Type*Where the meeting will take place. Choose Google Meet to have a join link generated automatically for every booking (requires a connected Google account — see "Meeting Locations" below), or Zoom / Phone Call / Custom for manually configured details.select (Google Meet / Zoom / Phone Call / Custom)

Meeting Locations & Join Links

How join links are generated for each location type.

Google Meet (auto-generated)

When a Google Meet booking page is selected and the host has connected their Google account (via Settings → Integrations), the CRM creates a Google Calendar event with a fresh Meet link at the moment of booking. The unique join URL is included in the booker's confirmation email, the attached calendar invite, and the booker's browser confirmation screen. Google also sends its own native calendar invite to the booker alongside the CRM confirmation, so the invitation is created directly in their calendar, so it does not depend on the email arriving.

If the host has not connected Google, the booking still succeeds but no Meet link is generated. The confirmation email tells the booker the host will follow up with the link, and the booking row is flagged so you can see which confirmations went out without a join URL.

Zoom (static personal link)

Zoom uses the URL you paste into the booking page's Location Value field (typically your personal room URL). The same link is reused for every booking of this booking page. Dynamic per-booking Zoom links (separate meeting IDs, passcodes, and waiting rooms per booking) are not yet supported; if you have back-to-back Zoom bookings on the same booking page, the second booker will enter the same Zoom room. Dedicate separate booking pages or add a buffer to avoid overlap.

Phone Call

Phone bookings use the phone number you paste into the Location Value field. No join link is generated; the number is shown in the confirmation email and the calendar invite.

Custom

Custom accepts free-form text or a URL. If the value starts with http:// or https://, the confirmation email and booking page render it as a clickable join button; otherwise it displays as plain text (for example, an office address).

Connecting Google for auto-generated Meet links
Go to Settings → Integrations and click Connect Google. The CRM uses the existing Google Calendar scope to create events on your behalf — no new permissions are requested. Once connected, every Google Meet booking automatically gets a fresh join link and a calendar event on your primary calendar.

Calendar & Availability Settings

Configure when contacts can book meetings with you.

Weekly Availability

Set your available hours for each day of the week, with up to six time periods on any one day so you can model a lunch break. A day with no periods reads Unavailable. Hours can belong to this page alone or come from a named schedule several pages share, and any single date can be given its own hours or switched off entirely. The full mechanics — including the Does not repeat mode and which control wins when two disagree — are in Availability Schedules.

Start Time Increments

In the Timing section, Start time increments decides how often start times appear — the default is every 15 minutes, and you can choose 5, 10, 15, 20, 30, or 60. This is separate from how long the meeting is: a 60-minute meeting can still offer starts every 15 minutes.

Buffer Time

Buffers keep time free around each booked meeting — set one Before meeting and one After meeting, from 5 to 60 minutes. A 15-minute meeting with a 15-minute buffer books 30 minutes apart, whatever the start-time spacing.

Booking Window

Under Advanced in the Availability section, When can people book?offers three answers: Number of days into the future (set Days ahead, 1 to 365 — new pages default to 30), Within a date range (a fixed Start date and End date), or Up to a year ahead (365 days). A plain sentence underneath states the result, for example “People can book through Mar 31.”

Minimum Notice

Also in Timing: the soonest someone can book, in minutes. Leave it at 0 for no limit.

Timezone

Select the timezone for your availability. The booking page automatically converts your availability to the visitor's local timezone for a seamless booking experience.

How the Scheduler Finds Busy Times

What the CRM checks before showing a slot as available.

Every time a booker loads your booking page or picks a date, the scheduler evaluates your availability against three sources of busy time for the host user, all in the booking page's timezone:

  • Existing bookings on any of your booking pages (so two booking pages can't double-book the same slot).
  • Synced calendar events imported from your connected Google or Microsoft calendar (so external events block your scheduler).
  • CRM activities on your calendar — meetings, calls, and any activity with a start/end time.

A slot only appears if the entire duration plus any buffer is free across all three sources. The database also prevents two bookers from grabbing the same slot at the same instant — whichever request completes first wins, and the other sees a “just booked” message and is prompted to pick another time.

Activation and Deactivation

Control whether a booking page is bookable.

Each booking page can be set to active or inactive. Use Disable in the page list (or Pause in the calendar's Booking pages rail) to switch one off, and Enable / Resume to switch it back on. All configuration and booking history is kept.

A paused page is not silently broken for someone holding the link. Its URL still renders, and it says so plainly: “This page is not accepting bookings right now.” No times are offered and no booking can be made while it is paused. Copy and Preview are hidden for a paused page in the calendar rail, because there is nothing bookable to send anyone to.

Two related states have their own sentences rather than a wall, so a booker who arrives outside the window knows what to do: before a fixed range opens the page shows “Bookings open on” with the date, and after it ends, “Scheduling ended on” with the date. A URL that names no real page — or a page that is set to Private link and reached without its secret link — gets one neutral sentence instead, “This booking page is not available.”, with nothing echoed back.

Deleting a Booking Page

What happens to bookings that are already on the calendar.

Deleting a booking page removes it and its booking history permanently, and its booking link stops working. If the page still has confirmed upcoming bookings, the delete is refused rather than quietly cancelling them.

  • From the calendar's Booking pages rail, the refusal becomes a second, explicit question that names the number: “Cancel upcoming bookings?”, with a Delete and cancel button. Only that second confirmation cancels them, so one click can never do it.
  • From the Scheduler page list, the delete simply does not go through while those bookings exist. Cancel or reschedule them first, or delete the page from the calendar rail if you intend to cancel them.
  • Deactivating instead of deleting keeps every booking and every record intact.

How Many Booking Pages You Can Have

The cap is set by your plan.

Booking pages start on Pro: 2 on Pro, 3 on Business, and unlimited on Ultra. Creating one past your cap is refused with a message naming the limit. Deactivating a page does not free a slot — delete one, or move up a plan. Nothing else in this article is gated by plan; who can be booked is decided by roles.

The Booking Link

Two parts: your workspace URL, then this page's URL.

Every booking link has the shape /b/[workspace]/[page] — your workspace booking URL first, then this page's own URL. A page URL of demo in a workspace called acme gives you /b/acme/demo instead of /b/acme/30-minute-product-demo.

The page URL lives under Advanced in the Basics section, labelled Page URL. It is generated from the title until you edit it, and it is checked as you type — Available, Already used by another page in your workspace, This word is reserved, or At least 3 characters.

  • Characters — lowercase letters, numbers, and hyphens only. Anything else you type is converted as you go, and leading or trailing hyphens are trimmed.
  • Length — at least 3 characters, at most 60.
  • Uniqueness — unique within your workspace. Another organization can use the same page URL; you never collide with them.
  • Reserved words — a short list of words the booking URLs themselves use is refused, including manage, attendee, series, login, admin, api, help, and portal. Only an exact match is reserved, so manage-demo is fine.
  • No workspace URL yet — until one is set, the field is disabled and reads “Set a workspace URL in Settings first.” A page with no workspace URL has no shareable link.
Renaming a URL breaks the links you already sent
There is no redirect from an old page URL to a new one. The editor states this on the field itself: “Changing this changes the link you share. Links already sent will stop working.” Anyone who opens the old link lands on a not-found page. Change the URL before you publicize a page, not after.

The Workspace Booking URL

The first part of every booking link in your workspace — and the thing to change most carefully.

Settings > Company > Scheduler holds the Workspace booking URL: “The first part of the web address of every booking page in your workspace.” It is shared by every page, so changing it changes all of their links at once. Only an admin with full scheduler access can change it; everyone else sees it as read-only text. Opening the page at all needs permission to see booking pages — a seat without it is returned to your home page rather than shown the workspace's scheduler settings.

Because of that blast radius, the change asks for confirmation and tells you exactly what breaks. Like a page URL, there is no redirect:

  • Every booking link you have already shared stops working, and the confirmation names how many pages are affected.
  • “Emails you have already sent point at the old address and will land on a not found page.” Outreach mail that is mid-send can carry the old address too.
  • “Manage links in past confirmation emails point at the old address as well, so they stop working.” That is the cancel-and-reschedule link in every confirmation email you have sent.
  • The bookings themselves are untouched. The recovery for any one of them is Copy new manage link in the Bookings tab, which mints a fresh link you can send the booker.

Under Advanced in the Basics section, Who can book this page offers three tiers:

FieldDescriptionType
PublicAnyone with the link can book. Shown in your workspace's pickers. This is the default.tier
UnlistedAnyone with the link can book. Hidden from search and from any shared listing.tier
Private linkOnly people with a secret link can book. The page's ordinary URL behaves exactly like a page that does not exist.tier

On the Private link tier you generate the secret links yourself with + Generate link. A new link stays on screen for the rest of your editing session, with the note “Copy this now. Once you close this editor, it cannot be shown again.” — once the editor closes, only a short masked prefix is stored, so there is no way to reveal it again. Tick Single use before generating and that link stops working after its first booking. You can hold up to 10 private links on one page; revoking one frees a slot, and a used single-use link still counts until you revoke it.

Switching off Private link does not delete the secret links
Moving a page off the Private link tier asks first, and says why: your private links stop being needed, but existing links keep working. Revoke any you no longer want.

Host Assignment Strategy

How a booking is assigned when a booking page has multiple eligible hosts.

FieldDescriptionType
IndividualDefault. The booking page belongs to one host; every booking is assigned to that host. Use this for solo flows like "Book a call with Sarah".strategy
Round robinMultiple hosts are eligible. Each booking goes to the host with no conflicting confirmed booking and the least-recent rotation cursor; the cursor bumps atomically so two simultaneous bookings can't pick the same host. Tiebreaker: weight DESC, then user_id ASC.strategy
CollectiveAll eligible hosts must be free; the booking page shows only slots that are open on every host's calendar. The booking's primary host is the lowest user_id (deterministic); the rest are added as calendar attendees on the provisioned event.strategy
GroupA single host but the booking page sets a group capacity > 1, so multiple bookers can register for the same slot (webinars, group demos, office hours). Each booker is a separate attendee row; the booking is full once attendee_count hits the cap.strategy
Hosts live in the Team & resources section of the editor, under Advanced. On a saved page, pick a teammate and click Add, or click Remove on a host row. Each host row carries an optional Weightfor round-robin tiebreaks — higher weight gets picked first when the rotation cursor is even. The whole section is hidden without scheduler.edit.

Custom Intake Questions

Ask the booker for context before they confirm.

Beyond name, email, phone, and notes, you can add up to 30 custom questionsper booking page. Question types: text, textarea, email, phone, number, date, single-select, multi-select, and checkbox. Mark any question as Required and the booker can't confirm without answering it. Responses are stored on the booking, surfaced in the host email, and rendered inline on the Bookings drawer for quick context before the call.

If the booking page is reached via a routing form, any answers the booker already gave on the routing form are pre-filled on the booking page. Custom questions whose ids match between the routing form and the booking page are deduplicated — the booker doesn't see them twice.

Recurring Bookings

Let bookers schedule a series of recurring slots in one go.

Toggle Allow recurring bookings on a booking page and add one or more allowed recurrence rules (RFC 5545 RRULE subset: FREQ=DAILY|WEEKLY|MONTHLY,COUNT, INTERVAL). The booker can pick a base slot and one of the allowed rules; the system expands the rule to N occurrences and books them all in a single atomic transaction. If any one occurrence fails the slot check (e.g., a future Tuesday is blocked by another booking), every previously-inserted occurrence is rolled back so the series is all-or-nothing.

  • Each series gets its own series management token so the booker can cancel the entire series in one click.
  • Per-occurrence management tokens still work — cancelling one occurrence leaves the rest of the series intact.
  • Recurring is supported only on Individual strategy in v1 (multi-host recurring is a v2 candidate).

Branding: Logo, Sender Display & Calendar Event Title

Control how your booking pages, confirmation emails, and calendar invites present to the booker.

Three workspace-wide settings decide what a booker sees before they ever read the meeting details. They live together under Settings → Company → Scheduler, in a Branding group with an Email preview row beneath them that shows how the top of a booking email will look once they are set. It makes the same decisions the real send makes — which logo survives, and what color the button label ends up — so it is a preview rather than an impression.

Logo

Logo URL takes a link to an image you already host, and it must be a secure link beginning with https — anything else is refused with “Use a secure image link that begins with https, or leave this empty.” The logo appears at the top of your booking emails and on your booking pages.

Leaving it empty is a supported choice, not a broken state: the field says “No logo set. Your organization name is shown instead.” and the email header falls back to your organization name set as a plain wordmark in your accent color. With a logo set, the name still appears as text underneath it, because many mail clients block images by default and a header that is only an image would arrive blank.

An SVG file is accepted and used, but only on part of the way: mail clients do not render SVG, so the field notes it — “SVG logos show on your booking pages but not in email, where your organization name is shown instead.” The Email preview below drops it too, so what you see there is what the booker receives. Use a PNG or JPEG if you want the logo in the emails as well.

Only an admin with full scheduler access can change the logo. Everyone else sees the current value read-only.

Organization name

Organization name is the workspace name itself, editable from this page with a Save name button rather than autosaving, because it is the one field here that is not scheduler-only. It appears in three places a booker will see: on your booking pages, in your booking emails, and in the From line — so it is also what the Sender display mode below inserts wherever a mode names the organization. Changing it here changes it everywhere in the workspace, so only a workspace admin can edit it.

Brand color

Brand color is the accent on your booking pages and your booking emails — the wordmark tint and the button color a booker sees. It is shown here read-only, with a link reading Change it in Help Center settings, because one workspace accent is shared across every customer-facing surface and having two places to set it is how the two drift apart. If no brand color has been chosen, the row says so and a default accent is used instead.

The link is only there when following it would lead somewhere. Without Help Center edit access the row reads “Only a seat with Help Center edit access can change this.” instead, and on a plan that does not include the knowledge base the row says which plans do, rather than sending you to a surface that would refuse the change.

In email, one thing is done to that color rather than passing it through untouched. Where the accent is used as text — the wordmark, and links in the body — a pale brand would be unreadable on the white email background, so it is deepened just far enough to be legible, keeping the hue. A color that is already readable is used exactly as you set it. Filled buttons and the accent bar keep the raw color either way, because a button carries its own background and picks a label color to suit.

Branding applies to the emails a booker receives
These three settings brand the booking surfaces and the emails your bookers get. Internal notifications to you and your team are unchanged.
FieldDescriptionType
Sender display modeHow the From: name renders. Host = "Sarah Smith"; Host via org = "Sarah Smith via Acme Co" (recommended default, industry standard); Org = "Acme Co" (useful for service-desk rotations). The envelope domain stays on the verified Laureo SES identity for SPF/DKIM compliance — only the display portion changes.select (host / host_via_org / org)
Calendar event title templateA string with placeholders that becomes the calendar event summary. Supported placeholders: {event_title}, {booker_name}, {booker_email}, {org_name}. Default: "{event_title} with {booker_name}". Capped at 200 characters with grapheme-aware truncation so emoji and CJK characters render cleanly.text
Hold prefixWhen enabled, prepends "HOLD: " to the calendar event title. Useful when you want bookings to appear on calendars as tentative holds rather than confirmed meetings.boolean

Booking Policies

Notice windows, cutoffs, and cancel/reschedule rules.

FieldDescriptionType
Minimum notice (minutes)How far in advance the booker must book. A 60-minute minimum hides any slot less than 60 minutes from now. Up to 10,080 (one week).number
Cancel cutoff (minutes)How close to the meeting start the booker can self-cancel. A 1440 (24-hour) cutoff returns 409 with code CUTOFF_EXCEEDED if the booker tries to cancel within 24 hours of the meeting. Set to 0 to allow cancellation up to the start time.number
Reschedule cutoff (minutes)Same as cancel cutoff but for reschedule. The booker sees a friendly message pointing them at the host's email for last-minute changes.number
Allow cancelMaster toggle. If off, the booker's management page hides the Cancel button regardless of cutoff.boolean
Allow rescheduleMaster toggle. If off, the booker's management page hides the Reschedule button regardless of cutoff.boolean
Confirmation messageFree-form HTML/text shown on the booking confirmation page (the screen the booker lands on after confirming). Up to 1,000 characters. Use this for "What to bring", parking instructions, or links to a pre-meeting questionnaire.text

Pre-Meeting Briefing

A notification that fires automatically before each booking.

With Pre-meeting briefing enabled (default on), the host receives a notification 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. Toggle it off if you don't want the noise. Briefings are dispatched by a background cron that runs every 5 minutes; bookings created with less than 60 minutes' notice don't get a briefing because the cron can't catch them in time.

From the booking-page editor, attach one or more resourcesas Required (every booking locks the resource) or Preferred (best-effort). Required resources are intersected into the availability calculation, so the booking page hides any slot where the host is free but the room isn't. See the Resources article for the full lifecycle.

Booking Count Tracking

Monitor how many meetings have been booked through each type.

Each booking page displays a booking count showing how many meetings have been scheduled through it. This helps you understand which booking pages are most popular and make decisions about your scheduling strategy. The count updates in real time as new bookings are made.

How Recipients Book

The booking experience from the contact's perspective.

  1. The contact receives a booking link via email, embedded on a website, or shared directly.
  2. They open the link and see the meeting details (duration, location, your timezone).
  3. They choose a date from the available days.
  4. Available time slots are displayed for the selected date, adjusted to their timezone.
  5. They select a time slot and enter their name, email, phone (optional), and notes (optional).
  6. On confirm: the booking is created, a CRM activity is logged, a Google Meet link is generated if applicable, and a confirmation page is shown.
  7. Both the booker and the host receive a confirmation email with a calendar invite (.ics) attached.

Confirmation Emails

What gets sent and to whom after a successful booking.

Every successful booking sends two confirmation emails from the CRM, both with an.ics calendar invite attached:

  • To the booker — subject “Your meeting with {host} is confirmed”. Includes date/time in the booking page's timezone, duration, location, join link (if available), any notes they submitted, and the host's name. Reply-to is set to the host so replies go directly to them.
  • To the host — subject “New booking: {booker} booked {booking page}”. Includes the booker's contact details, any notes, and a link back to the CRM activity for the meeting. Reply-to is set to the booker so replies go directly to them. Only sent if the host user has an email address on file.

The attached .ics follows the iCalendar standard (RFC 5545, METHOD=REQUEST) so Outlook and Apple Mail show Accept/Decline buttons. Both parties' invites share the same event identifier, which means a future cancellation will remove the event from both calendars cleanly.

Share your booking link in email signatures
Add your booking page link to your email signature so contacts can easily schedule time with you. This reduces the back-and-forth of finding a mutual time.

Rate Limits & Safeguards

What prevents abuse of your public booking page.

Public booking pages are open to the internet, so the CRM enforces several caps to prevent abuse without getting in the way of legitimate bookers:

  • 5 bookings per hour per IP address — blocks a single source from flooding your calendar.
  • 60 bookings per hour per booking page — protects against distributed abuse targeting one host.
  • Input caps — booker name 200 characters, email 254 characters, phone 50 characters, notes 1000 characters. Control characters are stripped defensively so names can't break the calendar invite or email headers.
  • Database-level overlap prevention — even if two bookers hit the same slot at the exact same instant, only one succeeds. The other sees a 409 message and is prompted to pick another time.

If a booker exceeds a rate limit, they see a friendly “too many attempts” message with a cooldown window. No error is logged on your end — rate-limit hits are transparent to you.

Permissions

Which scheduler scope each action needs.

  • scheduler.view — required to see booking pages at all, and to open Settings > Company > Scheduler; a seat without it is sent back to your home page instead. A view-only seat reads every page as text: no inputs, no host list, no private links, and no Create button.
  • scheduler.create — required to create a booking page.
  • scheduler.edit — required to change any setting on a page, including hours, the booking window, hosts, resources, and the page URL.
  • scheduler.delete — required to delete a booking page.
  • scheduler.admin — required for the organization-wide settings: the workspace booking URL, sender line, calendar event titles, and resources.

Troubleshooting

Common questions about booking confirmations and Meet links.

Booker didn't get a Meet link

Google Meet links only generate when the host has a connected Google account. Go to Settings → Integrations and verify Google is connected with Calendar access. Existing bookings without a Meet link keep their current state; future bookings will generate links once Google is connected.

Booker says they didn't receive the email

The booking page confirmation screen always appears regardless of email delivery, and the booking row records whether the booker email was accepted by the mail server. Ask the booker to check their spam folder. For Google Meet bookings, Google also sends its own native calendar invite from a Google address, which is delivered independently of our confirmation email.

Two Zoom bookings overlapped

Zoom currently reuses a single personal-room URL for every booking on a booking page. If you need separate rooms per booking, use Google Meet (auto-generated) instead, or create separate Zoom booking pages for different windows and add buffer time.

Time slot showed available but got “just booked”

Two people picked the same time at the exact same instant; the database accepted only one. The second booker is prompted to pick another slot. This is working as designed — no duplicate bookings can slip through.