# Scheduling (coming soon)

> One-to-one scheduling for sales calls, interviews and consultations. Booking pages and embeds, Google Calendar integration (free/busy checks and events), Meet, .ics and cancel links. Where it stops and Gym's begins.

URL: https://siteon.dev/docs/scheduling

Siteon is infrastructure for AI-built websites: it adds hosting, a CMS your client can edit, contact forms, analytics and control from AI agents (CLI and MCP) around static HTML built with AI or by hand, so it is ready to ship.

## What it does

A single flow from an inquiry to a confirmed time, for **one-to-one meetings: sales calls, interviews and consultations**. The visitor picks a free time and books it, and an event appears on the shop's Google Calendar.

- Siteon hosts the booking page (`https://<shared domain>/b/<page id>`). Put it on your own site with an embed snippet (iframe)
- Free times are worked out from the events on the connected Google Calendar. Once someone books, that time is taken
- One slot holds one person. To change a time, cancel and book again
- Bookings per day are capped at 8 by default, 20 at most
- The number of booking pages depends on the plan ([Plans and limits](https://siteon.dev/docs/plans))

## Google Calendar integration

The site owner connects a calendar with their own Google account. Connecting it and creating or editing booking pages is done by the owner in the admin (not through API keys, the CLI or MCP).

- **Events**: when a booking is confirmed, an event named "Booking: <booking page title>" is added to the connected calendar. It carries only the time, a minimal title and a link to the admin. **The visitor's answers are not written to it, and the visitor is not added as a guest**
- **Google Meet**: turn it on in the booking page and the event gets a Meet URL, which is also emailed to the visitor. Joining a Meet may need the host's approval, depending on Google's settings
- **.ics**: the visitor's email includes an `.ics` file they can add to their own calendar; when a booking is cancelled, the same event arrives as a cancellation
- **Cancel link**: the link in the visitor's email lets them cancel the booking themselves. The shop can cancel too, and the visitor is emailed
- Confirmation emails go to both the visitor and the shop

If the connection is removed, or permission is withdrawn on Google's side, an event for a booking cancelled afterwards may stay on the Google Calendar. The calendar's owner then deletes it by hand.

## Booking notifications (webhooks)

In the admin's "Settings → Advanced → Webhooks" you choose which events each webhook receives. Besides `form.submitted`, you can pick booking confirmed (`booking.confirmed`) and booking cancelled (`booking.canceled`) ([Webhooks](https://siteon.dev/docs/webhooks)).

## CLI and MCP

An API key (scope `bookings:write`) can check and cancel bookings.

| Command | What it does |
|---|---|
| `siteon booking status` | Resources, booking pages, public URLs and embed snippets |
| `siteon booking list` | List bookings (with Meet URL and calendar status) |
| `siteon booking cancel <id> --yes` | Cancel as the shop. Cannot be undone; the visitor is notified |
| `siteon booking pause <resource\|page> <id>` | Pause a resource or page (resume it in the admin) |

In MCP these are `booking_status`, `bookings_list`, `booking_cancel` (requires `confirm: true`) and `booking_pause`. Creating, editing, resuming and deleting booking pages is not offered in the CLI or MCP.

## Where it stops, and where Gym's begins

Scheduling is for one-to-one appointments: sales calls, interviews and consultations. If you need member management, ticket packs, class bookings or slots with a capacity, that is [Gym's](https://gyms.jp) territory, which handles reservations, customer management, payments and analytics together.

- Scheduling keeps the visitor's answers (name, email and so on) and the booking time. It keeps no member or visit history
- There is no payment
- Applications with a capacity (seminars, trial sessions) can be taken with a form's [capacity and waiting list](https://siteon.dev/docs/forms)
