Help Center

Documentation Menu

How do I add a booking calendar to a WordPress website?

Adding a booking calendar to WordPress with WP Booking System takes four main steps:

  1. Install WP Booking System.
  2. Create a calendar and configure its availability.
  3. Create a booking form.
  4. Embed the calendar and form on a page.

After that, submit a test booking to make sure availability, emails and payments behave as expected.

Install WP Booking System

The installation method depends on which version of WP Booking System you use.

Install the free version

In your WordPress dashboard, go to:

Plugins → Add New Plugin

Search for:

WP Booking System

Install and activate the plugin.

After activation, a new:

WP Booking System

menu appears in the WordPress dashboard.

Install the Premium version

If you purchased WP Booking System, log in to your WP Booking System account and download the latest plugin .zip file.

In WordPress, go to:

Plugins → Add New Plugin → Upload Plugin

Select the downloaded .zip file and click:

Install Now

Then click:

Activate Plugin

If the Free version is already installed, deactivate it before activating the Premium version.

Register your Premium installation

After installing the Premium version, register the website using your license key.

Registration gives the website access to:

  • automatic plugin updates;
  • included add-ons;
  • license-related functionality.

Create your first calendar

Go to:

WP Booking System → Calendars

and click:

Add New Calendar

Enter a name that clearly identifies what customers are booking.

For example:

  • Apartment A;
  • Holiday Villa;
  • Double Room;
  • Boat Rental.

Each independently bookable resource should normally have its own calendar.

If you have several interchangeable units, the Inventory add-on may be more appropriate than creating a separate calendar for each one.

Set the calendar’s default price

If pricing is enabled, the Add Calendar screen also includes:

Default Price

For example:

Default Price → €120

This becomes the standard price applied to dates that do not have their own custom price.

You can change individual dates later for:

  • weekends;
  • high season;
  • holidays;
  • special events.

If you do not use pricing, you can ignore this setting.

Configure calendar availability

After creating the calendar, WP Booking System opens the Edit Calendar page.

This is where you manage the calendar’s dates and availability.

Each date can be assigned a Legend Item.

For example:

  • Available;
  • Booked;
  • Maintenance;
  • Owner Stay.

The legend determines both how the date appears and whether it can be booked.

Customize the calendar legend

Open the calendar’s legend settings if you want to rename or customize the availability states.

A simple setup might use:

Available

Used for dates customers can book.

Booked

Used for dates that are unavailable because of a reservation.

You can create additional legend items if you need to distinguish between different types of unavailable dates.

For example:

  • Maintenance;
  • Closed;
  • Owner Stay.

Edit individual dates

From the Edit Calendar page, click a date to change information such as:

  • availability;
  • price;
  • description;
  • tooltip;
  • inventory, if enabled.

This is useful for one-off changes.

For example:

December 31 → Booked

or:

December 31 → €250

Update several dates at once

Use the Bulk Editor when you need to update a larger date range.

For example:

July 1 – August 31 → Available

or:

July 1 – August 31 → €180

The Bulk Editor can also target specific weekdays within a selected period.

This is useful for:

  • seasonal pricing;
  • weekend pricing;
  • maintenance periods;
  • seasonal opening dates.

Create a booking form

Once the calendar is ready, go to:

WP Booking System → Forms

and click:

Add New Form

Give the form a clear name.

For example:

Accommodation Booking Form

After creating it, WP Booking System opens the Form Builder.

Add the customer fields you need

The Form Builder contains the fields that customers complete when making a booking.

Basic fields include:

  • Text Field;
  • Email Field;
  • Phone Field;
  • Textarea Field;
  • Dropdown Field;
  • Checkbox Field.

A simple accommodation booking form might contain:

Name

Use a Text Field.

Email

Use an Email Field.

The Email Field is particularly important if you want to send automatic customer notifications.

Phone

Use a Phone Field if you need a contact number.

Number of Guests

Use a Dropdown, Number or other appropriate field depending on your setup.

Message

Use a Textarea Field for special requests or additional information.

Keep the form focused on information you actually need to process the booking.

Configure email notifications

Open the form’s:

Email Notifications

tab.

New forms include an Admin Notification that you can configure to notify yourself when a booking is submitted.

You can also create a customer notification.

For example:

When to Send → When the booking is created

Send To → Dynamic Email

and choose the Email field from your booking form.

Your customer could then receive:

“Thank you. We have received your booking request.”

If bookings require manual approval, avoid calling the booking “confirmed” in this first email.

You can send a separate confirmation when the booking is accepted.

Enable pricing if required

If you want WP Booking System to calculate a booking price, configure pricing before publishing your booking page.

Pricing can include:

  • calendar prices;
  • seasonal rates;
  • optional extras;
  • mandatory fees;
  • taxes;
  • discounts;
  • security deposits.

You can also add a Total Field to the booking form so customers can see how the booking total was calculated.

