Free tool

iCal validator,
for hosts who got burned once.

Paste any Airbnb, Booking.com, Vrbo, or Smoobu iCal URL. We'll fetch it, parse it, and tell you exactly what's wrong before it costs you a relocation.

Works with Airbnb, Booking.com, Vrbo, Smoobu, iGMS, and any tool that exports a public iCal feed. Nothing is stored — we fetch the feed once, parse it, and discard it.

What this tool checks

The four iCal failures that cause real double bookings.

Most "mystery double bookings" trace back to one of four problems in the upstream iCal feed. The validator above flags each one — here's what they mean in plain English, and what to do when you find them.

Why does my Airbnb iCal sync break?

Three usual suspects: duplicate UIDs, missing required fields, and stale feeds. iCal sync is a poll-based protocol with no error channel — when one of these goes wrong, your channel manager will quietly silently overwrite or skip events instead of telling you. The tool surfaces all three before they cost you a relocation fee.

What URL should I paste?

toolIcal.guide.blocks.url.body

What's a duplicate UID and why does it matter?

RFC 5545 requires every event to carry a globally unique UID. Downstream sync engines — Airbnb, Booking.com, your channel manager, BookBed — use that UID as the identity key for the event. If two events share one, the second is treated as an update to the first, silently overwriting one of your real bookings.

In practice this surfaces as "the booking just disappeared from my calendar". The fix is upstream: re-export the feed, or in PMS tooling, force a regeneration of the UID column.

What does a missing DTSTART or DTEND mean?

Same RFC: every VEVENT needs at minimum a DTSTART (start) — and ideally a DTEND or DURATION. Events without a start date are unparseable; most readers skip them entirely. Effect: those nights stay marked as available even though you have a booking, and an attempted re-sale double-books you.

Cause is almost always an upstream bug — a channel that generated a malformed export. Re-export usually fixes it. If it persists, open a support ticket on the source platform with the raw .ics attached.

What does overlap mean — isn't that just double bookings?

Sometimes. Two overlapping events with different UIDs across two different channels = a real double booking; you have minutes to relocate one guest. But overlap on a multi-unit listing (apartment block, villa with two suites) is intentional — the same feed legitimately holds two parallel bookings. The validator flags every overlap; you decide which are real conflicts based on whether the unit count exceeds 1.

Why is the Last-Modified header so important?

The HTTP Last-Modified header tells you when the feed was last regenerated. If the header is more than 24 hours old, one of two things is true: nothing has been booked or unbooked in 24 hours (rare for active listings), or the upstream platform stopped refreshing the feed and your channel manager is polling a stale cache. The latter is the silent killer — bookings keep coming in on Airbnb, but Booking.com sees a frozen calendar and lets a guest book the same night.

Do you store the feed I paste?

No. The Server Action fetches the feed once, parses it in memory, and discards both the feed and the URL after the report is rendered. The URL itself is not logged. We rate-limit to 10 requests per minute per IP to prevent abuse, but nothing about the actual feed contents is retained. The fetcher runs entirely server-side — neither your browser nor any third party (analytics, Tawk, etc.) sees the URL you paste.

When is iCal not enough — and what fixes it?

iCal is a poll-based protocol with no push, no error channel, and no guarantees on freshness. For solo hosts on 1–2 units it works fine. As soon as you're running 5+ units across 3+ channels — or a single high-demand listing during peak season — the poll interval becomes the place where double bookings happen.

The fix is either a tool that polls every 60 seconds or less (compare BookBed to every major PMS on this exact spec), or a tool that bypasses iCal entirely and connects to Airbnb's Channel Connect API and Booking.com's XML API directly — the only protocols those two channels publish error feedback on.

Beyond the validator

BookBed polls iCal every 60 seconds — and uses direct APIs where they exist.

The result: a worst-case double-booking window of roughly one minute, versus 15–45 minutes on raw iCal. See pricing or compare us to your current tool.