Help Center

Documentation Menu

How do I prevent double bookings in WordPress?

You can prevent double bookings in WP Booking System by automatically blocking dates as soon as a booking is submitted.

When adding your calendar and booking form to a page, enable Automatically Block Dates. The selected dates will then be marked as unavailable immediately after the booking is created, preventing another customer from booking the same dates.

If you also accept bookings through Airbnb, Booking.com, VRBO or other platforms, use the built-in iCalendar Import/Export functionality to keep availability synchronized between platforms.

Automatically block dates when a booking is submitted

When embedding a calendar on your website, WP Booking System includes an option called Automatically Block Dates.

Set this option to Yes.

After a customer submits a booking, the selected dates are automatically changed to an unavailable legend item so they can no longer be selected by another customer.

If you are using a shortcode, the equivalent option is:

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.

This is the recommended setting when you want to prevent two customers from submitting bookings for the same dates.

Pending bookings can still block dates

Automatically Block Dates does not automatically accept the booking.

By default, a newly submitted booking still appears in the Pending tab, even if its dates have already been blocked.

This allows you to:

  • immediately reserve the dates;
  • review the customer’s information;
  • verify the payment, if applicable;
  • accept or delete the booking afterwards.

Booking status and calendar availability are separate.

If you want new bookings to appear directly in the Accepted tab, you can change the Default Booking Status from the form’s General Options.

Use a separate calendar for each bookable resource

If you rent separate properties, rooms, vehicles or other individual resources, each resource should normally have its own calendar.

For example:

  • Apartment A → Calendar A
  • Apartment B → Calendar B
  • Holiday Home → Holiday Home Calendar

A booking blocks availability in the calendar on which it was made.

Using separate calendars therefore makes it easy to maintain independent availability for each resource.

What if I have multiple identical units?

If several identical units can be booked for the same dates, you do not necessarily need a separate calendar for every unit.

The Inventory add-on can be used when a calendar represents multiple available units.

When Inventory is enabled, Automatically Block Dates will only mark a date as unavailable after the available inventory for that date reaches zero.

This is useful for accommodation businesses or rentals where several identical units share the same availability.

Synchronize bookings from Airbnb, Booking.com and other platforms

If you accept bookings through more than one website, automatically blocking WordPress bookings alone is not enough.

A customer could book your property through Airbnb while the same dates are still displayed as available on your own website.

WP Booking System includes iCalendar Import/Export, which allows you to synchronize availability with platforms that support the iCalendar format.

For each calendar, you can:

  • import an iCalendar feed from another booking platform;
  • export your WP Booking System calendar as an iCalendar feed.

Imported reservations appear as an additional availability layer over your WP Booking System calendar and can be assigned to your Booked legend item.

This means dates reserved on another platform can also become unavailable on your WordPress booking calendar.

iCalendar synchronization is not instant

iCalendar is a synchronization format, not a real-time booking API.

WP Booking System caches imported feeds and, by default, refreshes them hourly. You can change the refresh interval in the plugin settings or manually refresh the feed from the calendar’s iCal Import/Export page.

External platforms also decide how frequently they retrieve your WP Booking System feed.

Because of this, there can be a delay between a booking being made on one platform and that booking appearing on another.

If you receive bookings from several channels, a small risk of simultaneous bookings can therefore still exist.

Be careful when synchronizing multiple external platforms

There is an important detail if you synchronize WP Booking System with more than one external booking platform.

Events imported into WP Booking System through an iCalendar feed are not included in WP Booking System’s exported iCalendar feed.

This prevents synchronization loops, but it also means WP Booking System should not be used as an intermediary to pass an Airbnb reservation to Booking.com, for example.

If you use WP Booking System, Airbnb and Booking.com together, each platform should receive the relevant feeds from the other platforms.

This ensures that availability is synchronized correctly across all booking channels.

Add turnaround time between bookings

If you need time between two reservations for cleaning, preparation or maintenance, the Booking Restrictions add-on includes a Turnaround Time option.

For example, you can require one available day between two bookings.

Booking Restrictions can also control:

  • minimum and maximum stay length;
  • allowed check-in and check-out days;
  • how far in advance a booking can be made;
  • different rules for specific periods or seasons.

These restrictions help prevent customers from making bookings that do not fit your operating schedule.

Test your booking setup

After configuring your calendar, it is a good idea to test the complete booking process.

Test a booking from your website

  1. Open the page containing your booking calendar.
  2. Select an available date range.
  3. Submit a test booking.
  4. Reload the page.
  5. Confirm that the booked dates can no longer be selected.

If the booking is Pending but the dates are unavailable, Automatically Block Dates is working correctly.

Test external calendar synchronization

If you use iCalendar synchronization:

  1. Check that the external feed has been added to the correct WP Booking System calendar.
  2. Confirm that imported reservations appear on that calendar.
  3. Check that the imported dates use an unavailable legend item.
  4. Verify that your WP Booking System export feed has also been added to the external platform.

You can manually refresh imported iCalendar data from the calendar’s iCal Import/Export page while testing.

What if booked dates are still available?

If a booking was successfully created but its dates remain available, check the following.

Automatically Block Dates is disabled

Edit the calendar embed settings and make sure Automatically Block Dates is set to Yes.

If you use a shortcode, check that it contains:

auto_pending="yes"

The wrong calendar is embedded

Make sure the calendar displayed on the page is the same calendar you are checking in the WordPress admin.

Each calendar has its own ID.

An external booking has not synchronized yet

iCalendar feeds are refreshed periodically and external platforms have their own synchronization intervals.

You can manually refresh imported feeds from the calendar’s iCal Import/Export page.

A caching plugin is showing old availability

If calendar changes appear correctly in the WordPress admin but not on the front end, page caching may be serving an outdated version of the calendar.

Exclude the page containing the booking calendar from caching and test it again.

Can WP Booking System completely prevent double bookings?

For bookings made directly through the same WP Booking System calendar, enabling Automatically Block Dates prevents newly booked dates from remaining available for another booking.

If you accept bookings through external platforms, iCalendar synchronization greatly reduces the risk of overlapping reservations, but synchronization is not instantaneous.

For the safest setup:

  • enable Automatically Block Dates;
  • use the correct calendar for each resource;
  • use Inventory when multiple identical units share one calendar;
  • synchronize all external booking channels;
  • verify that imported reservations use an unavailable legend item;
  • test your booking workflow after making configuration changes.

With this setup, WP Booking System keeps your WordPress availability up to date while allowing you to manage bookings from multiple sources.

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.