Gravity Forms Bookings

Turn Gravity Forms into your WordPress booking platform. Schedule, manage, sync, and beyond.

What does it do?

This plugin allows you to create and manage flexible bookings using Gravity Forms. Whether a quick meeting, a reservation or appointment, or a weekend getaway, Gravity Forms Bookings adapts to your form’s scheduling requirements with spellbinding customizability.

Once bookings start rolling in, you’ll manage them from the GP Bookings dashboard: a powerful multi-calendar view that keeps everything in sync with your original form entries and connected to external services like Google Calendar.

Features

  • Turn Gravity Forms into a customizable booking app.
    Entries become bookings—set up your logic and then use Gravity Forms for scheduling.
  • Build scheduling flows your way.
    Manage multiple schedules, set flexible booking durations, add buffers between appointments, and more.
  • Integrated multi-view calendar dashboard.
    Stay on top of all schedules in one dynamic dashboard right inside WordPress.
  • Two-way calendar syncing.
    Keep GP Bookings and your external calendars in sync—both ways.
  • Self-serve appointment management.
    Allow your customers to reschedule or cancel bookings on their own, on a deadline of your choosing.
  • Automatic event-based notifications.
    Send confirmation emails, appointment reminders, and cancellation notices—automated, of course.
  • Automatic updates.
    Get updates and the latest features right in your WordPress dashboard.
  • Legendary support.
    We’re here to help! And we mean it.

How do I enable this functionality?

After installing and activating GP Bookings, a new GP Bookings menu item will appear on the WordPress sidebar. When you first access it, you’ll be presented with a wizard that will guide you through the initial setup process.

To help illustrate how all pieces of GP Bookings come together, you’ll have multiple templates to choose from. We recommend choosing whichever one is the most similar to your use case in concept—it will make exploration easier.

You may also choose to skip the wizard entirely and create your first service from scratch directly.

Feature Details

GP Bookings has a lot to unpack, so here is a logical flow overview to get you up to speed with its main elements.

GP Bookings allows you to:

  • Create bookings from Gravity Forms entries
  • Manage those bookings in WordPress from a powerful calendar-based dashboard
  • Sync schedules to and from external calendars (e.g. Google/Apple Calendar)

Bookings are composed of:

  • A service: what is being booked.
  • One or more resources: who or what is providing the service, grouped by resource type. (Optional)
  • Availability: when the service and/or resource is available, unavailable, or booked.

These elements are highly customizable to adapt to your use case. You may create as many services and resources as you like, and resources can be shared between services.

Example:

You run a modeling agency where photographers can be booked for both makeup and photoshoots.

  • Services: Makeup and Photoshoot
  • Resource Type: Photographers
  • Resources: Dave, Jane, Roger

After creating services / resources and setting up their availability, you can add Booking fields to your forms and start scheduling bookings from new Gravity Forms submissions.

Those bookings are then reflected in the GP Bookings Dashboard, a powerful calendar and agenda manager that allows you to approve, cancel, reschedule, complete, and view entry details, all from one place.

Lastly, in the GP Bookings Settings, you can set up automatic booking behaviors (e.g. mark a booking as Confirmed once payment is processed) and a Booking Management Page to allow users to reschedule/cancel bookings themselves.

Services

Services are the core of what you’re providing, be it haircuts, restaurant service, cabin rentals, or yoga classes. Setting up a service is necessary for creating booking slots.

Service Setup

Here’s a quick overview of a full service setup:

Navigate to GP Bookings › Services on the left sidebar.
Click on Add New Service.
Give your service a name.
Configure the General and Management Service Settings. Here you can select which Resources apply, general Availability of the service, and sync external calendar events to GP Bookings.
Use Customization (to the right) to set a calendar color (reflected in the dashboard). Optionally, you can copy the Calendar Feed URL or click on one of the calendar buttons to sync bookings to external calendars.
Hit Publish!

Service Settings

The Service Settings will determine how individual bookings for the service will behave. This section will go over General and Management settings, and how to select Resources.

General

The general settings of a service affect the behavior all bookings associated with that service.

Duration Settings

Choose the Block Size, aka amount of time a booking is going to take from minutes to a full day. You can choose from common durations or set up a custom duration (in minutes or hours).

Check Allow flexible booking durations based on block size to let users book between a minimum and a maximum amount of time in sections based on block size.

If your block size is Full Day:

  • Flexible booking durations must be enabled for multi-day reservations.
  • You’ll have an additional option called Treat as nights rather than days (e.g. hotels, B&Bs).

Capacity

Input how many bookings can exist within the same booking block. Checking Unlimited lets blocks be booked indefinitely.

Buffer Settings

You can set buffer times to prevent back-to-back scheduling. This setting creates unavailable periods before and/or after booked blocks. Buffer times must be in 15-minute increments.

