Booking links
A booking link is a public page where people outside your workspace pick a time with you. They don't need an account: they choose a time, type their name and email, enter the six-digit code we email them, and they're booked. The booking becomes an ordinary Ramphearth meeting on your calendar, with the booker invited as an outside guest.
Booking pages are on the Ministry, Creator and Business plans. Any member (not a Guest, and 18 or over) can make one, unless the workspace keeps them to Owners and Admins or to chosen roles.
Your page
Open Booking page from the top bar's More menu.
- Your page — your name as bookers see it, a short line about you, a welcome note, your time zone and your link name.
Your link is
<booking site>/<workspace>/<your name>. The workspace's part is its link name; an Owner or Admin chooses it once (the same name the workspace's public hub uses). - Availability — your weekly hours, plus dates that differ (a day off, a late start). You can keep more than one schedule and pick one per kind of meeting.
- Kinds of meeting — each has a name, one or more lengths, where it happens and what you ask:
- Where: a Ramphearth call (the usual), a phone call (you call them, or they give a number), in person, or another online link.
- Questions: short answer, long answer, a choice, a tick box or a phone number. Bookers see only what you ask.
- Timing: minimum notice, how far ahead people may book, gaps before and after, a limit per day, and how close to the start the booker may still move or cancel online.
- Reminders: the day before, the hour before, both or neither (emails to the booker).
- Listed or secret: a secret kind isn't shown on your page; only people you give its own link can book it.
- Publish when you're ready. Until then the page answers "not found".
How it looks
Booking pages wear your workspace brand: its name (or its logo, top left), its accent colour per mode and the mode visitors first see. Owners, Admins and people with Manage client portals set it in Org Settings → Brand, which client portals share. An accent is always shown readable: buttons get a label at 4.5:1 contrast and links are darkened or lightened until they read on the page (the amber focus ring and selection stay Ramphearth's). The workspace icon is never used as the booking page's logo — upload one under Brand.
Your photo is on your host card: your account photo, one you upload and crop for this page (512 × 512, checked like every upload), or no photo (your initials on the accent). It's served by your page's own link key, never by your account.
The booking emails (the code, the booked invite, reminders, changes) come from Ramphearth as "<your workspace> via Ramphearth" with the brand's accent. Send me a test email sends you the booked email with made-up details, to your own address only.
The preview on Booking page draws the real page in Midnight or Daylight, at phone or computer width.
Powered by Ramphearth: the small line at the foot of every booking page. On Business an Owner or Admin can hide it in Org
Settings → Booking pages (switch bookingHidePoweredBy); if the plan changes, the line comes back.
On your website
When the booking site is its own (book.ramphearth.com), Booking page → On your website gives you code to paste (it
also sets no border and a 960 px maximum width):
<iframe src="https://book.ramphearth.com/embed/<workspace>/<your name>" title="Book a time" width="100%" height="720"
loading="lazy"></iframe>
Only /embed/… may be shown inside another site; every other booking address refuses to be framed. On a self-hosted
server without a separate booking site, embedding isn't offered.
Busy time
Your free times leave out anything already on your Ramphearth calendar: meetings you organise or accepted, other bookings (with their gaps), shifts you're on, events you signed up for, and times someone is holding while they enter their code. Bookers only ever see free times, never what you're doing.
Busy from another calendar
Appointments in Google Calendar, Outlook, Apple iCloud or Fastmail can block times too. On Booking page → Availability, paste that calendar's secret address in iCal format under Busy from another calendar:
| Calendar | Where the address is |
|---|---|
| Google Calendar | Settings → your calendar → Integrate calendar → Secret address in iCal format |
| Outlook | Settings → Calendar → Shared calendars → Publish a calendar → ICS link |
| Apple iCloud | Calendar → share a calendar → Public Calendar → copy the webcal:// link |
- We read it straight away, then about every 15 minutes while your page is published (and when someone opens your page).
- We keep only when you're busy for the next 90 days — never titles, people, places or notes. Free (transparent) and cancelled events don't count.
- The address works like a password, so it is stored sealed and never shown again — only its last four characters.
- If it can't be read, the card says why. Your pages keep using the last good read for a day; after that its times stop blocking and you get a notice in Activity.
- It's one per account: connected once, it blocks the booking pages in every workspace you have one in.
- Read now reads it again (once a minute); Disconnect forgets the address and every busy time at once.
What bookers do
- Pick a kind of meeting, a day and a time (shown in their own time zone, which they can change).
- Type their name, email and any answers.
- Enter the six-digit code from the email within 10 minutes. The time is held for them until then.
They get a confirmation with a calendar file and a Reschedule or cancel link. That link works until the change cut-off you set; rescheduling sends a fresh link and the old one stops working. After the meeting they can also choose Forget my details, which removes their name, address and answers from the booking.
On a plan without outside meeting guests, a booked meeting still admits its booker — only that person, after confirming their email — and nobody else from outside.
Your bookings
The Bookings tab lists upcoming and past bookings with the booker's answers. Owners and Admins can switch to Everyone to see the whole workspace's. Cancelling a booking cancels its meeting and emails the booker. Each new, moved or cancelled booking also shows in Activity, and as a push notification unless you turn Bookings off in Settings → Notifications.
In client portals, on the fan hub and in Meetings
- Client portals: turn on Offered in client portals on an event type and the contacts of every portal you're staff on see a Book a call card on their To do page. They pick a time and book signed in, with no code to type. The call is the portal's: it shows under Calls for the contact and the portal's staff, the portal's History says "booked a call", and the booking is marked Booked in the client portal. A host who isn't on a portal's staff isn't offered there, and a closed portal offers nothing. Because a contact is a member of your workspace, their email address shows in the booking only to Owners and Admins.
- Fan hub: in Org Settings → Fan hub, Owners and Admins can pick one listed event type for a Book a call button on
ramphearth.com/@<handle>. The button hides itself while the type is off, unlisted or its page unpublished; the pick is kept, so it comes back when the type does. - Meetings: a call that came from a booking carries a Booked chip. Its host, and Owners and Admins, also see Booking details on the meeting's page: who booked, their time zone, where it was booked and their answers.
Workspace settings
Org Settings → Booking pages (Owners and Admins):
- Who may publish: everyone (not Guests), Owners and Admins only, or chosen roles.
- Keep booking answers for: how long the booker's answers stay before they're removed automatically.
- Include bookers' email addresses in events and the API (Owners only, off by default): see below.
The API, events and assistants
Bookers are people outside your workspace, so bookings are for people, never apps. The scopes bookings:read and
bookings:write can be ticked on a personal token or for an assistant you connect, never on an app token, an installed app
or a third-party app's connection.
GET /v1/orgs/{org}/booking-pages |
your page (?mine=true), or every page for an Owner or Admin |
GET /v1/booking-pages/{id}/event-types |
its event types and their links |
GET /v1/booking-pages/{id}/event-types/{type}/slots?from=&to=&time_zone= |
the free starts a visitor would be offered (14 days at most) |
GET /v1/orgs/{org}/bookings?when=upcoming|past&scope=mine|all |
bookings, as the Bookings tab lists them, a page at a time (limit, next_cursor) |
POST /v1/bookings/{id}/cancel |
cancel one (bookings:write); the booker is emailed. With the workspace's "ask first" on, it waits for you to confirm in Ramphearth (202) |
Events: booking.created, booking.rescheduled and booking.cancelled go only to an event subscription made by the
booking's host or an Owner or Admin — in the app, or with their personal token holding bookings:read — never one an app
made. Making or changing a subscription that names one (or booking.*) is refused when it could never receive them: 403
insufficient_scope for a token without bookings:read, 403 forbidden for an app (a broad * still subscribes to the
rest). Polling /v1/orgs/{org}/events shows them on the same terms. data.booking holds ids, the event type, the times and the location kind; the booker's name, time zone and
answers are the content part (left out of thin payloads). The booker's email appears in events and the API only when
an Owner turns on Include bookers' email addresses in events and the API. A booking made from a client portal never carries the contact's address in an event (they're a workspace member). A booking whose booker asked to be forgotten
carries no booker, and asking to be forgotten also takes the booker out of the events Ramphearth still keeps (7 days); turning
the email switch off takes every booker out of them.
Assistants (MCP): get_my_booking_links ("what's my booking link?") and get_booking_availability ("when am I free for
a 30-minute intro next week?") read your own page. Your assistant asks for See your booking page as its own box on the
consent screen, unticked: the bookings carry the names and answers of people outside your workspace. They never book or cancel.
Zapier and Make: the automation apps have New booking and Booking cancelled triggers
(Zapier also Booking rescheduled) and a Cancel booking action. Connect them with a personal token holding
bookings:read (and bookings:write to cancel); triggers also need events:subscribe and the Manage integrations permission,
like every trigger. n8n reaches the same events through its Ramphearth Trigger (any event).
Limits
| Ministry | Creator | Business | |
|---|---|---|---|
| People with a published page | 3 | 3 | 500 |
| Bookings a month (whole workspace) | 100 | 200 | 2,000 |
When the monthly limit is reached, new bookings wait until next month and the workspace's Owners and Admins are told. Calls
booked from a client portal don't count toward it and aren't stopped by it: the contact is already part of your workspace. Plan
names and numbers are in Plans and availability; the switch is bookingPages, the caps bookingHosts and
bookingsPerMonth.
Abuse controls
There is no third-party captcha. A booker must confirm a code sent to their email; codes are limited per address and per network, and a page has a limit on times held at once. Names and answers pass your workspace's word filter.
Where the pages live
Booking pages are served from their own site (book.ramphearth.com on the hosted service). On a self-hosted server they
live on your own address at /book/…; set BOOKING_PUBLIC_URL only if you host the booking site separately (see the
self-hosting configuration guide).