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:
- Install WP Booking System.
- Create a calendar and configure its availability.
- Create a booking form.
- 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.
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:
The:
id
identifies the Calendar.
The:
form_id
identifies the Form.
For example:
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:
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:
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:
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
- 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:
- Install and activate WP Booking System.
- Create a calendar.
- Configure its availability.
- Create a booking form.
- Configure notifications and payments if required.
- Embed the calendar and form on a WordPress page.
- Enable Automatically Block Dates if booked dates should become unavailable.
- 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.