Management

These settings affect the Booking Management Page for any booking done under a service.

You can choose to use the global settings, enable, or disable the ability for users to reschedule and/or cancel their bookings. Furthermore, you can set a deadline up to when users are able to reschedule or cancel (e.g. 48 hours before booking time).

Resources

Once you have created resources, select individual resources or entire resource types to assign to this service.

Resources

Depending on the type of service you provide, resources represent the who/what that the service is provided through.

Setting up resources is not necessary for setting up bookings, but if what you’re providing is multifaceted, resources will give you the most flexibility.

Individual resources are grouped in resource types.

Examples:

  • Resource Type: Hairdressers → Resources: Dave, Sarah, Roger
  • Resource Type: Cabins → Resources: Mountain Cabin, Forest Cabin, Lake View Cabin
  • Resource Type: Yoga Studios → Resources: Zen Studio, Main Studio

Resource types and individual resources can be assigned to multiple services at the same time.

Resource Creation

Service Settings Route
When inside of a service, navigate to the Resources tab.
Click on Create Resource Type.
Give your resource type a name, then click on Add.
Click on the + symbol to add a new resource.
Give your resource a name, then click on Add.
GP Bookings Settings Route
Navigate to GP Bookings › Settings › Resource Types.
Click on Add New Resource Type.
Give your resource a name, then hit enter or click on Add.
Once you’re done, click on Save Changes.
Under GP Bookings in the WordPress sidebar menu, navigate to your newly created resource type.
Click on Add New [Resource Type Name].

Resource Setup

Regardless of where the resource was created, the rest of the setup is the same. To access this setup:

  • From Resource Type: Click on the resource name.
  • From Service Settings: Click on the edit symbol that appears when hovering over the resource name.
Configure the General Resource Settings.
Under Availability, add availability and unavailability windows for the resource. These can be previewed in the Availability Preview below.
(Optional) Under Calendar Sync, import an external calendar as unavailability windows.
Use Customization (to the right) to set a calendar color (reflected in the dashboard).
(Optional) Copy the Calendar Feed URL or click on one of the calendar buttons to sync bookings to external calendars.

Resource Types

Resource types are groups for housing resources. Once created, you can find resource types in three places:

  1. Submenus under GP Bookings in the WordPress sidebar.
  2. Inside of services under the Resources tab.
  3. In the Resource Types tab under GP Bookings › Services.

To delete or edit a resource type, you must access it under the Resource Types tab. You can navigate directly or click on the resource type name in a service’s Resources tab.

Resource Settings

Each resource contains the following settings:

General

Buffer Settings

You may choose to include unavailable periods before and after bookings. This ensures preparation time between bookings and prevents back-to-back scheduling. Buffer times must be in 15-minute increments.

Capacity

Input how many bookings can exist within the same booking block. Checking Unlimited lets blocks be booked indefinitely.

Availability

Go to Availability.

Calendar Sync

Go to Calendar Sync.

Services

All services that can use this resource are listed and linked to here. This setting also notes if resource was assigned to the service directly or via resource type.

Customization

Go to Calendar Sync & Customization.

Availability

In GP Bookings, availability works like an inventory of available blocks (of time slots or days) for services and resources. You’ll be able to see availability in the GP Bookings Dashboard, as well as inside of each service and resource in the Availability Preview.

If you are using resources, you might not need to set up Availability Windows for the corresponding service and vice-versa—do what makes sense for your use case.

Examples:

  1. Availability set on the Service only

    Use Case: You offer a special potion-infused massage service that is only available Mondays, Wednesdays, and Fridays. You don’t care which massage table it happens on—just when.

    → Set availability on the service.

  2. Availability set on the Resource only

    Use Case: Your spa has three magical chairs, each with its own enchanted schedule (e.g. one recharges on Tuesdays). The services can be booked any day, but only when a chair is available.

    → Set availability on each resource, not the service.

  3. Availability set on both

    Use Case: You only offer a crystal glow facial during evening hours, but one of your crystal rooms is closed for cleansing on Thursdays.

    → Set limited hours on the service and blackout times on the resource.

Availability Window

Availability Windows are located under Service Settings and Resource Settings. They are used to determine when that particular service or resource is available through Availability Windows, or unavailable through Unavailability Windows.

To add a new window, click on Add Window under Availability.

Availability Window: For adding when a service / resource is available. (e.g. shifts, opening hours)

Click on Add Window to complete the setup for that window. New availability windows are illustrated in green in the Availability Preview below.

Unavailability Window: For blocking when a service / resource is not available. (e.g. lunch breaks, holidays, maintenance)

Click on Add Window to complete the setup for that window. New unavailability windows are illustrated in red in the Availability Preview below.

Availability Windows Settings

