Channel sync & operations

Direct booking confirmed, Airbnb calendar not updating: what to do now

A guest booked direct but your Airbnb calendar is not updating and the nights are still open. Block them now, find the broken link, and fix the flow for good.

Published 25 September 2026 Β· Updated 30 September 2026 Β· By the BookBed Team
Direct booking confirmed, Airbnb calendar not updating: what to do now

A guest just paid you directly. You open Airbnb to check, and the same nights are still bookable: your Airbnb calendar is not updating, and anyone browsing your listing right now could take them.

Don't start by debugging. Close the dates by hand on every channel first, then work out why the sync didn't do it. Blocking is quick. Finding the cause takes longer, and a second guest can book while you look.

What should you do first when the dates are still open?

Block the booked nights manually on every OTA where they're still open, then confirm the direct booking exists in your master calendar before you touch any sync settings.

Work through this checklist in order. Every step either removes the double-booking risk or tells you where the break is.

  1. Block the nights on Airbnb, Booking.com, and any other channel. When you block dates on the Airbnb calendar as a host, do it in that listing's own calendar, not in a connected tool, and cover every night from check-in to the last night of the stay. Don't wait for the next sync.
  2. Check whether anyone booked in the meantime. Look at each OTA's reservations for the same dates. If a second booking already landed, go straight to the "if a double booking already happened" section below.
  3. Find the direct booking in your master calendar. Your master calendar is the one tool you treat as the source of truth, such as a PMS, channel manager, or booking system. If the booking isn't there, the break happened before any sync could run.
  4. Confirm the unit and date mapping. Check that the booking sits on the right unit, and that this unit's export link is the one pasted into this listing. If two units' feeds are swapped, one listing never blocks.
  5. Check the direction of each feed. On Airbnb and Booking.com, look at the imported calendars. Your master calendar's export link should appear there. An import set up the other way round won't carry your direct bookings to the OTA.
  6. Force a refresh and note the time. Airbnb has a Refresh option on imported calendars, and Booking.com has Import now. Write down when you did it, so you can check later whether the feed worked.

Once the manual blocks are in, the incident is contained. Everything else is diagnosis.

Why is your Airbnb calendar not updating after a direct booking?

Often the OTA simply hasn't pulled your calendar feed yet, because iCal sync runs on each platform's own schedule, not at the moment your booking is created.

iCal is a shared calendar file format: your system publishes a link, and each OTA fetches that link on its own timetable. Airbnb's help page on calendar syncing says your Airbnb calendar "automatically updates every 3 hours" from connected calendars, with a manual Refresh for sooner checks. Booking.com's partner guide says it "automatically imports any connected calendar every two hours", offers Import now for a manual update, and warns that calendar sync "is not in real time".

Paper collage of a house shape tied by a thread through a terracotta sand-timer to a calendar panel with one open square

So a gap of a couple of hours can be normal behavior rather than a fault. If the refresh in step 6 closes the dates, the chain works and you've found your risk window. If the dates stay open after a refresh, your calendar sync is not working somewhere in the chain. Use the table below to find which link.

What you seeLikely breakFix
Booking missing from master calendarDirect form or payment tool isn't connected to itEnter it by hand, then connect the booking flow
Booking on the wrong unitUnit mapping errorMove it and re-check every unit's export link
Master correct, OTA still open after refreshExport link not imported on that OTAPaste the correct unit's export link into the OTA
Export imported, still openLink from an old tool or a deleted unitReplace it with the current link
Dates close, then reopenCircular or duplicate feedsRemove feeds that point back at each other
Only some dates blockedBooking beyond the imported range, or nights blocked rather than bookedCheck the date range and block the rest by hand

Avoid circular and duplicate feeds

A circular feed happens when calendar A imports B, B imports C, and C imports A. Each tool re-exports what it received, so one change can bounce around and arrive late, twice, or not at all. Duplicate feeds do something similar: two imported links for the same unit can disagree.

The iCalendar standard, RFC 5545, gives each event a UID, defined as "the persistent, globally unique identifier for the calendar component". When the same stay comes in through two paths, tools may treat the copies as separate events or match them inconsistently. Our inference: keep one path per channel, running from your master calendar to each OTA and from each OTA back to the master, and nothing between OTAs. Our free iCal checker flags duplicate UIDs and overlapping events in a feed.

What if a double booking already happened?

If a second guest booked the same nights before you blocked them, decide quickly which reservation you'll honour, and contact the other guest before they travel.

