Two clocks, not one
There are two delays between a guest booking and a cleaner knowing about it:
- The platform's export clock. Airbnb and Booking.com regenerate the
.icsfile periodically. Neither publishes a guaranteed interval; hosts commonly observe anything from a few minutes to a few hours, and platform-to-platform syncs (Airbnb reading Booking.com's feed) are widely reported to take hours. - Your software's fetch clock. A tool only learns about a change when it next downloads the feed.
You cannot speed up the first clock. You can make the second one short.
What Lemon does
- Every organisation's feeds are fetched on a 5-minute loop (
icalSyncIntervalMinutes, default 5), with a database advisory lock so only one server runs the sync at a time. - Every fetch is snapshotted: in the 30 days to 2026-09-10 that was 129,351 fetches across 18 feeds — roughly 4,000 a day — observing 540,461 calendar events.
- A new checkout creates a cleaning job on the same cycle. Offers to cleaners begin two weeks before checkout by default, so the five-minute latency never matters for a normal booking; it matters for last-minute bookings and same-day changes, which is where a short fetch interval earns its keep.
What five minutes does not fix
A short interval also means a feed glitch is seen quickly. If a feed briefly returns empty or drops half its events, a naive tool would cancel everything within minutes. Lemon treats an empty feed as a failed fetch (nothing changes), holds when more than half of a feed's future bookings vanish at once, and caps how much "absence" a single fetch can count towards a cancellation at 10 minutes, so an outage between syncs does not accumulate.
Practical advice
- Connect the feed of the platform the guest booked on, not a feed of a feed. A Booking.com stay that reaches you via Airbnb's re-export of Booking.com's calendar arrives with a second platform's delay and a second platform's UID rules.
- If you run last-minute bookings, use a direct PMS connection where you can. Hospitable, Guesty and Hostaway send webhooks, so a new reservation reaches Lemon in seconds rather than on the next fetch.