Days of the Week: Select which days of the week the window applies to. If no day of the week is selected, but a date range is provided, the window will apply to all days within that range.

Date Range (Optional): Set a specific period of days for the window.

Time Range (Optional): Set specific hours for the window. Leave blank to affect entire days.

Notes (Optional): Write any note about the window. This note will show up in different calendar views as a helpful reminder about why this time is available/unavailable.

Availability Preview

Once Availability Windows are set up, you’ll see them illustrated in the Availability Preview below.

  • Green: Available window.
  • Blue: Booked time slots.
  • Red: Blocked windows.
  • Orange: Buffer time.
  • Grey: Outside availability.

You can move between weeks using the arrows. For resources, you can choose which service’s bookings to preview.

If a service’s block size is Full Day, you’ll see your Availability illustrated in a monthly view.

  • Green: Available day.
  • Blue: Booked day.
  • Red: Blocked day.
  • Grey: Outside availability.

You can move between months using the arrows. For resources, you can choose which service’s bookings to preview.

Calendar Sync & Customization

GP Bookings has a built-in calendar dashboard that works with inbound and outbound ICS feeds for calendar syncing. Each service and resource can be individually synced.

ICS (iCalendar) feeds are one-way and read-only. Events synced into GP Bookings from external calendars must be edited in the original calendar, and bookings synced into external calendars from GP Bookings must be edited within GP Bookings.

Calendar Color

Click on the circular color selector on the right-hand side to set a color for the service or resource you are editing. You can use the color picker or enter specific Hex, HSL, or RGB values.

Export Bookings to External Calendars

GP Bookings ICS feeds for any service or resource are found under Customization, on the right-hand side.

If you’re using Google Calendar, Apple Calendar, or Outlook, their respective buttons will open their calendars and prompt you to add the GP Bookings calendar. To add ICS feeds to other calendar apps, or to add it manually to either of those three, you can copy the Calendar Feed URL directly

Technical Details

  • By default, GP Bookings feeds pull bookings up to 6 months in the future. This range is configurable via filter.
  • Feeds resync every hour. This is also configurable via filter.
  • To regenerate tokens for access control or debugging, click on the Regenerate Token button. Once a new token is generated, the old token is deactivated.

Import External Calendars to GP Bookings

External calendar apps can be imported to services and resources alike under the Calendar Sync tab located in their respective settings.

Events from the imported calendar will be added as unavailability windows to prevent booking overlaps during those times.

Technical Details:

Each calendar app will sync GP Bookings feeds at their own discretion. Here’s a quick comparison between three of the most popular ones to give you an idea of range:

Calendar AppRefresh Frequency
Google CalendarTypically once per day (up to 12 hours for iCal/ICS feeds)
Apple CalendarCan be configured to refresh as frequently as every 5–15 minutes for subscribed calendars
Outlook.comUses daily sync by default; you can manually sync or configure intervals with send/receive settings

GP Booking Settings

Under GP Bookings › Settings, you can find the following settings:

This section will go over the Booking tab. The Resource Types tab is covered under Resources.

Booking Settings

Default Booking Status: Choose the default status for new bookings between Pending and Confirmed.

Confirm Booking on Payment Status: Set bookings to be automatically confirmed when payment reaches specific statuses (e.g. Paid).

Cancel Booking on Payment Status: Set bookings to be automatically canceled if payment reaches specific statuses (e.g. Voided).

Booking Management

You can create a Booking Management Page to allow users to reschedule or cancel a booking on their own. The following settings apply globally, but they can be adjusted on a per-service basis under Service Settings.

Booking Management Page: Select which page to turn into the Booking Management Page, where users can manage their bookings from.

Allow Rescheduling / Cancellation: Enable or disable the ability for users to reschedule / cancel their bookings through the Booking Management Page.

Reschedule / Cancel Deadline: Allow customers to reschedule / cancel their bookings until a specified deadline (in hours).

You can find a booking’s individual management URL under its booking details. Here’s an example of what that page looks like in action:

Form Fields

GP Bookings comes equipped with the three-in-one Booking field for setting up booking scheduling.

Booking Field

The Booking field acts as a gateway for you to insert fields for the three components of a booking: Service, Resource, and Booking Time. When you use these fields, an entry becomes a booking.

Booking Field Settings

Price: Enter the base price for a service.

Service Field

Allows you to select a service.

Resource Field

Allows you to include resources to be booked.

Resource Field Settings

Service Field: Map to a Service field. This will determine which resources can be chosen for this field.

Resource Type: Choose which resource types can be booked from this field. You can choose All Types, which will include all resources associated to the service from the Service field, or a specific resource type.

