Last updated: August 10, 2026
Disclosure: this article is published by WPRentals. We build and sell a WordPress vacation rental theme with booking and payments built in, and the recommendations below reflect that commercial stake.
A WordPress booking calendar plugin is software (a theme feature, a standalone plugin, or a WooCommerce stack) that does two jobs for a bookable listing: it keeps that listing’s calendar honest across every channel it appears on, and it moves a guest’s money through a full deposit-to-balance or authorize-to-capture cycle. Two very different products hide under the same label. Rental booking is a date range against one physical unit whose availability also lives on Airbnb, Vrbo and Booking.com, so it has to stay in sync. Appointment booking is a time slot against a person’s diary, with no external channel to sync at all. The calendar half and the payment half are not automatically the same tool either: WooCommerce Bookings cannot book by the night until you add the free Accommodation Bookings add-on, per WooCommerce’s own documentation. What follows sorts out which build path fits you, and where WPRentals fits and where it does not.
In This Article
- Rental booking or appointment booking?
- What a booking plugin has to do
- Calendar sync and double bookings
- Payments, deposits and the balance due
- Your three routes
- When WPRentals is not the right fit
- Free vs paid
- Frequently Asked Questions
Rental booking or appointment booking: which are you actually building?
Most roundups in this category are written for appointments, which sends rental operators down the wrong path.
Rental booking is a date range (or an hour range) against one bookable unit: a cabin, an apartment, a single room. The guest picks a check-in and check-out, and the whole range locks. The same unit is usually listed on Airbnb, Vrbo and Booking.com too, so its availability exists in four places that all have to agree.
Appointment booking is a slot against a person’s or a resource’s diary. The constraint is staff availability, service duration, and buffer time between clients. There is no external channel to sync with, because nobody lists a dental hygienist on Booking.com.
| What you are booking | What the constraint is | What syncs | What breaks if you get it wrong | |
|---|---|---|---|---|
| Rental booking | A physical unit for a date range | OTA availability on every channel it is listed on | The unit’s calendar with Airbnb, Vrbo, Booking.com | Double bookings across channels |
| Appointment booking | A person’s time slot | Staff availability, service duration, buffer time | A staff or personal calendar, commonly Google Calendar | Overlapping appointments and no-shows, not channel collisions |
One question sorts it: does your availability live anywhere outside your own site? If it also lives on an OTA, you want a WordPress booking calendar plugin built for date ranges. If it lives in a staff diary, skip the iCal material below.
One edge case sits between the rows: bookings by the hour, not the night. Studios, meeting rooms and boats are still unit-based, and our WordPress hourly booking plugin guide covers them.
What a booking plugin has to do before it counts as one
A calendar widget with a payment button next to it is not a booking system. The bar is two jobs done correctly: keep the calendar honest across every channel, and move money through a deposit-then-balance or authorize-then-capture cycle that survives a cancellation. A feature checkbox reading “calendar” or “payments” says nothing about whether either job is done.
WooCommerce documents the cleanest example of the gap: “By default, Bookings only supports bookings by days. The free WooCommerce Accommodation Bookings add-on allows the booking duration to be specified as ‘number of nights’.” A tool can have a full booking calendar and still not know what a night is.
The halves stay separate on the sync side too. Airbnb’s help center describes the iCal feed as pure availability: nights you block, or that get booked on Airbnb, “will be blocked on the other website’s calendar.” Blocks travel. Guest details and money do not.
Two more requirements decide whether you can run the business day to day. The booking form has to collect what the stay needs (ID, arrival time, party size, special requests), not a generic contact form. And both sides need automatic messages: a guest confirmation and a host notification, payment reminder included.
Calendar sync: iCal, API, and how double bookings actually happen
Two things get sold under the word “sync.” iCal is a file: your site publishes a feed of blocked dates, and each OTA reads it on its own schedule. It carries availability only, no rates, no minimum stays, no guest details. API-level sync is a live two-way connection, what a channel manager gives you and a file cannot. Roundups blur the two.
None of these is a real-time guarantee, and the platforms word them differently. Airbnb’s help center says its calendar “automatically updates every 3 hours.” Booking.com’s partner help center says it “automatically imports any connected calendar every two hours.” Vrbo’s help center gives two figures: imported events “may take up to 20 minutes to appear,” and the Vrbo Owner app syncs every 30 minutes. Different measurements, so do not average them.
Booking.com names the consequence in its own partner FAQ: sync “doesn’t happen in real time,” so “reservations made on other platforms might not sync right away, which can lead to double bookings.” Airbnb’s Host Cancellation Policy treats double-booking as a host-responsible cancellation: 50% of the reservation amount for nights not stayed when it happens 48 hours or less before check-in.
WPRentals runs two-way iCal per listing, importing OTA feeds in and exporting its own out, across Airbnb, Vrbo, Booking.com and any other iCal-compatible OTA. Imports run on WordPress cron at a 3-hour default, per the WPRentals docs, tunable to 30 or 60 minutes via WP Crontrol. Confirmation on your site is atomic: once a range confirms, “the next attempt for that range fails with an availability error,” per wprentals.org.
Across channels we are in the same boat as every other iCal tool. In wprentals.org’s words: “No matter the interval, any iCal tool can still see a clash if Airbnb and Booking.com both get bookings for the same dates before the next fetch.” Tightening the cron shrinks that window. Polling never closes it.
Three guides go deeper: availability calendars and iCal sync, sync Airbnb and Vrbo calendars, and sync bookings to Google Calendar.
Payments: gateways, deposits, and the balance due problem
WPRentals handles payment natively, without a separate checkout plugin. Stripe connects via Stripe.js and the Payment Intents API, labelled SCA ready on the wprentals.org homepage. PayPal is supported through your own PayPal account API details. Wire transfer is manual by design: the system emails an invoice with your bank details, and you mark the booking paid on receipt.
Cash on arrival is the same flow with the deposit set to 0%. Running checkout through WooCommerce is an optional route to Klarna, iDEAL and SEPA. None of it adds a plugin-level transaction fee: per wprentals.org’s payments comparison, “every cost goes straight to the processor at standard gateway rates.” Our guide to WordPress booking plugins with payment covers setup.
The deposit is set from admin as a percentage or fixed rate. The guest sees the remaining balance in their dashboard, and the theme sends a reminder 3 days before the booking starts, per the WPRentals feature list.
That timeline collides with the card networks: “deposit now, balance before arrival” is an authorize-then-capture flow, and the hold expires. Stripe’s documentation puts a standard online card authorization at 7 days, extended up to 30 days for hotel and lodging depending on the card network, with Visa at 29 days and 18 hours.
PayPal’s developer documentation puts a direct authorization at 29 days with a 3-day capture honor period. And each reauthorization restarts the honor period only, not the 29 days. A booking four months out cannot sit on one authorization, so plan for re-authorization or delayed capture.
With a standard single-account Stripe or PayPal integration, the usual setup for one property or one management company, you are the seller of record: the money lands in your account, and so do the disputes and refunds. PayPal’s docs put the refund window at 180 days from capture. But Stripe publishes no equivalent figure, so read your own account terms.
Your three routes: theme with built-in booking, standalone plugin, or WooCommerce
There are three ways to get a rental calendar plus payments onto a WordPress site.
Route 1, a theme with booking built in. The booking engine and gateways ship with the design layer, so there is no stack to assemble. In WPRentals the rental settings are native: a “Minimum number of nights” rule that can be overwritten for specific periods, turn-over nights (which weekdays guests may check in and out), custom price per night or hour with holiday and peak-date overrides, a separate weekend rate, and an early-bird discount.
Hourly mode is native too, set site-wide to per-day, per-hour, or a mix. Page builders integrate through WPRentals’ own booking forms (see our Elementor booking calendar setup guide). Guest data collects name, email, phone and a message by default, with custom fields needing a child-theme edit (our WordPress booking form setup walkthrough).
Route 2, a standalone booking plugin. Keep the theme you have and bolt booking onto it. Products here include MotoPress, Amelia, Bookly, the Booking Calendar family, Pinpoint Booking System and HBook. They vary enormously in whether they model date ranges natively or were built appointment-first, so check each product’s own documentation for minimum stay, turnover days and OTA iCal support.
Route 3, WooCommerce plus extensions. The assembly job. Core WooCommerce Bookings is day-based, so night-based accommodation pricing needs the separate free Accommodation Bookings add-on.
WooCommerce also documents that Bookings “enables one-way or two-way sync with Google Calendar,” a staff-calendar connection rather than OTA iCal, a different job from what a rental operator needs. Payment gateways are another extension layer. Our WooCommerce booking calendar compared breakdown runs the pieces side by side.
When WPRentals is not the right fit
Three cases, named plainly.
Appointment and staff-diary booking. We model a physical unit’s night-by-night availability. It has no concept of a stylist, a 45 minute service, or the ten minutes needed between clients. If that is your business, buy an appointment tool. That is our own assessment as the people who build this.
Restaurant reservations. Table booking is a capacity and turn problem inside a service window: covers per sitting, party size, how fast a two-top clears. It is not nightly unit availability wearing a different label, and not something we have built for.
Room-inventory hotel PMS with channel-manager push. A multi-room property needing live, two-way inventory and rate-plan push across many OTAs over XML needs a property management system with a channel manager. The WPRentals docs state the limit directly: “iCalendar synchronization is availability sync. It is not the same as a full API/channel manager integration.” Rates, minimum stays and guest details do not travel over iCal.
What is left is the job the product was built for: date-range inventory listed on your own site and the OTAs at once, with money through your own gateway accounts. For that operator the WPRentals vacation rental theme is the pick.
Free vs paid: what the free tiers actually leave out
Free tiers on these routes are typically single-property. OTA iCal sync and multi-property support are what the paid tier adds. Structures diverge on the paid side: in the tools we have looked at, standalone plugins and WooCommerce extensions sell recurring licences, per year and often per site.
WPRentals is a one-time payment of $79 for the regular licence, per its ThemeForest listing, which covers future updates and 6 months of support and is where the purchase completes. The trade-off: WPRentals is a theme, not a plugin, so it replaces your site’s design layer instead of bolting booking onto an existing site.
If budget is the first filter rather than the last, start with our roundup of free WordPress booking plugins.
Key Takeaways
- Rental booking is a date range against one unit synced across OTAs; appointment booking is a slot against a person’s diary.
- iCal is file-based polling, not a live API link, so every calendar tool including WPRentals carries a collision window.
- Airbnb publishes a 3-hour calendar refresh and Booking.com a two-hour import, neither of them real-time sync.
- Stripe holds a standard card authorization for 7 days, up to 30 for lodging, so long-lead bookings need re-authorization.
- WPRentals costs $79 one time per its ThemeForest listing, against the per-year licences typical of plugins.
Frequently Asked Questions
Does a WordPress booking calendar plugin sync with Airbnb and Vrbo?
Yes, through iCal feeds, on each platform’s own schedule rather than in real time. Airbnb’s help center states a 3-hour calendar refresh; Vrbo’s says an imported calendar may take up to 20 minutes to appear. WPRentals syncs two-way per listing on a 3-hour cron. Neither platform states real-time sync.
What’s the best free WordPress booking calendar plugin?
Free tiers on all three build paths are typically single-property. OTA iCal sync and multi-property support are what the paid tier adds, so it depends on how many listings you run. WPRentals is a paid theme at $79 one time, per its ThemeForest listing.
Can I use a WordPress booking plugin for appointments instead of rentals?
Not a rental-focused one. An appointment is a slot against a person’s diary, so the software has to model staff availability, service duration and buffer time. A rental tool models a unit’s night-by-night availability instead. WPRentals is built for date-range bookings, so shop the appointment plugin category (Amelia, Bookly and similar).
How often does a WordPress booking calendar plugin update availability?
It depends on the sync method. iCal tools poll on an interval: Airbnb’s help center states a 3-hour automatic refresh, Booking.com’s partner help center a two-hour import. Neither is real time; API-level channel managers are. WPRentals runs WordPress cron at a 3-hour default, tunable to 30 or 60 minutes, a ceiling rather than a guarantee.
Does a WordPress booking plugin handle deposits and payments automatically?
Yes, when built for it. Deposit at booking plus balance before arrival is authorize-then-capture, bounded by processor hold windows: Stripe documents up to 30 days for lodging depending on card network, PayPal 29 days with a 3-day honor period. WPRentals, per its feature list, sets the deposit as a percentage or fixed rate and reminds the guest 3 days ahead.
Picking a WordPress booking calendar plugin comes down to two decisions, in order. First, date ranges against a unit or slots against a diary: a vacation rental booking plugin and an appointment tool share a label and almost nothing else. Then match the sync and payment mechanics to your build path.