If your website only collects booking requests without calculating prices, this step is optional.

Configure payment methods if required

If customers should pay through the booking form, enable at least one payment method.

WP Booking System includes offline methods such as:

  • Payment on Arrival;
  • Bank Transfer.

Additional integrations can provide online payments through services such as:

  • Stripe;
  • PayPal;
  • Square;
  • Mollie;
  • GoPay;
  • Authorize.Net;
  • Redsys;
  • WooCommerce Checkout.

After enabling your payment methods, add a:

Payment Method Field

to the booking form.

This field is important because WP Booking System creates the payment record and saves the calculated booking pricing when the Payment Method Field is present.

If you do not collect or track payments through WP Booking System, you do not need to add it.

Create the booking page

Go to:

Pages → Add New Page

Create a page where visitors will make their booking.

For example:

Book Now

or create a dedicated booking section directly on the individual property page.

A rental website with several properties will often have a separate page for each property, with the appropriate WP Booking System calendar embedded on that page.

Add the calendar with Gutenberg

In the WordPress block editor, add the WP Booking System:

Single Calendar

block.

Select:

  • your Calendar;
  • your Form.

Then configure the available display and booking options.

Publish or update the page.

Add the calendar with Elementor

Edit the page with Elementor.

Search for:

WP Booking System

and add the:

Single Calendar

widget.

Select the appropriate Calendar and Form.

Configure the embed options and update the page.

Use another supported page builder

WP Booking System also integrates with popular page builders including:

  • Divi;
  • Beaver Builder;
  • Avada Builder;
  • Bricks Builder;
  • WPBakery;
  • Visual Composer.

Look for the WP Booking System Single Calendar element in your page builder.

If your editor does not have a dedicated WP Booking System integration, use the shortcode instead.

Add the calendar with a shortcode

The basic shortcode is:

WP Booking System: Scripts and Styles are not enqueued on this page. Click here to find out how to fix this.

The:

id

identifies the Calendar.

The:

form_id

identifies the Form.

For example:

WP Booking System: Scripts and Styles are not enqueued on this page. Click here to find out how to fix this.

displays Calendar 4 with Form 2.

You can paste the shortcode into a WordPress Shortcode block or the shortcode element provided by your page builder.

Show availability without accepting bookings

The booking form is optional.

If you want to display only availability, embed the calendar without a Form.

For example:

WP Booking System: Scripts and Styles are not enqueued on this page. Click here to find out how to fix this.

Visitors will see the calendar but will not be able to submit a booking.

This is useful if you accept bookings through:

  • phone;
  • email;
  • Airbnb or another platform;
  • another booking process.

Choose the correct date-selection style

When embedding the calendar, configure how customers select dates.

WP Booking System supports:

  • Single Date;
  • Date Range.

It also supports:

  • Normal selection;
  • Split selection.

For accommodation, Split selection is generally the appropriate choice because the first and last selected dates represent check-in and check-out days.

When pricing is enabled:

  • Normal selection calculates days;
  • Split selection calculates nights.

Automatically block dates after booking

One of the most important embed settings is:

Automatically Block Dates

Set it to:

Yes

if newly booked dates should become unavailable immediately after the booking is submitted.

This helps prevent double bookings.

If you use the shortcode directly:

auto_pending="yes"

For example:

WP Booking System: Scripts and Styles are not enqueued on this page. Click here to find out how to fix this.

The booking can still remain Pending for your review even though its dates have already been blocked.

Booking status and availability are separate.

Configure simple booking restrictions

The standard calendar embed settings can also control:

  • Minimum Days;
  • Maximum Days;
  • Booking Start Day;
  • Booking End Day.

For example, you could require:

  • minimum stay of 3 nights;
  • maximum stay of 14 nights;
  • Saturday check-in;
  • Saturday check-out.

If you need more advanced rules, such as seasonal restrictions or different minimum stays depending on arrival day, use the Booking Restrictions add-on.

Publish the page

Once the calendar and form are configured, publish or update the page.

Open the actual front-end page rather than relying only on the page-builder preview.

Check that:

  • the calendar displays correctly;
  • availability is understandable;
  • the booking form appears;
  • the page works on desktop and mobile.

Submit a complete test booking

Do not consider the setup finished until you have tested the complete booking process.

Open the booking page as a visitor and select a valid date or date range.

Complete the booking form and submit it.

Then check the WordPress dashboard.

Check that the booking was created

Go to:

WP Booking System → Calendars

and open the calendar used for the test.

The new booking should appear in its booking manager.

By default, new bookings generally appear in:

Pending

unless you configured another Default Booking Status.

Check availability after the test booking

Return to the booking page and check the dates you selected.

If:

Automatically Block Dates → Yes

the dates should now be unavailable.

The booking can still be Pending.

This is the expected behaviour.

Check the notification emails

