How to Automate Seasonal Hotel Rates with Gravity Forms Bookings

Build a hotel booking system using GP Bookings and set your seasonal rates once so they recur automatically forever.

  1. Step 1: Add New Service (Hotel Booking)
  2. Step 2: Add Resources (Rooms)
  3. Step 3: Set Pricing Rules
  4. Step 4: Set Availability Windows
  5. Step 5: Build Booking Form
  6. Test Booking!

Instead of babysitting your calendar, GP Bookings turns Gravity Forms into a booking system that runs itself—tracking room inventory, syncing calendars, handling pricing rules, and more.

Today, we’ll focus on setting seasonal pricing once so it automatically applies every year going forward.

Let’s set it up! 🪄

For a higher-level look at why GP Bookings is ideal for your site, check out our breakdown on how it solves common hotel booking challenges.

This article requires the Gravity Forms Bookings perk.

Buy Gravity Perks to get this perk plus 51 other premium Gravity Forms plugins!

View Plugin Buy Now

Step 1: Add New Service (Hotel Booking)

The first step is to add a new “Service” in GP Bookings. A Service acts as your rulebook. It defines what you’re offering and how guests can book it (by the hour, by the day, or by the night).

Since we’re setting up a hotel booking, we’ll make it work for overnight stays.

  1. Open your Spellbook › activate GP Bookings.
  2. In your WordPress dashboard, navigate to GP BookingsServices › click Add New Service.
  3. Name it Hotel Booking › set Block Size to Full Day.
  4. Enable both: Allow flexible booking durations and Treat as nights rather than days.
  5. Set Minimum stay to 1 night.
  6. Click Publish to save.
A new Service named ‘Hotel Booking’ is added in the Service settings, with various settings configured and enabled.

Step 2: Add Resources (Rooms)

Next, let’s add your rooms. In GP Bookings, each room is a “Resource”—the actual unit being booked (check out our docs to learn more about Resources).

To keep things organized, we’ll group them into a Resource Type called “Rooms,” then add the individual room numbers.

  1. Still in the Service Settings › go to Resources tab.
  2. Click Create Resource Type › name it Rooms › click Add.
  3. Click the + symbol to add individual rooms — Room 101, Room 102, and more.
  4. Check the boxes for all rooms you want bookable.
  5. Click Update to save.
Resources tab in the Service settings shows a Resource (Rooms) highlighted, with three resources listed below it: Rooms 101 to 103.

Pro-Tip

Offering different room types like Standard vs. Deluxe? Create separate Resource Types for each, then set different base rates for each type in your Pricing Rules.

Step 3: Set Pricing Rules

Let’s set booking rates that adjust themselves based on dates.

We’ll set up a “Base Rate” for regular nights and a “Holiday Surcharge” that kicks in automatically during peak season.

  1. Still in the Service Settings › go to the Pricing tab.

Base Rate

  1. Click Add Rule › name it Base Rate.
    • Action Type: Set Price.
    • Amount: $150.
    • Multiplier: Per Block (per night).
    • Click Add Rule to save.
A new pricing rule named 'Base Rate' sets the price at $150 per block.

Holiday Surcharge

  1. Click Add Rule › name it Holiday Surcharge.
  2. Click + Add Condition › choose Date Range.
    • Start Date: 12/20/2026.
    • End Date: 12/31/2026.
    • Check Recurring Yearly (set it once, works forever).
  3. Set Action Type to Add/Subtract.
    • Amount: $50.
    • Multiplier: Per Block (per night).
    • Click Add Rule to save.
A new pricing rule named 'Holiday Surcharge' is set from December 20 to 31, recurring yearly, with an action that adds/subtracts $50 per block.

Done! Your rooms now cost $150/night year-round, then automatically jump to $200/night every December 20–31.

Wizard’s Note

You can also use GP Conditional Logic Dates for seasonal pricing, which can work for simpler needs. However, it would also mean creating separate product fields for each price and swapping between them based on the selected date. Contrast this with GP Bookings: centralized pricing rules in the backend and the ability to stack multiple rules (like a holiday fee on top of a weekend rate) without adding extra fields to your form.

Step 4: Set Availability Windows

Time to open your calendar for bookings. We’ll add “Availability Windows”—these turn grayed-out dates into clickable, bookable slots.

  1. Still in the Service Settings › go to the Availability tab.
  2. Click Add Window › select Availability Window.
  3. Set your operating schedule:
    • Days of Week: All (available every day).
  4. Click Add Window.
  5. Click Update to save.
An Availability Window shows all days of the week selected.

Pro-Tip

Want to block off holidays or set specific hours (like check-in from 3-6 PM)? Use Unavailability Windows to mark when rooms can’t be booked. Learn how in the GP Bookings docs!

Step 5: Build Booking Form

Finally, let’s build the form your guests will use to book rooms.

We’ll add a “Booking” field that connects your service setup, room inventory, and pricing into one complete form.

  1. Create a new form or use this ready-made form (right-click and save).
  2. Under Advanced Fields › add a Booking field.
    • Inside it, add three sub-fields: Service, Resources, and Booking Time.
  3. Click the Service field.
    • Rename it to Hotel Booking.
    • Set Selection Mode to Preselected Service.
    • Set Service to Hotel Booking.
  4. Click the Resources field.
    • Rename it to Rooms.
    • Set Allocation Mode to Manual Selection (this lets guests pick their room).
  5. Click the Booking Time field.
    • Rename it to Booking Time.
  6. Go to Pricing Fields › add a Total field.
  7. Click Save Form.
A form editor displays a Hotel Booking form with the following fields: Booking, Booking Time, Rooms, Hotel Booking, and Total.

Pro-Tip

If you have multiple identical rooms (like three “Standard King” rooms), use Automatic Assignment with Capacity Spread to distribute bookings evenly across rooms.

Test Booking!

Preview your form and try these two booking dates:

  • October 26–29 (3 nights): Should total $450.
  • December 26–29 (3 nights): With your holiday surcharge, this should total $600.
A user selects October 26 to 29, and the total displays as $450. The user then switches the booking dates to December 26 to 29, and the new total displays as $600.

Ready to head into peak season? 🗓️✨

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.


This field is for validation purposes and should be left unchanged.
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.