Booking pages
A booking page is a link you hand to someone so they can put time on your calendar without the back-and-forth. They open it, see times that are genuinely free, and pick one. It lands on your calendar and theirs.
They don't need a Pepper account, and they don't need to sign in.
Making one
Open Booking at the top of the Calendar app, beside Manage calendars (the Booking tile opens it there too), or just ask: "set up a booking page for 30-minute intro calls."
Each page is for one kind of thing you get booked for, so most people end up with a few — a short intro call, a longer working session, office hours. Every page has its own:
-
Length — how long the meeting is. The form offers 15, 30, 45 and 60 minutes as one-tap choices and a Custom box for anything else, from five minutes up to eight hours in five-minute steps. Asking works too: "set up 50 minutes with Dana." The times offered stay tidy whatever you pick — a 50-minute page proposes 10:00 and 10:30, not 10:37. Visitors are told how long it runs before they book.
-
Hours — when you're willing to take it.
-
Notice — how soon is too soon ("not in the next 2 hours").
-
Horizon — how far out people can book ("within the next 3 weeks"). It also sets how long a new link lasts, so a link never outlives the times it offers; move one and the other follows until you set them apart yourself.
-
Where — a video link, a phone call, or a place. A video-link page gets a Google Meet link created with each booking, so the invitation the visitor receives is one they can join from; a phone page puts the number they gave you on the event, and a place page puts the address. Pepper keeps that Meet link too, so it's on the visitor's confirmation page, on your booking card in chat, on the row in the Booking app's upcoming list, and in the mail Pepper sends back to the thread a page came out of — you don't have to go to Google Calendar to find the way into your own 3pm.
-
How many — how many bookings the page will take before it closes itself, from a single one up to 999. Leave it off and the page keeps taking them.
-
When the link is live — one setting with two ends: the first day it offers times, and how long the link lasts. Leave the start blank, which is the usual case, and the page offers the soonest time your hours and notice allow; set one — on the page, or by asking for times "some time next week" or "from the 24th" — and everything before that day is skipped, so nobody books you into the days you were keeping. The other end runs from a day up to two years, leave it off and the link stays open until you pause or delete the page. The two are set together but counted separately: how long the link lasts runs from today, not from the day it starts offering — so a page starting well ahead needs a timeframe long enough to still be alive when it opens, and Pepper says so rather than making one that expires first.
A new link starts out lasting exactly as long as your Horizon, and that pairing is deliberate: a link that outlives how far ahead people can book would advertise an end date it never offers times up to. Change how long the link lasts and the horizon stops having a say over that page — the end date is the only thing bounding it. Change Horizon in Preferences and Pepper offers to carry the new length onto the links you already have.
Very long links are the one case where the two can still come apart: the grid reaches about two months ahead, whatever the end date says, because offering further means reading that much more of your calendar on every visit. Such a page says so on its own screen — "offering as far as date for now" — and the later times fill in as the date gets nearer.
One meeting, or a standing link
How many and how long the link lasts are what make a page a one-off rather than a standing link, and there's no separate kind of page to pick — it's the same page with the numbers set. Say "find me one time next week" and you get a link that takes exactly one booking and then closes; leave both off and you get office hours.
Neither is a one-way door. A page that has filled up re-opens if you cancel the booking, and a page that has run out of time re-opens if you move the date out. Pepper says which of the three a closed page is when you look at it — booked, out of time, or paused by you — so you always know why it isn't taking times.
Getting a link from your email
You don't have to come to Pepper to make one. CC Pepper on an email thread and ask it to find a time, and it will make a booking page and reply on that thread with the link, so the person you were already writing to just clicks it.
When somebody books, Pepper mails the thread back to say so — when it's booked, how long it runs, who booked it, who's on the calendar invitation, and, on a video-link page, the Meet link to join from. That's the whole of it — Pepper writes to the people already on that thread and to nobody else.
The mail names who's invited because the thread is often wider than the invitation. Everyone on the thread hears that it's booked and gets the join link; the calendar invitation goes to whoever the booking actually invited, which on a one-off page is just the person who booked. So on a thread of three where one person books, the other two see the time and the link but won't find it on their own calendar. Naming the invited list is how you can tell, from the mail, which of those you are — and forward it or add someone yourself if it should have been wider.
A page you made any other way (from the app, from chat) has no thread attached, so there's no conversation for Pepper to answer into. It still writes once on its own, though, if you named more than one person for that meeting: nobody on a page like that gets a "who else is coming" line from Google, so Pepper sends its own, straight to the people you named. A page for the one person you're meeting gets nothing extra — their invitation from Google already said it all.
Asking for a link you already have
You can just ask — "what's my booking link?", "send me the link to my catch-up page" — and Pepper reads back the pages you have, with each one's link, how long it runs, where it happens, and whether it's still taking bookings. That's how you get the link for a page that already exists, rather than making a second one for the same thing. A page you never published has no link yet, and Pepper says so instead of handing you an address that goes nowhere.
A meeting several people have to agree on
The ordinary link is first-come: whoever opens it picks a time and it's booked. That's the right behaviour for one guest and the wrong one for three, because the first person to click would be committing the other two.
So name two or more people and the link collects before it offers. Everyone opens the same link and marks the times they can make. Nobody gets to book while the page is still gathering answers — once everyone has marked, Pepper takes the earliest time they can all do, puts it on your calendar and invites the whole group. Nobody has to come back and press anything.
A few things that follow from it:
- You can see who you're waiting on. Because you named people, the page can say "still waiting on Priya" rather than just "two have replied" — it shows who has answered and who hasn't, and never what anybody marked.
- If someone marking is a Pepper user and signs in, the times they're free are already ticked for them — read as free/busy only, from the calendars their own Manage calendars says count as busy, and only to save them the work. They still press send; the page goes on waiting until they do.
- If no time works for everyone, widening the timeframe asks again — but only about the new dates. That's the exit from "no time works for everyone": push the window out and the page goes back to collecting for the people whose answer doesn't reach that far. Everything they already marked stays ticked and still counts, so they're adding the new days rather than starting over, and anyone whose answer already covered the wider window isn't disturbed. Pulling the window in asks nobody again.
- If everyone has answered and nothing could be booked, Pepper tells you why. When the times they all picked are busy on a calendar Pepper checks, you hear that and whose calendar it was (yours by name, anyone else's by person only, never their event details), and your page shows a Try booking again button: clear the clash (or wait for it to pass) and press it, and Pepper books the earliest shared time the same way it would have. If Pepper couldn't read a calendar at all, it says so: if it was yours, you're told to reconnect it, and anyone else hears only that a calendar couldn't be read. Once it reads again, press the same button. When the answers simply don't overlap, there's nothing to retry, so Pepper says that instead: give the link longer or widen the hours, and it asks again about the new times.
- One silent person can't hold the meeting hostage. Each name has a Book without them option, so you can release a holdout and let the rest go ahead. Waiving the last one you're waiting on books it, the same as everybody answering would.
- Pepper tells you when a page has gone quiet, once — a day after the last person marked, or a day before the link expires, whichever comes first. It says who you're still waiting on, so you can waive them or give everyone longer. If the page came from a mail thread, the thread hears once too: that there's no time yet, never who's holding it up. Nobody is chased individually, and nothing is sent twice.
- Naming someone doesn't gate anything. The link is still the only key — anyone you send it to can mark and book, named or not. The list is there so the waiting means something and so the invitation goes to the right addresses.
- The public page shows names, not addresses. A link like this gets forwarded, and a roster of everyone's email would go with it.
You get this the same way as the one-guest version: CC Pepper on the thread and ask it to find a time. If the thread has several people on it, Pepper makes it a collect-first page.
Writing the rules in your own words
The part worth knowing: you don't fill in a grid of checkboxes. You write your availability the way you'd say it to a person, and Pepper works out the schedule from it.
Things that work:
- "Weekday mornings only, never more than 2 a day"
- "Every other Monday"
- "Don't put bookings right next to each other — leave 15 minutes either side"
- "Nothing before 10, nothing on Fridays"
- "It's in person — I need 45 minutes to get there and half an hour to get back"
- "15 minutes after every meeting to write up my notes"
- "20 minutes either side"
Those last three do something the others don't: they put the time on your calendar. Ask for time around your bookings and every booking through that page arrives with a private entry either side of it, titled with the reason you gave — "Travel to the studio", "Notes", "Lunch". They're yours: nobody who books gets an invitation to them, and they stay private on a calendar you share with anyone else. But they're real events, so they show you as busy, they stop somebody booking over that time from anywhere else, and they say what the gap is for.
That last part is the point. Time held only inside a booking page is time another booking page will happily sell — to everything else, including Google, it still reads free. So Pepper writes it down.
The two sides are separate, because they're rarely the same. "Half an hour to drive over" holds the way there and nothing else; "15 minutes afterwards for notes" holds nothing before. "Either side" is simply both. Cancel the meeting and the entries go with it.
This works on any page, not just in-person ones — a video call can want twenty minutes afterwards as much as a site visit can want the drive. Mentioning a journey only changes what the entry is called.
Pepper then shows you the complete instructions back as plain prose, so you can read what it understood before you publish. If a sentence can't be turned into a rule it can actually enforce, it tells you which sentence rather than quietly ignoring it. Nothing is silently dropped.
If you later edit the wording, Pepper will point out that the schedule was built from an older version until you have it re-read them. Re-reading them is an edit, not a fresh start: anything your new wording doesn't mention keeps the value it already had, so adding "Tuesdays as well" to a page won't quietly drop the buffer you set somewhere else. To take something off, say so — "no buffer on this one".
Setting it once, instead of on every page
Most of that is the same for every page you'll ever make. "Fifteen minutes either side" and "never more than three a day" are facts about how you work, not about one link — so they live in the Booking section of the Calendar app's Preferences, at the top of the Calendar app (the gear).
The first box in that section is the fast way in — What are your preferences when Pepper books meetings for you? Write "weekday mornings, 15 minutes either side, never more than three a day", press Save instructions, and the settings underneath set themselves from it — the same control, and the same reading, as a booking page's own instructions. Anything no setting can hold ("always ask what they want to discuss") stays in the box, and every new page starts with it. Nothing is stored until you press Save at the foot of the page, so you see what Pepper made of your words before you keep them.
Everything it sets, which you can also just set yourself:
- Buffer — time held either side of a booking, and what the calendar entry is called.
- Notice — how soon is too soon.
- Horizon — how far ahead people can book.
- Most in a day and Most in a week — ceilings on how much you'll take.
- Spacing — whether a day's bookings should be kept together, kept apart, or neither.
Your timezone is under Locations on the same page — the same setting as in Settings — and booking pages read your hours in that zone. A page copies that zone when it's made, so changing it later never moves a link you've already sent.
Every new page starts from these, including one Pepper makes for you from a sentence in chat or an email thread, where there's no form for anyone to fill in. A page can still say otherwise in its own instructions — that's what its instructions are for — and the Booking section lists which of your pages currently do.
Changing a default doesn't reach back into pages you've already made. A link already in somebody's inbox is a promise, and moving its hours from a settings screen would break it quietly. If you want the change carried across, there's a switch on the save: also apply what I changed to my pages. It writes only the settings you actually changed and tells you which pages took them. A page that opens different hours on different days keeps its own times — the Hours control is one span across the days you pick, and can't describe those — but a day you close is closed on it too, and if that leaves a page with no open days at all it says so, because that page has stopped taking bookings.
Seeing what you're offering, and tweaking it by hand
Every page, and the form for a new one, carries a grid called Times on offer: the next days the page would offer, five at a time, with arrows to page further ahead. It's built from the same rules and the same calendar read as the public link, so it changes as you change the settings above it — hours, length, instructions, notice, the calendars that count — before you've saved anything. Your own calendar events are drawn over it with their titles, so you can see why a time is missing. (A room's page shows which member is busy, never what their event is called.)
The grid is also where you make exceptions, one click each, without touching the rules:
- Hold a time back. Click a free time and it's struck through and off the public page. Click it again to offer it back.
- Take a whole day off. Click the day's heading. Every time on it is held back, and the heading says so; click it again to offer the day back, which also clears any single times you'd held on it.
- Offer a time your calendar says is busy. Click the event, and that time is offered as if it were free; a booking there lands on top of it, knowingly. Click again to take it back. A busy time with no event drawn over it is clickable in the same way. A time you've held back stays held even if it's also offered. This is for your own pages: on a room's page a member's busy time is theirs.
These are exceptions on that page only. Holding a time back doesn't write anything to your calendar, so another booking page, or a colleague, could still take it; if you need the time blocked everywhere, put it on your calendar. They survive having Pepper re-read the rules you wrote, and a page made from those rules starts with nothing held or offered.
Notice can be changed on the page too, under Advanced beside Hours, in steps of an hour, and like Hours it keeps your figure when the instructions are re-read unless they say otherwise.
What visitors see
The times on the page are real, checked against your connected calendar at the moment they look — not a static grid you have to keep up to date. If you get booked elsewhere, the slot disappears.
Your rules apply on top of that: daily caps fill up and stop, adjacency rules keep meetings from stacking, and the times lead with the ones a person would actually reach for — on the hour and the half hour, rather than every quarter-hour offset going spare.
Odd start times still appear where they're the only thing that fits: if you're busy until 11:45, 11:45 is offered, so a gap between meetings isn't wasted. Nothing bookable is lost to the tidier list — only the redundant ways of spending the same free time. (Pages shorter than half an hour keep the full quarter-hour set, since that's already how a person would read them.)
A couple of nice touches:
- If the visitor is also a Pepper user and signs in, they see the times that work for both of you — read as free/busy only, from the calendars their own Manage calendars says count as busy, and only to narrow the list. Signing in is an offer, never a requirement, and it never works the other way around: they can't see anything of yours beyond the open times.
- If two people go for the last slot at the same time, one gets it and the other is told it just went — you'll never be double-booked.
When someone books you
Pepper emails you when someone books through your link, or moves a booking they made, so a calendar acceptance from Google never arrives without an explanation. The email says who booked (name, email, and phone if they gave one), anyone else they invited, their note, the page, the time in your time zone and how long, the video link or place, and which of your calendars it went on, with links to the page and to the booking in Pepper. A move shows the new time and the old one. If Pepper couldn't put the booking on your calendar, or couldn't move the event when they changed the time, the email says so at the top, so you know your calendar needs fixing.
When Pepper can, it adds where you already know them from: the email thread the page was made from, or else your most recent email with them in the past year (its subject and date, from Gmail, when Gmail is connected). Calendar invitations don't count, so it's never just this booking's own invite.
It's only about what the visitor did: you don't get an email about a change you made yourself. On a page made from an email thread you're on, the first booking is announced on that thread instead, so you don't get both. The email goes out a few seconds after they book, so they never wait on it, and if it fails, their booking stands.
If they picked the wrong time
Every invitation Pepper sends ends with "Need a different time? Pick one here", and that link keeps working after the booking is made. The person who booked can open it, see the times you're still free — their own meeting no longer in the way — and move to a different one themselves. They don't have to write to you, and you don't have to do anything.
What happens is a move, not a cancel-and-rebook: the meeting keeps its place on both calendars, keeps its video link, and keeps the invitation the two of you already accepted. Everyone on it hears about the new time.
Two limits worth knowing:
- They can move it; they can't call it off. Cancelling stays an ordinary reply to the calendar invitation, which comes to you — so nobody holding the link can quietly delete a meeting out of your day.
- A standing link doesn't hand over the last person's meeting. While a link is still taking bookings it doesn't show any one meeting, so the change page has nothing to move. It's the invitation you sent that carries the way back to a specific booking, which is why the link in that mail always lands the right person on the right meeting.
A move or a cancellation gets its own word from Pepper, on a page with no mail thread, whoever's on it. A first booking on a page like that stays quiet unless you named more than one person — but once a meeting has been made, moving it or calling it off makes the invitation everyone already has wrong, however many people are on it. So whoever's on the booking hears about it directly from Pepper.
A page made from a mail thread is the other way round, and it's worth knowing which one you have. There, Pepper writes to the thread when the meeting is first booked — that's the mail described further up. A later move or cancellation is left to Google's own update, which goes to the people on the calendar invitation; Pepper doesn't write to the thread a second time to say so. So on a thread that's wider than the invitation, the people who aren't on the meeting hear when a time is found and won't hear if it later changes.
Sharing, pausing, and taking it down
- Publish when you're ready. Going live is what mints the link.
- Pause it and the link still opens but stops offering times — useful for a week off, without invalidating a link you've already sent to people. A page that has hit its limit or run past its timeframe closes the same way, without you doing anything.
- Delete a page and the link stops working immediately. Anything upcoming that had been booked through it is called off, and Google sends those cancellations; meetings that already happened are left alone. If you deleted it by mistake there's an undo, for as long as you keep the screen open.
There's no "change the link" button, and that's deliberate. If a link has been shared further than you meant, the answer is to delete the page — the URL stops working the moment you do. Undo brings the page back with its name and rules intact and a new link, so it's the closest thing to a rotate.
It isn't free, though, and it's worth knowing before you reach for it: the delete cancels whatever was booked, and the undo does not re-invite those people or bring their meetings back. It also brings the page back paused, so you publish it again when you're ready. If the page has bookings you want to keep, tell the people you'd rather not hear from that the page is gone instead.
Asking about it in chat
Every booking page you make becomes something Pepper knows about, so you can just ask:
- "What did I say my intro-call hours were?"
- "Has anyone booked me this week?"
- "Cancel the Thursday one."
Pausing a page, deleting it, or changing its rules is done in the Booking app itself (see "Sharing, pausing, and taking it down" above) rather than by asking in chat.
If you have several pages, you can also tell Pepper to start a new one from another's rules ("same as my intro calls, but 60 minutes") instead of writing them out again.
Good to know
- Events marked "Free" don't block a booking unless you say so. Google marks all-day events Free by default, and calendars fed from outside — a holiday calendar, a trip importer — usually never mark anything Busy, so a trip on one of those could sit under an open slot. Set Counts as busy to Yes, even events marked Free for that calendar in Manage calendars, and new pages start with it counting whole, all-day events included; a page you already made keeps its own What counts as busy, where each calendar has the same Count events marked Free box. It's per calendar, so your holiday feed can count whole while a "Free" block on your work calendar stays bookable.
- A booking cancelled on your Google Calendar stops counting. If you delete the event from your calendar directly, the slot frees up again.
- The page keeps the timezone it was made in. Times you wrote ("weekday mornings") mean mornings where you set the page up, so travelling doesn't quietly redefine what you published. A room's page uses the time zone of the member who set it up. Visitors see the times in their zone.
- Pepper isn't in the meeting. It writes the event and sends the invitation, but it isn't a participant and won't join or take notes.
- A room can have several booking pages, one for each kind of meeting. In the Members section of a page, anyone in the room can set each member to Required, Optional or Not included, themselves included. Required people must be free for a time to be offered, and they're invited; Optional people are invited but never block a time. Pepper reads a Required person's busy times from what they share with the room, or from the calendars they pick for that page. Someone who shares nothing, has no calendar connected or whose calendar can't be read counts as free, and the page tells whoever is setting it up. The meeting is sent from one Required person whose calendar Pepper can write to, which you can change on the page; with nobody like that, the page can't book anything. When you ask Pepper in the room for a link, it names the members by name; if you don't say who the meeting is with, everyone in the room who's on Pepper is Required, you included. A name Pepper can't match to a room member is turned down, with the list of names it can use, and no page is made.
- A page with no readable rules offers nothing. That's deliberate — if Pepper can't tell what you meant, it would rather show no times than the wrong ones.
- If Pepper's access to one of your Google accounts stops working, the page says so. A page can only offer times it's sure you're free for, so one calendar it can't read is enough to stop the whole link — and the first person to find out shouldn't be a stranger who opened it. Pepper flags it on the page in the app with a pointer to reconnect (see Connecting your accounts), so you can fix it before anyone tries the link.
See also: Calendar for the calendar itself, Connecting your accounts for connecting the Google account the bookings are written to, and Apps for how apps work in chat generally.
Things to try
- Let them pick a time. Someone emails asking to meet. Reply with Pepper on CC and a line like "find a time with them": Pepper answers on the thread with a link, they pick a time, and it goes on both calendars. With several people on the thread, everyone marks what they can make on the same link, and Pepper books the earliest time that works for all of you.
- Make a booking page by saying how you like to meet. Say how you like to meet — "a booking page for 30-minute calls, weekday mornings, no more than two a day" — and Pepper turns it into a link anyone can book, offering only times you're really free.
Try it: "Make me a booking page for 30-minute calls, weekday mornings, no more than two a day" - Organize the other parents. CC Pepper on the email thread with "find us a time" and it replies to everyone with a link, so nobody has to compare calendars.