Verify that:

  • the administrator notification was received;
  • the customer notification was received.

If the emails do not arrive, check the booking’s Email Logs if email logging is enabled.

Reliable WordPress email delivery often benefits from an SMTP or transactional email service.

Check the payment

If online payments are enabled, make a test booking using the gateway’s sandbox or test mode where available.

Open the booking’s:

Payment Details

and confirm:

  • booking total;
  • payment method;
  • payment status;
  • transaction information.

Also test failed or cancelled payments so you understand how your booking workflow behaves when a customer does not complete checkout.

Check the booking confirmation message

After the form is submitted, WP Booking System displays the confirmation configured for that form.

Make sure the wording matches your actual booking process.

If bookings require manual approval, use wording such as:

“Your booking request has been received.”

If bookings are confirmed immediately, you can use:

“Your booking has been confirmed.”

Avoid telling customers a Pending booking is confirmed.

Add more calendars for other resources

If you manage several properties, rooms or rental resources, repeat the process by creating additional calendars.

For example:

  • Apartment A → Calendar 1
  • Apartment B → Calendar 2
  • Villa → Calendar 3

You can reuse the same Form if all resources require the same customer information.

Each calendar keeps its own availability and bookings.

Use Inventory for identical units

If several resources are identical and interchangeable, consider using the Inventory add-on rather than creating one calendar per physical unit.

For example:

5 identical double rooms

can be represented by one calendar with:

Inventory → 5

Each booking reduces the available inventory.

Use separate calendars when customers choose a specific property or unit.

Use Inventory when they simply book from a shared quantity.

Synchronize with external booking platforms

If the same property is also listed on platforms such as Airbnb or Booking.com, configure iCalendar Import/Export for that calendar.

Import the platform’s availability into WP Booking System and export your WP Booking System calendar back to the external platform.

This helps keep unavailable dates synchronized across booking channels.

Remember that iCalendar synchronization is periodic rather than instantaneous.

Common setup problems

The calendar appears but there is no booking form

Make sure you attached a Form to the calendar.

With a shortcode, check that it includes:

form_id="..."

For example:

WP Booking System: Scripts and Styles are not enqueued on this page. Click here to find out how to fix this.

Without a Form, the calendar intentionally displays availability only.

Bookings are created but dates remain available

Check:

Automatically Block Dates

and make sure it is set to:

Yes

With a shortcode:

auto_pending="yes"

If Inventory is enabled, the date remains available until inventory reaches zero.

The wrong property’s bookings are appearing

Check the Calendar selected on the page.

Each resource should use the calendar that belongs to it.

This is particularly important when duplicating pages or copying shortcodes.

Payment information is missing

If pricing is calculated but no payment information is saved, check that the form contains a:

Payment Method Field

Customers are not receiving emails

Check:

  • the customer Email field;
  • the Email Notification recipient;
  • whether the notification is enabled;
  • Email Logs;
  • your WordPress email delivery configuration.

If WP Booking System logs the email but it does not reach the inbox, investigate your server or SMTP configuration.

A simple first booking setup

For a basic holiday rental, you could start with:

Calendar

Apartment A

Default availability → Available

Default Price → €120

Form

  • Name
  • Email
  • Phone
  • Number of Guests
  • Message

Embed settings

Selection Type → Date Range

Selection Style → Split

Automatically Block Dates → Yes

Form → Apartment Booking Form

Notifications

Admin → When booking is created

Customer → When booking is created

Page

Apartment A

Embed the Single Calendar together with the booking form.

This is enough to begin receiving booking requests.

You can add payments, seasonal pricing, restrictions, iCalendar synchronization and other advanced features afterwards.

What should I configure next?

Once your basic booking workflow works correctly, consider whether you need:

  • online payments;
  • Part Payments;
  • security deposits;
  • seasonal pricing;
  • Booking Restrictions;
  • iCalendar synchronization;
  • reminder emails;
  • Inventory;
  • Booking Manager;
  • Search Widget.

Configure additional features only after the basic calendar → form → booking workflow has been tested successfully.

Summary

The basic WP Booking System setup is:

  1. Install and activate WP Booking System.
  2. Create a calendar.
  3. Configure its availability.
  4. Create a booking form.
  5. Configure notifications and payments if required.
  6. Embed the calendar and form on a WordPress page.
  7. Enable Automatically Block Dates if booked dates should become unavailable.
  8. Submit a complete test booking.

Once this basic workflow works, you can add advanced functionality such as pricing, payment gateways, Booking Restrictions, Inventory and external calendar synchronization.

Was this article helpful?

Yes No

We're sorry to see this article wasn't as helpful as we hoped it would be. Please let us know what you were looking for so that we can improve this documentation page.

Full CTA BG
Is WP Booking System a good fit for you?

Tell us about your business activity & plugin requirements and we'll let you know if WP Booking System is right for you.

Have a support question? Please use this form instead.