Scheduling in Gravity Forms: A Wizard’s Guide

All you need to know to take appointments, bookings, and reservations in Gravity Forms — and which tools to use depending on how complex your scheduling needs are.

  1. But first. Why use Gravity Forms for scheduling?
  2. How bookings work in a nutshell
  3. Creating a complete booking system in Gravity Forms
    1. Setting up your first booking
    2. Managing your bookings
  4. What industries can GP Bookings handle?
  5. What if I’m looking for something simpler?
    1. Adding date limits to Gravity Forms Date fields
    2. Adding capacity/slots to Gravity Forms dates and choices
    3. Adding conditional pricing to Gravity Forms
  6. Taking it further
    1. Accepting payments and applying taxes
    2. Generating QR code tickets
    3. Displaying booking history
    4. Generating PDF invoices
    5. Connecting to WooCommerce
  7. Key Takeaways
  8. Frequently Asked Questions
    1. Can Gravity Forms handle scheduling on its own?
    2. What’s the difference between GP Inventory and GP Bookings for scheduling?
    3. How does GP Bookings compare to other WordPress booking plugins?
    4. Can Gravity Forms handle taxes or discounts for bookings?
    5. Can I connect Gravity Forms bookings to WooCommerce?

Scheduling needs are varied — just like the Gravity Forms ecosystem. 

In the bulk of this article, we’ll cover the main capabilities needed for scheduling, focusing on a handful of Gravity Perks (shortened as GP). Later on, we’ll share a few tips as to how to take your setup further.

Let’s get started. 🧙‍♂️

But first. Why use Gravity Forms for scheduling?

Gravity Forms is a form plugin with a ton of features — conditional logic, dynamic field population, and multi-page forms, to name a few. This means you’ll have all of these features available for your booking forms and any other form you create.

Plus:

  • Booking data lives in WordPress, not a third-party account
  • No iframe, redirect, or separate dashboard for your clients
  • Bookings are entries, so they flow into the same notifications, automations, and integrations already set up on your forms
  • A booking form in Gravity Forms can also collect intake data, trigger user registration, create posts, handle file uploads, and more
  • Gravity Forms is well supported, with a rich ecosystem of add-ons and integrations extending its capabilities

How bookings work in a nutshell

On its own, Gravity Forms can collect dates and times. If you want to do more, you’ll need at least one add-on.

GP Bookings, for example, turns Gravity Forms into a booking system with configurable availability, the option for bookable resources like rooms or staff, customer self-service, and a dashboard for managing bookings.

For extra simple operations, other perks can handle scheduling basics like blocking off dates without the additional setup.

Creating a complete booking system in Gravity Forms

GP Bookings gives you access to the necessary features to run most booking operations from WordPress. It requires some setup, but once it’s there, you can set it and forget it.

Setting up your first booking

Let’s say you’re running a salon and GP Bookings is freshly installed.You start by adding your services — aka your haircuts, coloring, special rooms — in GP Bookings itself. You can choose to set them up manually or use the setup wizard, but either will land you with your services neatly listed in the Services area.

Inside these services, you can add specific stylists as resources under the Resources tab.

Each resource is its own entity with its own settings for things like pricing and availability. They can also be assigned to multiple services at once.

What this means: You can mix and match service and resource settings to fit the specifics of your operation. 🙌

Here’s an overview of those settings:

  1. Booking Duration
    How long a booking of that service takes, with the option to make it flexible
  2. Padding Time
    How much time is needed before a booking is placed or between bookings
  3. Capacity
    How many of that booking can be taken at a time
  4. Pricing
    How the pricing is calculated based on booking conditions

Availability
When the given service or resource is available

Okay, that’s a lot of arrows. Let’s break these settings down with examples from your salon:

  1. Booking Duration (service specific)

    30min for haircuts,  2–6h for coloring.

  2. Padding Time
    Your salon only takes reservations up until 24h before appointment time. Stylists need 15 minutes after appointments for cleanup.

  3. Capacity

    You offer two private moisturizer rooms (capacity) that fit five people (occupancy) per block of time. Normal hair appointments only have capacity for one person at a time.

  4. Pricing
    Sam, your senior stylist, charges an additional 5% on top of the standard price. The moisturizer rooms historically have less demand in during October, so there’s a $10 spooky discount.

  5. Availability
    Even though the salon is open Mon–Sat, Sam only works Tuesdays and Thursdays from 1pm–7pm. The moisturizer rooms, on the other hand, follow the salon hours.

