How To Create A Booking Form With Connected Availability

Show customers real-time availability and eliminate scheduling back-and-forth with a booking form that updates as spots fill.

Build Time & Skill

15-20 min

Beginner

What you'll learn

How to create a booking form that shows only available timeslots, prevents double-booking, and displays how many spots are left

Screenshot of Cognito Forms Lookup field settings and fields to select a date and time on a booking form

Manual scheduling becomes a hassle when you’re constantly going back and forth with clients to find an available time, only to discover you’ve accidentally double-booked yourself. Customers get frustrated waiting for responses, and you spend time managing a process that should run itself.

With Cognito Forms, you can create a booking form that solves these problems automatically. Customers see only your truly available timeslots, the system prevents double-booking without any manual intervention, and you both get instant confirmation when an appointment is made.

This automated approach helps you:

  • Eliminate double-booking. Once the last spot for a session is taken, it instantly becomes unavailable to everyone else.
  • Create a professional booking experience. Customers see real-time availability, book instantly, and receive instant automated confirmation.
  • Scale effortlessly. Whether you’re scheduling five appointments or 500 sessions, your form manages capacity itself.

Before You Start

Two features in Cognito Forms work together to create smart booking. Lookup Fields pull your available timeslots into the booking form, while Quantity Limits ensure each slot can only be booked up to its capacity. This combination creates a self-managing system where availability updates automatically as appointments fill.

Lookup Fields Quantity Limits
Lookup Fields pull data from another form's entries into a field on a different form. Quantity Limits control how many times a specific value can be selected in a field.
This lets you manage all your timeslots in one place, then reference that data wherever you need it. This prevents overbooking by setting a maximum number of times each timeslot can be selected.
Learn more about Lookup Fields → Learn more about Quantity Limits →

How to Set Up Your Booking Form & Timeslots

In the steps outlined below, we’ll show you how to build these two forms that work together:

  1. Availability Inventory Form: A behind-the-scenes form that stores all your available timeslots, including dates, times, and attendee limits.
  2. Booking Form: A customer-facing form that uses a Lookup field to pull available timeslots from your inventory, filters by selected date, hides full times, and enforces capacity limits. When customers book, availability is automatically updated on the form.

Step 1: Build your availability inventory

Your inventory form stores every timeslot you offer. This becomes like a mini database that automatically feeds your booking form with up-to-date availability.

Animated GIF of setting up a source form for availability inventory. It shows adding a Date field, Time field, and Number field labeled 'Capacity'

  1. Create a new form and add:
    • A Date field, and name it “Date.”
    • A Date field of the Time type, and name it “Time.”
    • A Number field named “Capacity.” This specifies how many people can book each individual timeslot.
Quick Tip

Add any additional fields that would help customers filter through timeslots. A few ideas include:

  • A Choice field for location, letting customers select sessions at their preferred office.
  • A Person field for provider, letting patients book with their preferred therapist or consultant.
  • A Choice field for service type, letting customers book different appointment types.

Animated GIF of going to the Entries page for the Availability Inventory source form and submitting entries for options on that form

2. Add entries for each date’s timeslot you offer.

  • Add entries individually using the Public Link of your form or from an entry view. You can also import an Excel or CSV file to add multiple timeslots at once, or use an integration to automate populating timeslots from your calendar.
  • Update the “Capacity” Number field to match your needs. For example, if you’re scheduling a class with ten people, set “Capacity” to 10. If you’re a consultant who only sees one client at a time, set “Capacity” to 1. For a physical therapy clinic with three treatment rooms, each room’s timeslot would have a capacity of 1.

Step 2: Build the booking form

Now, you’ll create a booking form that pulls timeslots from the inventory form. Each timeslot will display as selectable options that automatically update as appointments fill.

Animated GIF of adding and configuring a Lookup field to a Booking Form, connected to the Availability Inventory Source form

  1. Create a new form and add fields for your customer’s details, such as Name, Email, Phone Numbers, etc.
  2. Add a Lookup field and name the field (“Time” or “Appointment”).
  3. In the Lookup Choices From dropdown, select the “Availability Inventory” form you created earlier.
  4. For the Choice Label, use the Insert Field option to select the Time field. By doing this, you are designating your source form’s entry data for the “Time” field to appear as the choices for customers to select.

Step 3: Add filters to time choices

