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.

  1. 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).
  2. 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.
  3. 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.
  4. 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

What bookers do

  1. Pick a kind of meeting, a day and a time (shown in their own time zone, which they can change).
  2. Type their name, email and any answers.
  3. 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

Workspace settings

Org Settings → Booking pages (Owners and Admins):

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).