How do I build a booking request form for Notion?

Build a Notion booking request form with a Form view and a Date question, track requests on a calendar, and confirm each booking with a Status property.

Nookesh KarriNovember 2, 20266 min read
Light cover card with the title 'How do I build a booking request form for Notion?' in dark text and a blue accent bar

To build a booking request form for Notion, create a Bookings database with a Date property, add a Form view, and share it with Anyone on the web with link. Each request lands as a new row you can review, confirm or decline. A Notion booking request form collects requests but doesn’t block taken slots, so you approve each one before it counts.

Request form or instant booking: which one do you need?

A booking request form and an instant booking link solve different problems, so pick one before you build anything. A request form asks people what they want and waits for your yes. An instant link shows open slots and books the first one taken.

You need to… Use
Approve each booking first (venue hire, photo shoots, consults) A Notion booking request form
Collect details before you agree (budget, guest count, location) A Notion booking request form
Let anyone grab an open meeting slot A Notion Calendar scheduling link
Let people reschedule or cancel on their own A Notion Calendar scheduling link

Notion Calendar handles the instant side. Its scheduling links come as one-offs or recurring links, invitees pick a slot from your availability, and the meeting appears on your calendar automatically. With Avoid conflicts on, the same link keeps working for several bookings.

My take: if you’d accept any open slot without reading the request, skip the form and send a scheduling link. The form only earns its place if you sometimes say no.

Set up the Bookings database

The Bookings database holds one page per request, and each form question maps to one of its properties. Notion’s forms guide says every question is connected to a database property, and responses go into a Table view named Responses by default.

Create these properties before you add the form:

Property Type Why
Name Title Public responses are anonymous, so you need it
Email Email Where you send the confirmation
Requested date Date The slot they want
Service Select What they’re booking
Details Text Guest count, location, notes
Status Select Requested, Confirmed, Declined

Leave Status off the form. You set it yourself when you review the request.

Build the Notion booking request form step by step

The form itself takes a few minutes once the database exists. Notion only lets you create and customize forms on desktop or the web, not on a phone, so do this part at a computer.

  1. Open the Bookings database and add a new Form view.
  2. Add a question for each property except Status. Set Requested date to the Date question type, which Notion suggests for asking about availability.
  3. Show Service as a dropdown if it has many options.
  4. Mark Name, Email and Requested date as Required.
  5. Open Share and choose Anyone on the web with link.
  6. On the submit screen, turn on the email copy of each submission so you notice new requests.

Notion says forms on all plans work this way, so a free workspace can take requests. If you want different questions for different services, that branching is conditional logic, and Notion limits it to Business and Enterprise plans.

A photographer might get this: Service is “Family portrait”, Requested date is a Saturday, and Details says “4 people, prefer the park near us, before 10 am”. You can say yes, suggest another day, or decline from that one page.

Track requests on a calendar view

A calendar view turns the Bookings database into a schedule you can scan at a glance. Notion’s calendar help says the view needs a Date property, and you can drag a card to another day to move it.

Add a Calendar view, choose Show calendar by → Requested date, and switch it to Week if you book by the hour. Filter it to Status is Confirmed for your real schedule. A second view filtered to Status is Requested is your inbox.

Two requests on the same Saturday? Confirm one and offer the other person a new date.

Confirm the booking by email

A confirmation email tells the client the slot is theirs, and Notion can send one only on a paid plan. Database automations run on paid plans, while the Free plan allows only Slack notification automations.

On a paid plan, create an automation on the Bookings database:

  • Trigger: Status is edited to Confirmed.
  • Action: Send mail to, with the client’s address in the To field.

The Send mail to action sends from your Gmail account, and you need one to use it. Notion says the recipient can be an external address, and that emails may take up to two minutes to arrive. If you’re on the Free plan, copy the email address from the page and reply by hand.

Common mistakes and limits

The biggest limit of a native Notion booking request form is that it never blocks a slot. Anyone can pick a date you’ve already confirmed, and your review is the only double-booking check there is.

Other mistakes I see:

  • No email question. Public respondents are anonymous, so without it you can’t reply.
  • Status on the form. Clients shouldn’t confirm their own bookings.
  • Leaving the form open. When you’re fully booked, set sharing to No access to stop new requests.
  • One giant form. Notion warns that forms with a very high volume of responses can load slowly.

Slots that hide once taken take a much bigger build. One Calendly-style build in Notion needs an Availability database, a Bookings database, an embedded third-party form and Make scenarios to hide booked slots and stop double bookings. It works, but that’s a lot to maintain for a solo business. Our post on Notion form limitations covers the other gaps.

Using nDBForms for booking requests

nDBForms is a form builder that writes each submission to your Notion database as a new page, so it fits the same Bookings setup. It has separate date and time question types, sends an email notification for each new submission, and respondents don’t need a Notion account.

Its conditional logic is on the Pro plan and works with any Notion plan, which helps if each service needs its own questions. The limit is the same as Notion’s: nDBForms collects requests and doesn’t check your calendar, so you still confirm each booking yourself.

For related setups, see the client intake form guide and how to share a Notion form publicly.

FAQ

Can a Notion form stop double bookings?

No. A Notion form accepts any date a person picks, so two people can request the same slot. Review requests on a calendar view and only confirm one, or use a Notion Calendar scheduling link with Avoid conflicts turned on.

Do clients need a Notion account to send a booking request?

No. Share the form with Anyone on the web with link and people who don’t use Notion can fill it out. Their responses are anonymous, so ask for a name and email.

Can Notion send a confirmation email when I accept a booking?

Yes, on a paid plan. A database automation with a Send mail to action can email a fixed or external address from your Gmail account. The Free plan only allows Slack notification automations.

Use a request form when you need to approve each booking or collect details first. Use a scheduling link when any open slot is fine and you want the meeting on your calendar right away.

Sources