Next, add filtering to make booking easier for customers by showing only relevant timeslots based on the date they select.

Animated GIF of setting up and configuring the logic of a Cascade Filter on a Lookup field

  1. In the Lookup field settings, find the Include section.
  2. Click Add Cascade Filter and choose “Date.” This creates a two-step selection: first customers pick a date, then they see only times available on that specific date.
  3. Click the Include setting that says “All Entries.”
  4. Set the condition Only Include Choices WhenCapacity is not 0 AND Date is in the future. This hides timeslots that are full or already past today’s date.
Quick Tip

Sort times chronologically for easier scanning:

  1. Find Sort By in the Lookup field settings.
  2. Select the “Time” field and then sort from Oldest to Newest.

This displays date and time options in order from earliest to latest.


Step 4: Prevent overbooking with Quantity Limits

Quantity limits ensure appointments can’t be double-booked by tracking how many spots remain for each timeslot.

Animated GIF of enabling and configuring the "Limit Quantity" setting on a Lookup field.

  1. In the Lookup field settings, check Limit Quantity.
  2. For Quantity Available, select the “Capacity” field from your inventory form.
  3. For Quantity Exceeded, add an error message, such as: “This slot has been filled. Please select another time.”

Show the number of spots left next to each time

Display remaining capacity directly in the dropdown so customers can see how many spots are left:

  1. Add a Calculation field to your form, and name it “Remaining.”
  2. In the Calculation option, add =Time_QuantityRemaining to show the number of remaining spots for the timeslot selected in your Lookup field.
  3. In your Lookup field Choice Label, insert the field titled Remaining and then type in static text that says “spot(s) left.”
    • Your new Choice Label should read “Time - Remaining spot(s) left.”

Your Lookup field dropdown now displays how many seats remain for each timeslot and updates automatically as people book.


Step 5: Set up automatic confirmation emails

Automatic confirmations keep customers informed and reduce no-shows by sending appointment details immediately after booking.

Animated GIF of adding and configuring an email notification for the submit action of the booking form

  1. Go to the “Submit” Action in the Workflow settings.
  2. Click + Add Email under Send Emails.
  3. Use the Insert Field option in the email to:
    • Automatically configure the recipient to be the customer’s unique email address.
    • Greet the customer by the name they typed into the Name field.
    • Mention the customer’s selected appointment date and time in the email message.

Step 6: Test your new booking form

Testing ensures your booking form behaves correctly before customers use it. Before sharing your booking form with customers, open the Public Link and test it yourself by selecting different dates and testing different combinations. Be sure to:

  • Check that the Lookup field filters the timeslots as expected.
  • Book a test appointment and confirm the “Spot(s) left” count decreases for that timeslot.
  • Verify that fully booked timeslots no longer appear.
  • Check that confirmation emails send correctly with the right appointment details.

Smart Booking Forms In Action

Let’s look at how different businesses use booking forms to streamline scheduling across different industries and appointment types.

Classes and Workshops

A workshop with a capacity of 20 people per session displays remaining capacity next to each session (“15 spots left”) as sessions are booked. When a workshop fills, it automatically disappears from the dropdown, preventing overbooking.

Appointments with a specific provider

Patients select the type of care needed, then a provider in that specialty, and then times are filtered to show only that provider’s availability. Each provider has a limit of 1 patient per slot, preventing double-booking.

Room reservations

Members select a desired room, then see only that room’s available times. Cascade Filters allow filtering rooms by Location or equipment provided in the room. This ensures the room matches specific meeting requirements at the member’s preferred location.

Powerful Booking Form Customizations

These advanced features transform your basic booking form into a complete scheduling system that handles payments and rescheduling automatically. As your needs grow, you can expand this foundation with additional capabilities:

  • Self-service rescheduling or cancellation. Include a Workflow Link in the confirmation email so customers can update or cancel their booking on their own.
  • Collect payments for paid sessions. In the Lookup field settings, use Collect Payment and pull prices directly from your inventory form to charge for sessions when booking.
  • Sync with your team’s calendar. Set up an integration to automatically create calendar events the moment someone books, eliminating manual entry.

Start Booking Smarter Today

You’ve built a professional booking form that manages availability automatically. No more double-bookings, no more scheduling emails, no more manual updates. Your customers see real-time availability and book instantly, while you gain hours every week to focus on delivering excellent service.


FAQ