Services can be booked on their own. Resources are always booked with a service. Because of this, resources can have their own settings or follow the service’s settings instead.

With all this information in place, you can build a form where customers choose a service, a stylist, and pick from available time slots. Once a slot is booked, it’s shown as unavailable, and you can send confirmation emails, reminders, or reschedule notices using Gravity Forms notifications.

Managing your bookings

Bookings are stored as entries and can be managed from two places: the entry itself or the GP Bookings Dashboard, a customizable multi-view interface where bookings can be approved, rescheduled, or cancelled.

You can sync GP Bookings with your existing calendars to keep schedules up to date everywhere. GP Bookings creates calendar events when bookings are scheduled, and availability in GP Bookings is blocked based on all events from your calendar.

External calendar support overview:

Additionally, if you want your customers to be able to cancel or reschedule their bookings, each booking has its own Booking Management Page that can be sent to the customer at any time.

What industries can GP Bookings handle?

GP Bookings covers most scheduling use cases out of the box with its flexible service, resource, availability, and pricing systems. Both a freelance tutor with a few subject offerings and a tutor collective with over ten subjects would be accommodated.

Here are some examples of different scenarios:

What if I’m looking for something simpler?

If you’re looking for something closer to a simple form that limits a few dates and manages basic inventory, here’s what you can do.

Adding date limits to Gravity Forms Date fields

Limit Dates controls which dates are selectable in Gravity Forms datepickers. You can use it to block specific date ranges, limit date choices to weekdays or weekends, or link two date fields so a checkout date can’t precede the check-in date.

Example uses:

  • Rental forms with blocked unavailable periods
  • Booking forms restricted to business days
  • Date range selection for multi-night stays

If this is sounding like the right track, here are some tips on getting more from the Gravity Forms datepicker.

Caveat:

Limit Dates shapes which dates are selectable, but doesn’t enforce capacity. In other words, a date won’t be blocked because it’s “full.”

Adding capacity/slots to Gravity Forms dates and choices

GP Inventory adds inventory management to Gravity Forms. When a limit for a product, choice, or date is reached, that option is automatically removed — even between forms.

You also have an Inventory Dashboard in each form, which gives you a bird’s eye view of all inventories present there.

Example uses:

  • Classes where each slot has a set number of available spots
  • Rentable assets present in multiple forms
  • Per-day or per-hour capacity

Caveats:

GP Inventory works like a quantity gate. You define a quantity limit, it decrements as entries come in, and blocks that option when stock hits zero. Depending on your needs, this simplicity means you’d have to manually create every time slot as a form choice, with no way to automatically block scheduling conflicts.

Adding conditional pricing to Gravity Forms

Conditional Pricing creates flexible pricing levels for Product fields based on conditions in your form — quantity, user input, field values, and more. Conditional Logic Dates extends that to date and time selections, making date-based pricing rules possible.

Example uses:

  • Weekend surcharges
  • Seasonal pricing
  • Early bird pricing
  • Tiered quantity discounts
  • Age-based pricing
  • Member vs. non-member rates
  • Fields that only appear for certain booking windows

Caveats:

Conditional Pricing works like conditional logic for pricing, applying a single pricing level based on whichever condition is met first. While it covers a wide range of pricing scenarios, it can’t stack rules or compound conditions. For pricing that needs to build on itself across multiple conditions, GP Bookings handles it more cleanly.

Taking it further

A few more add-ons worth knowing about depending on what your operation needs.

Accepting payments and applying taxes

eCommerce Fields adds Tax, Subtotal, and Discount fields to any form. Useful when bookings involve upfront charges that need to be displayed clearly before payment, or when tax-compliant pricing is a requirement. Gravity Forms also includes a Coupons add-on with Elite and Non-profit licenses for discount codes clients can apply at the time of booking.

Generating QR code tickets

GP QR Code generates scannable QR codes from booking confirmation data — useful for event check-in, ticket validation, or any booking with a physical component.

Displaying booking history

Entry Blocks displays Gravity Forms entries on the frontend in a filterable, searchable table or gallery — useful for creating client portals or staff dashboards. With its frontend entry editing capabilities, it could also serve as an alternative to the Booking Management Page for customer self-service.

Generating PDF invoices

Gravity PDF generates PDF invoices or booking confirmations from form entries automatically on submission.

Connecting to WooCommerce

