Why iCal sync causes double bookings, and how to reduce them
Most WordPress booking plugins keep your availability in step with Booking.com, Airbnb and similar sites using iCal links. It’s free and it works, mostly. When it doesn’t, you get the worst outcome in hospitality: two guests booked into one room.
Here’s what’s going on and what you can do about it.
How iCal sync works
iCal is a plain calendar file format. Sync with it works in two directions, each through a link:
- Export: your booking plugin publishes a link listing the dates each room is booked. You paste that link into your Booking.com or Airbnb extranet. They read it to block those dates.
- Import: Booking.com and Airbnb each publish a link with their bookings for that room. You paste those into your plugin, which reads them to block the dates on your site.
Every room or listing needs its own pair of links on each site.
Why it leaves gaps
The key word is read. Neither side is told when something changes. Each side fetches the other’s file on a schedule, and between fetches they don’t know about new bookings.
- Airbnb and Booking.com fetch external calendars on their own schedule, typically every few hours, and you can’t make them go faster.
- Your plugin fetches theirs on its schedule, often hourly, and on many WordPress hosts only when someone visits the site, because WordPress’s scheduler runs on page visits.
- The file only says which dates are blocked. It doesn’t carry room types, guest counts or prices.
So if a room is booked on Airbnb at 10:00 and Booking.com doesn’t read the update until 13:00, that room is still for sale on Booking.com for three hours. On a busy weekend, three hours is plenty of time for a second booking.
Steps that reduce double bookings
1. Check every link once
Most double bookings we hear about come from setup mistakes, not timing. List every room down the left and every channel across the top, and tick each export and import link. A room whose Booking.com calendar was never imported will double book eventually.
2. Make your site’s schedule reliable
If your plugin depends on WordPress’s scheduler, ask your host to run it with a real server cron job every 15 minutes instead of waiting for visitors. Most hosts can do this from their control panel. It doesn’t speed up the OTAs, but it closes your side of the gap.
3. Keep a buffer on your busiest dates
For dates you know will sell out, such as holidays and festival weekends, close the last room on all but one channel. You lose a little reach and avoid a guest arriving to no room.
4. Check new bookings against the calendar
Make it part of the daily arrivals routine: every morning, compare tomorrow’s arrivals on each channel with your plugin’s calendar. Catching a clash a day early means you can move a guest calmly, rather than at check-in.
5. Know what you’ll do when it happens
Agree in advance which room or nearby property you’ll offer, and what you’ll pay for it. A double booking handled well, with an upgrade or a better room nearby, rarely turns into a bad review.
When to move beyond iCal
iCal is fine for a few rooms on two or three channels. If you have more rooms, more channels, or a lot of last-minute bookings, a channel manager is worth the cost. Instead of reading files on a schedule, it connects to each OTA directly and updates availability within seconds. Some booking plugins offer one as a paid add-on; others connect to a hosted channel manager.
A rough guide: once a double booking costs you more than a month of a channel manager subscription, it’s time.