Allocation Mode: Select the criteria for determining which resource is going to be assigned for a particular booking:

  • Manual Selection: Creates a drop down that allows users to select a resource.
  • Fixed Resource: Allows you to set a specific resource to always be used for that Service field. When selected, a “Resource” drop down appears below.
  • Automatic Assignment: Automatically assigns a resource based on the chosen strategy. When selected, a “Strategy” drop down appears below where you can choose which of the three strategies you wish to use.
Round RobinCapacity SpreadCapacity Pack
Allocates resources by distributing bookings evenly across all resources, prioritizing resources that were booked least recently.

Purpose: Ensures even wear and usage across all resources.
Prioritizes resources with fewer existing bookings in the requested time period.

Purpose: Distributes bookings to maximize availability and minimize overlap.
Focuses on filling up the capacity for each resource before moving over to the next.

Purpose: Consolidates bookings to minimize resource usage and leave other resources free.

If you use automatic assignment, we recommend setting the field to Hidden.

Booking Time

The Booking Time field allows users to select:

  • When they want to book a service.

Booking Time Field Settings

Service Field: Map to the correspondent service field.

Time Slot Mode:

  • Aligned with block size: Time slots will follow the block size set up in the Service Settings.
    E.g., If the block size is 30 minutes, time slots will be 10AM-10:30AM, 10:30AM-11AM, etc.
  • Flexible intervals: Time slots will follow your chosen set interval.
    E.g., If you choose an interval of 10 minutes, time slots will be 10-10:30, 10:10-10:40, 10:20-10:50, etc.

Notifications

GP Bookings adds five notification events:

  • Booking Created
  • Booking Confirmed
  • Booking Cancelled
  • Booking Upcoming
  • Booking Rescheduled

Most of them trigger when the event happens. Booking Upcoming can be scheduled for minutes or even months before a booking.

Bookings

Gravity Forms entries that were used to schedule a service/resource with GP Bookings are considered bookings.

Inside of a booking’s entry details, there is a Booking Information metabox listing and linking to the services and resources that were booked through that entry.

There is also a Booking Notifications metabox that lists Booking Upcoming notifications and allows you to push reminders from it.

Dashboard

The GP Bookings Dashboard is your main hub for managing bookings. It has four tabs: Overview, Calendar, Resource Calendar, and Agenda.

Booking Details

Within all of the tabs, any time you see a booking, you can click on it to see the details.

Date & Time: Date and time the booking is scheduled for.

Status: Interactive drop down for the booking status. Statuses are Pending, Confirmed, Completed, and Canceled.

View Entry: Button that takes you to the entry associated with the booking.

Management URL: Link users can utilize to manage their bookings. (Jump to booking management configuration.)

History: History of all actions taken on the booking (e.g. reschedules).

Entry Details: Overview of the entry.

Overview Tab

The Overview tab shows a summary of current and soonest upcoming bookings. You can find a number readout of Today’s Bookings, This Week’s Bookings, Pending Bookings, and Confirmed Bookings.

Upcoming Bookings

The Upcoming Bookings section shows up to five upcoming bookings. It displays the scheduled date and time, which service was booked, the customer who booked it (pulled from Name fields), the status of the booking, and quick actions based on that status.

Agenda

The Overview’s agenda is a weekly readout of all scheduled bookings for a given week. You can use controls on the top left to navigate between weeks.

Calendar Tab

The Calendar tab is a flexible calendar that displays all bookings. You can set it to Day, Week, or Month views, and use controls on the top left to navigate between time periods. Bookings will appear in the color set in Customization.

If you need to reschedule, you can drag and drop bookings to the desired block. While dragging a booking, the calendar will display the available, unavailable, and outside of availability windows.

Resource Calendar Tab

The Resource Calendar is a daily calendar that allows for quick scheduling checks and adjustments. Bookings will appear in the color set in the resource’s customization.

If you need to reschedule a booking, you can drag and drop it within its resource. While dragging a booking in the Resource Calendar, it will show the available, unavailable, and outside of availability windows for the resource.

Agenda Tab

The Agenda gives a lean glance on the all bookings for a given week.

Troubleshooting Issues

Coming soon from our legendary support team.

FAQ

What do you want to know? Our support wizards are ready to answer your questions.

Known Limitations

  • Service field: Only supports a single admin-selected service. In the future, we will add support for both user-selected services as well as the ability to select multiple services.

Translations

You can use the free Loco Translate plugin to create translations for any of our Perks. If you’ve never used Loco translate before, here’s a tutorial written for beginners.

Hooks

No posts found.

Gravity Forms has hundreds of hooks. Check out our Gravity Forms Hook Reference for the most thorough guide to Gravity Forms’ many actions and filters.

No related resources found.

Grab a bundle of free Gravity Forms plugins

Enter your email and receive our most popular free plugins and snippets, plus access to hundreds of others.

This field is for validation purposes and should be left unchanged.