Which booking you keep depends on the penalties each platform applies, so check them before you cancel anything. On Airbnb, the host cancellation policy sets fees of 10%, 25% or 50% of the reservation amount depending on how close to check-in you cancel, with a $50 USD minimum, and Airbnb may also block the listing's calendar for those dates. On Booking.com, the overbooking guidance asks you to contact them, move the guest to a unit of the same or better standard, and, if you have none, find and pay for comparable accommodation elsewhere, possibly including transport.

Our recommendation: compare those costs against the direct guest's terms, then tell whichever guest you can't host as early as possible. For the full recovery playbook, see our guide on how to avoid double bookings.

How do I stop this from happening again?

Make every direct booking land in one master calendar automatically, check availability again right before payment, and accept that iCal-only OTAs will always see changes with some delay.

Here's the flow to aim for, from guest click to OTA block:

  1. One source of truth. One calendar that every channel reads from and writes to. A direct enquiry form plus manual blocking has no source of truth. It depends on you.
  2. Availability check at payment. Recheck the dates as the last step before charging the card, not only when the guest first picked them. That's a recommendation, not a platform rule. It narrows the gap in which two people can buy the same nights.
  3. Instant write to the master calendar. The confirmed booking blocks the dates in the master calendar before the confirmation email goes out.
  4. Export to each OTA. Each unit's export link is imported by each OTA, one link per unit per channel.
  5. Import from each OTA. Each OTA's export is imported back into the master, so OTA bookings block your direct channel too.
  6. Conflict alerts and a daily check. Once a day, scan the next 30 days for nights booked in one place and open in another. It's a short check, and it can catch silent failures, such as a feed that stopped updating weeks ago.

For a deeper look at the trade-off between feeds and direct connections, read our comparison of iCal vs API sync.

The residual window you can't remove with iCal

Even a perfect iCal setup leaves a gap between your booking and the OTA's next fetch. Using the documented schedules above, that's up to about 3 hours on Airbnb and 2 hours on Booking.com. This is a calculation from the platforms' stated cadence, not a measured guarantee. You can shorten your exposure by pressing Refresh or Import now after each direct booking. For same-day and next-day stays, where a clash hurts most, block the OTAs by hand as routine.

When this advice does not apply

  • API-connected channels: if a channel manager connects to an OTA by API rather than iCal, the timings above don't describe that connection. Check your provider's documentation.
  • Hotel-style inventory: if you sell room types with a count, not single units, one booking lowers the count rather than blocking a date. Different fixes apply.
  • Request-to-book flows: if you approve direct requests by hand, the dates aren't booked until you accept. Block them the moment you do.
  • Other platforms: Vrbo and smaller OTAs set their own import schedules. Check each one's help pages rather than assuming the figures above.

What to do next

  1. Block the open nights by hand on every OTA now, if you haven't yet.
  2. List every calendar link for every unit, with its direction and destination. Delete anything circular or duplicated.
  3. Run each export link through the iCal checker and fix any errors it reports.
  4. Add a short daily conflict check covering the next 30 days to your routine.
  5. Replace any direct booking form that doesn't write to your calendar automatically.

FAQ

Can I make Airbnb sync my calendar instantly?

Not through iCal. Airbnb's help page describes an automatic update every 3 hours plus a manual Refresh on each imported calendar, and notes that multiple connected calendars may update at different times.

Should I block dates on the OTA or in my master calendar?

In an emergency, both. Long term, block only in the master calendar and let the feeds carry it, so there's one place to change later.

Why did Airbnb block some nights but not others?

Check the date range of the booking in your master calendar first. Airbnb says it imports up to 2 years of data, and that nights merely blocked on another calendar "may or may not be blocked on Airbnb", for example preparation time or advance notice settings. Booked nights are the ones it blocks automatically.

About BookBed: BookBed's direct booking widget writes confirmed bookings into the same calendar that feeds each unit's export link to your OTAs, so there's no separate form to block by hand. OTAs still fetch that link on their own schedule. Get the direct booking widget

Sources

  • Airbnb Help Center, "Sync your home host calendar to other websites" β€” Verified 2026-09-30
  • Booking.com for Partners, "Updating your availability calendar in the extranet" β€” Verified 2026-09-30
  • Booking.com for Partners, "Handling overbookings" β€” Verified 2026-09-30
  • Airbnb Help Center, "Host Cancellation Policy" β€” Verified 2026-09-30
  • IETF, RFC 5545 "Internet Calendaring and Scheduling Core Object Specification (iCalendar)" β€” Verified 2026-09-30
Try BookBed

14-day free trial. No card. We'll migrate your data for free.

Get the direct booking widget