Gravity Shop Product Configurator embeds any Gravity Form inside a WooCommerce product page — connecting both ecosystems natively, including cart, checkout, and payment processing.

Key Takeaways

  • Gravity Forms is a full-featured form plugin that can also handle scheduling.
  • Natively, Gravity Forms handles date collection, time slots, and basic pricing, but doesn’t enforce availability or capacity without add-ons.
  • GP Bookings brings a full-featured native booking system to Gravity Forms, handling availability, resources, complex pricing rules, and client self-serve by itself.
  • Simpler needs can be covered with other perks like Limit Dates, GP Inventory, and Conditional Pricing. As complexity grows, GP Bookings offers the most solid foundation.
  • The Gravity Forms ecosystem can extend a booking setup further — taxes support, QR tickets, booking history, PDF invoices, WooCommerce connectivity, etc.

Frequently Asked Questions

Can Gravity Forms handle scheduling on its own?

On its own, Gravity Forms can handle the basics:

  • Use a Date field to show dates in a datepicker
  • Use Choice fields to present specific time slots
  • Use Product fields to set different prices based on selections
  • Use conditional logic to show or hide fields based on values

For anything beyond that, like enforcing availability, blocking dates, or limiting slots, you’ll need at least one add-on. 

What’s the difference between GP Inventory and GP Bookings for scheduling?

GP Inventory manages capacity against a fixed count — when a slot reaches its limit, it’s automatically removed, and that’s it.

GP Bookings, on the other hand, takes schedules and additional factors (like resources) into account. Its capacity settings are part of a broader availability system that accounts for existing bookings, buffer times, and more.

How does GP Bookings compare to other WordPress booking plugins?

From a Gravity Forms perspective, GP Bookings lives inside Gravity Forms. Bookings are entries, your form data and booking data are centralized from the start. Standalone booking plugins run their own systems with Gravity Forms as an optional layer.

From a general perspective, GP Bookings is extremely flexible in comparison to other plugins. Services, resources, availability, and pricing rules that stack on each other are independently configurable — i.e. the same system that handles a single-staff salon handles a multi-location spa.

For a more detailed analysis, see a full comparison of WordPress booking plugins.

Can Gravity Forms handle taxes or discounts for bookings?

GP Bookings includes pricing rules for date, time, duration, occupancy, and quantity-based adjustments. For tax fields, subtotals, and more structured order summaries, GP eCommerce Fields adds those directly to any Gravity Form. Gravity Forms also includes a native Coupons add-on for discount codes.

Can I connect Gravity Forms bookings to WooCommerce?

Yes. Gravity Shop Product Configurator lets you embed a Gravity Form inside a WooCommerce product page, connecting both ecosystems natively.

