Skip to main content

How channel sync works

What Campiamo shares with booking sites like Booking.com and Airbnb, how often, and what those connections can and cannot do.

Last updated July 17, 2026

If you list on Booking.com, Airbnb, Pitchup or anywhere else, you have the same problem every operator has: a night sold on one site has to stop being sellable everywhere else. Doing that by hand is where double bookings come from.

Campiamo connects to booking sites in one of two ways, and which one you get depends on the site rather than on your plan.

Two kinds of connection

Calendar sync (iCal)Booking.com, Airbnb, Vrbo, Expedia, Hipcamp, Canopy & Stars — plus Google Calendar for blocking dates from your own calendar. Each has its own step-by-step setup guide.

Each side publishes a calendar file and reads the other's. It is universally supported, free, and takes about five minutes to set up. What it carries is limited: dates, and nothing else. No guest details, no prices, no "how many left".

Direct API — Pitchup.

A real two-way conversation with the channel's own system. Bookings arrive with guest details attached, and availability is pushed rather than published. Better in every way, but it only exists where the channel has built it and we have integrated with it.

If a channel appears on your Channels page, we support it. The connection type is shown on the card.

What calendar sync can and cannot do

Almost everyone starts with iCal, so it is worth being plain about it.

It can:

  • Stop a channel selling a date you have already filled
  • Block the dates that channel has sold, so your website, your booking widget and your other channels stop selling them
  • Follow along when a stay's dates change, or release the dates when it is cancelled
  • Publish your closed season, your blocked dates and your availability windows, so a channel cannot sell a night you are shut

It cannot:

  • Carry guest names, emails, phone numbers or prices. Calendar files do not have fields for them, so a channel stay appears in Campiamo as blocked dates, not as a booking — the guest's details stay on the channel.
  • Express how many units are free. A date is busy or it is not. If a pitch type holds 20 identical pitches, one booking marks the whole date busy and the channel stops selling all 20.
  • Sync instantly. Campiamo re-reads every 15 minutes, but how often the channel re-reads us is theirs to decide — Booking.com doesn't publish an interval, and in practice it can be a couple of hours. There is always a window where the same night can be sold twice.
  • Fix the past. A connection protects dates from the moment both links are in place. Reservations the channel sold before then can already overlap your calendar, and only the channel can move or cancel them. If a listing was live before you connected it, compare its existing reservations against your Campiamo calendar once — the sync will never surface those clashes on its own.

The "how many" limit is the one that costs people money. Calendar sync suits a pitch type that is one unit — a specific cabin, hut, or holiday home. It does not suit a pool of identical pitches. This is a property of the iCal format, not of Campiamo.

One connection per pitch type

A calendar describes one thing. So each connection links one pitch type in Campiamo to one room or listing on the channel.

Three cabins on Booking.com means three connections, each with its own pair of links. It feels repetitive, but it is what keeps the right booking blocking the right unit.

How often it runs

Active calendar connections sync every 15 minutes. You can force one immediately with Sync now on the Channels page.

Your outbound calendar — the one you give the channel — is generated fresh whenever they ask for it, covering the next 365 days, with a five-minute cache. A booking you take at reception is available to the channel almost at once; how quickly they read it is up to them.

When a connection is misconfigured

If we cannot read the calendar you gave us — a login page instead of an export link, a typo, an expired token — the connection fails with an explanation and stops retrying. It will not sit there failing quietly every 15 minutes.

You will see the reason on the Channels page. Fix the link and it starts again.

The other direction — whether the channel is actually reading the link you gave it — lives entirely on the channel's side, so Campiamo can't fix it for you. But it can show you the truth of it. Every calendar connection on the Channels page carries two lines:

  • ↓ Calendar from the channel: checked… — the last time Campiamo read the channel's calendar. This should never be more than about 15 minutes old.
  • ↑ Your calendar: read by the channel… — the last time the channel collected yours.

The line is the one that catches silent misconfiguration. If it shows never read, in red, the channel has not once looked at your calendar: your bookings are not blocking any dates there, and the import step on the channel's side is missing — open that channel's guide and complete it. If it turns amber (no read for over 24 hours), the channel has stopped looking; check on their side that your link is still listed.

Two things to keep in mind reading it: channels set their own pace, so a couple of hours between reads is normal and the ↑ time will usually look older than the ↓ one; and "read" means the channel collected the file — applying it to their calendar follows on their schedule, usually promptly.

Where to go next

Still stuck?

If this page didn't answer your question, it's our page that needs fixing. Tell us.

Get in touch