# Booking Pages (Operations)

_Calendar & Scheduling_

Create shareable booking pages so clients can self-schedule. The public page (app.crmown.io/book/<slug>) works for logged-out guests: it shows your branding, available days/times, a guest form with your custom questions, optional payment, and a confirmation. Requires the Operations suite.

## Steps
1. Go to Calendar > Booking (or Operations) and click "+ New Booking Page".
2. Set title, slug, duration, and Weekly Availability (with buffer times).
3. Branding pre-fills your company Logo URL + Brand Color from Settings > Customize — both editable.
4. Pick a Video Call Provider (CRMown meeting / Zoom / Google Meet / MS Teams / Custom URL) — a meeting link is generated per booking.
5. Add Custom Questions: Text, Select (click "+ Add choice" for each dropdown option), or Yes/No — mark any Required.
6. Optional: "Require payment to book" (needs Stripe connected) and "Enable waitlist when fully booked".
7. Save, then "Copy Link" and share it. Guests pick a day → a time → fill the form → book.
8. Under "Your Calendars" on the Booking Pages screen, tick which calendars block your slots (every calendar on each connected Google, Outlook or iCloud account is listed, shared team calendars included), and click "Add bookings here" on the account new bookings should be written to.

## Tips
- Team pages (Operations): under Team Routing on the Booking Pages screen, click "+ New Group", add members, and pick a type. Then edit a booking page and choose the group under "Who hosts". Round Robin shows a time if anyone in the group is free and rotates bookings so everyone gets a fair share over the last 30 days. First Available gives it to the first free member in the group's order. Collective only shows times when everyone is free and invites all members.
- On a team page each member's own connected calendars are checked, and the booking lands on the assigned member's calendar with their meeting link. The page's weekly hours apply to every member. The public page shows the group name; the guest's confirmation names the assigned host, and the Bookings list shows "with <name>".
- Guests can add additional people to a booking (name + email) — those guests are added to the calendar/Meet/Teams invite AND emailed the confirmation, at no extra charge.
- Custom-question answers are saved on the booking and visible to the host.
- Paid pages route the guest through Stripe Checkout; you keep 100% (minus Stripe fees) on your own connected account.
- Google and Outlook calendars are checked live when a guest picks a date and again when they book, so a meeting added a minute ago still blocks the slot. Events marked "Free" in Google or Outlook don't block. iCloud and Calendly calendars use the 5-minute sync.
- The main calendar of the account bookings are added to is always checked, so bookings can't land on top of meetings created in CRMown. Untick "Check for conflicts" on any other account (e.g. a personal Gmail) to ignore it.
- A slot is also hidden if it overlaps a booking on any of your other booking pages, or a paid booking still waiting on Stripe checkout.

## Example
A 5-rep SDR team shares one inbound booking page (book.crmown.io/discovery-call). Round-robin distribution evenly spreads the 30 weekly demos across reps; each lead gets a confirmation email + calendar invite + a Slack ping to the assigned rep with a contextual mini-brief. No rep has to manually triage incoming demo requests.

## Troubleshooting
- **Booking page not showing availability** — All time slots are blocked by meetings on your ticked calendars, availability hours aren't set, or the date is past the page's booking window. Fix: Calendar > Booking Pages > Your Calendars: check which calendars are ticked (a busy shared team calendar blocks everything). Then edit the page > set Available Hours.
- **Double-booked through booking page** — The conflicting meeting is on a calendar that isn't ticked under Your Calendars, the account has "Check for conflicts" off, or it's on iCloud/Calendly and was added within the last 5 minutes. Fix: Calendar > Booking Pages > Your Calendars: tick the calendar the meeting was on. Google and Outlook calendars are checked live at booking time.
- **A meeting marked busy isn't blocking my booking slots** — The event is marked "Free" (Google "Show as: Free", Outlook "Show as: Free / Working elsewhere"), or it's on a calendar that isn't ticked. Fix: Set the event to Busy in Google/Outlook, or tick its calendar under Calendar > Booking Pages > Your Calendars.
- **Round-robin not distributing evenly** — A member who is busy at the chosen time is skipped, so members with fuller calendars get fewer bookings. Fairness counts bookings from the last 30 days; cancelled bookings don't count. Fix: Check each member's ticked calendars (they manage their own under Booking Pages > Your Calendars). Members who never connected a calendar look free whenever they have no CRMown events.
- **Team booking page shows no times (Collective)** — Collective only offers times when every member is free — one fully booked member blocks the whole page. Fix: Switch the group to Round Robin or First Available, or remove the member who is unavailable.
- **Team booking went to the page owner instead of a team member** — The group was deleted or has no active members, so the page fell back to its owner. Waitlist entries also stay with the owner. Fix: Booking Pages > Team Routing: check the group still exists and has active members, then re-select it under "Who hosts" on the page.
- **Payment not collected on booking** — Stripe not connected for the booking page, or the payment amount isn't set. Fix: Edit the booking page > Payment section > connect Stripe and set the booking fee amount.
- **A Select custom question only lets me enter one choice** — Fixed — choices are now discrete rows. Use "+ Add choice" under the Select question to add each dropdown option (e.g. Small / Medium / Large). Fix: Edit the question, click "+ Add choice" for each option. The public page renders them as a dropdown.
- **The public booking link shows a login page / doesn't let guests book** — Old build — the public /book/<slug> page is now a real guest-facing scheduler (no login). If you still see a dashboard-style page, hard-refresh. Fix: Hard refresh (Cmd/Ctrl+Shift+R). The public page shows branding, day/time pickers, the guest form (incl. custom questions + additional guests), and a confirmation.
- **Additional guests didn't get a calendar invite** — Native calendar invites go out for Google Meet / Teams providers. For Zoom (and the paid path historically) guests get the confirmation email + are recorded on the booking, but not a native invite. Fix: Use the CRMown meeting / Google Meet / Teams provider for full calendar invites to additional guests.

## Error messages
- `No available time slots` — All slots in the selected date range are booked or outside availability hours.

## Plans
Operations suite required. Round-robin, payments, waitlists, branded pages, recurring bookings, custom questions, additional guests.