Comments

  1. Justas
    Justas June 3, 2025 at 6:17 am

    What would actually be useful is if the booking form had an inline date picker where the user could pick multiple individual dates when booking, etc, Monday and Tuesday, not just single days.

    We use your gravity forms for almost everything from trial registration to membership registration.

    And now we want to introduce booking where we offer a few weeks of service with limited spaces, but we want users to book/select multiple days from the given selection of available days.

    Reply
    1. Samuel Bassah
      Samuel Bassah Staff June 3, 2025 at 8:08 am

      Hi Justas,

      We have a soon-to-be released perk, GP Booking, which looks like a suitable solution for what you’re trying to do. The perk is currently only available to Pro users on request. If you have a Gravity Perks pro license, you can submit a ticket to request access to the perk.

      Best,

  2. Ben Horle
    Ben Horle May 2, 2025 at 8:38 am

    Can this be used to fill an “add to google callander” button with in the notification please?

    I.e customer books a ticket to a show, Notification contains button that gives the time, date and location to google calander for the event they chose?

    Reply
    1. J Yeager
      J Yeager Staff May 2, 2025 at 11:51 am

      Hey Ben, An “Add to Google Calendar” integration isn’t supported directly out of the box yet, but we would be happy to hear more about your potential use case for this feature via support!

  3. Kyle
    Kyle March 31, 2023 at 4:10 pm

    I’ve got a need to have a booking solution for a spa where each individual service has a specific duration.

    A massage may be 60 minutes as an example. A client might purchase a 60 minute massage and a 30 minute manicure. I need a solution where the customer now needs to see/find an available date and time of 90 minutes to book.

    At the moment they only have 1 practitioner, but in the future it may need the ability to have a per practitioner selector or a combined calendar.

    Just fishing for ideas on how to tackle this little challenge. Existing booking tools from Square etc don’t allow for this as far as I can tell.

    Reply
    1. David Smith
      David Smith Staff April 2, 2023 at 12:48 pm

      Hey Kyle, Inventory could handle most of this with its Scoped Inventory concept; however, doesn’t have a concept of an actual “schedule” so it wouldn’t be able to block off 1:00 – 2:30 if a 90 minute session was booked. This seems like a fatal flaw for your use case.

      I’d take a look at Simple Schedule Appointments which integrates with Gravity Forms (and Gravity Perks). The only thing I’m not sure if it can do is handle multiple resources (e.g. masseurs).

  4. Bjorn
    Bjorn March 2, 2023 at 10:00 am

    Hi, Can I use this tool for group-trainings as well? And limit the number of participants? There is a function Limit number of entries, but you only see the message when you submit.

    And how to setup reminder mails in function of the date.

    Reply
  5. Adam
    Adam October 5, 2022 at 11:15 pm

    Let’s say we use Gravity Forms Limit Dates to constrain which dates are available.

    When a date is selected, how can we feed that date back into Gravity Forms Limit Dates, so that it cannot be selected by somebody else?

    Longtime subscriber, love each and every one of your sexy perks.

    Reply
  6. Elizabeth
    Elizabeth May 27, 2022 at 3:12 pm

    Hey, on April 12, 2022 – Samuel said: “You could add a dropdown field with the time slot for the day as the choices and use our GP Inventory Perk to scope the Date field with the Time slot Dropdown field and apply limits on the Timeslot for each day. Please check out our GP Inventory Perk Documentation on Scoped Inventory for more information on this.”

    I tried doing this but I think I am missing step. I can get a date linked to a product to work but when I tried to add a timeslot – no joy.

    My setup is a Date field that has the GF Limit Date perk set up. A drop down field with timeslots that are set up with GF Limit and then my Product has the Inventory Type set up.

    I can do multiple dates with multiple sign ups but cannot do multiple dates with multiple timeslots with multiple signups. Possible?

    Reply
    1. Samuel Bassah
      Samuel Bassah Staff June 3, 2022 at 6:25 am

      Hi Elizabeth,

      We’ll have to take a look at your setup to assist you with what you’re doing. If you have an active Gravity Perks license, you can get in touch with us via our support form so we can look into this.

      Best,

  7. ayhan
    ayhan May 6, 2022 at 7:42 am

    Hello. Can I book a gravity forms appointment with a CPT named Event post type?

    I want to make an appointment for each event?

    Reply
  8. Patrick B
    Patrick B April 22, 2022 at 8:24 pm

    Is there an approach or workflow that would allow people to cancel their reservations or some other way to automate the removal or update of an entry that acts like a cancelation? I know this is pushing what any form software is meant to do.

    Reply
    1. Samuel Bassah
      Samuel Bassah Staff April 25, 2022 at 5:12 am

      Hi Patrick,

      That would depend on your setup. If your users will be logged in, then you can use our GP Entry Block Perk to display to the users, their booking on the frontend, where they can manage their booking/entry including deleting/canceling the booking.

      Best,

  9. PWIA Webmaster
    PWIA Webmaster April 12, 2022 at 12:56 am

    So this is great if you have unlimited space. But what if you only have 2 time slots per day. I don’t see anyway to see if a time is already picked for a specific date and don’t show it. Any ideas?

    Reply
    1. Dan Greene
      Dan Greene May 15, 2022 at 11:58 am

      If you aren’t using time slots, but let users enter start times and end times themselves, how to you set up the logic so times can’t overlap? So someone can’t reserve a pace for 2:00 pm to 3:00 pm and someone else can’t reserve the same space from 2:45 pm to 3:15 pm?

    1. Dario Space
      Dario Space March 21, 2022 at 7:52 am

      Hi Ivan,

      Thanks for the suggestion! The tutorial shown here uses Gravity Forms to create an Appointments and Bookings page that leverages WordPress integrations and the developer community.

      Cheers,

Leave a Reply

Your email address will not be published. Required fields are marked *

  • Trouble installing this snippet? See our troubleshooting tips.
  • Need to include code? Create a gist and link to it in your comment.
  • Reporting a bug? Provide a URL where this issue can be recreated.

By commenting, I understand that I may receive emails related to Gravity Wiz and can unsubscribe at any time.