Start free

iCal and channels: availability, conflicts and limits

An iCal link for Booking.com and Airbnb, importing a platform calendar, sync every 15 minutes, conflicts, changing the link

9 min read Open this screen in the demo
On this page 15

iCal and channels: availability, conflicts and limits

If you sell rooms not only yourself but also on Booking.com, Airbnb or similar platforms, the main thing is not to sell the same night twice. The simplest way to connect calendars is iCal: your availability goes to the platform, and the platform's bookings block the dates on your side. This article explains how to set it up, what to do about a conflict and what iCal cannot do.

Who: the hotel owner or manager for setup; the front desk for resolving conflicts.

Before you start: your rooms are placed on the floor plan. iCal works per physical room (room 101, room 102…), not per room type: each room has its own export link and its own import link.


Where it is set up#

  1. Open Rooms and select 🏷️ Room types. The Hotel settings window opens.
  2. Go to the Sales channels tab.
  3. The blocks, in order: the booking button for your own website, rooms on the website, Sales channels: iCal export, Sales channels: iCal import (OTA), Sales channels (channel manager) and company contracts.

The 🏷️ Room types button is visible to staff with the settings right.


Send a room's availability to a platform (export)#

  1. In the Sales channels: iCal export block, tick Publish room availability as iCal links.
  2. A link appears for each room. Select Copy next to the room you need — the button changes to "Copied".
  3. In the platform's extranet, open the calendar of that room (listing) and paste the link into its calendar import — usually called "Import calendar".
  4. Repeat for every room sold on the platform.

If there are no links and you see "No rooms on the floor plan yet…", add the rooms to the floor plan first.

What the platform sees: only busy dates; each event says "Busy". The link carries no names, phone numbers or other guest data.

What counts as busy:

  • a booking assigned to this room — both awaiting arrival and with the guest in house;
  • a room out of order (taken out of sale as broken) — for the repair dates;
  • a room held for a group block.

The departure day counts as free — the platform can sell an arrival on that day. The link shows availability from today for 365 days ahead.

When it updates: right after a staff member creates, changes or cancels a booking, checks a guest in or out, and after a website booking. The link may be cached for up to 5 minutes, and the platform re-reads the calendar on its own schedule — for some platforms that is every few hours. So iCal does not protect against selling one night in two places "within the same minute".

Turn export off: untick Publish room availability as iCal links. All the hotel's links stop working, and platforms get an error when reading the calendar.


Receive availability from a platform (import)#

  1. In the platform's extranet, find the export link of the room's calendar (usually "Export calendar"). The link must start with https://.
  2. In the Sales channels: iCal import (OTA) block, paste it into the field of that room (the field hint is https://…/calendar.ics).
  3. Select Save import feeds. You will see "Saved".
  4. Wait up to 15 minutes. "✓ synced {time}" appears under the field — the calendar has been read.

What happens during a sync (about every 15 minutes):

  • each new platform booking becomes a booking on the calendar for this room: guest "OTA", source OTA. It closes the dates for sale on your side, including for website guests;
  • if the platform changes the dates, the booking on the calendar moves — as long as the guest has not checked in;
  • if the booking disappears from the platform's calendar (cancelled), the booking on the calendar is cancelled — if the guest has not checked in and the dates have not passed;
  • the same platform booking is never created twice;
  • if the platform returns your own booking (you sent it out by export, and the platform shows it in its calendar), the system recognises it by the same dates on the same room and does not create a duplicate.

The platform's calendar contains no guest name or price, so an imported booking has the guest "OTA" — check the price and guest details in the platform's extranet.

If you see "⚠️ …" instead of "✓ synced" — the calendar could not be read. Common causes: the link is not https or has a login and password inside it, the platform returned an error (for example http 404 — the link was reissued on the platform), the calendar is too large. Get a fresh link from the platform and save it again.


Resolve a conflict#

A conflict is a platform booking that overlaps your booking on the same room but with different dates. The system never overwrites your booking: the platform event does not go onto the calendar, and "⚠️ {N} channel conflict(s) — resolve manually in the calendar" appears under the import field.

How to resolve it:

  1. Open the calendar and find the room with the conflict.
  2. Compare the room's bookings with that room's calendar on the platform.
  3. Decide who stays in the room:
    • your guest stays — move the platform guest to another room (on the platform or by agreement with the guest) or cancel the booking on the platform;
    • the platform guest stays — move your booking to another room or other dates (see Moving, relocating and splitting a stay).
  4. After the next sync the conflict counter updates.

The export link is a key: anyone who has it sees the busy dates (without guest data). If the link ended up in the wrong place or you stopped working with a platform, change it.

  1. In the Sales channels: iCal export block, select Regenerate links.
  2. Confirm: "Regenerate the links? The old links stop working immediately — you will have to paste the new ones into every channel.".
  3. Copy the new links and replace them on all platforms — for all rooms.

The links change at once for all rooms of the hotel. If after saving you see "Saved, but publishing the feeds failed…", the new links start working after the next booking change.


What iCal does not transfer#

  • Prices, rate plans, stop sell, minimum stay — only busy dates. Change prices and restrictions on each platform in its extranet.
  • Guest data — in either direction.
  • Room types: one link is one physical room. If a platform listing sells a "type" made up of several rooms, iCal is not suitable for it.
  • Instant updates: platforms re-read the calendar on their own schedule, and import runs about every 15 minutes. A short window in which a night can be sold twice remains.

Channel manager and external PMS: what is ready#

Channel manager (Channex) — the Sales channels (channel manager) block with the Connect channels wizard (steps "1. Property", "2. Mapping review", "3. Bookings", "4. Channels", "5. Launch"), "room type × rate plan" mapping, a sync journal and the Sync now button. Right now it is connected only to the provider's test environment — the wizard shows this with "Channex test environment (sandbox): real channels are not sold here yet.". You cannot sell to real channels through it yet, and there is no switch to the live environment in the settings. For live platforms, use iCal.

If a channel is later connected through the channel manager, do not keep an iCal import for the same room and the same platform — availability would be counted twice. The panel warns about this itself.

TravelLine (cenaly.ru only). If the hotel already works with the TravelLine channel manager, the same block has a TravelLine connection: bookings from TravelLine arrive on the calendar every 15 minutes. Room availability and prices are still managed in TravelLine.

External PMS. The 🔌 PMS button on the Rooms page opens PMS integration. Only the Mock (demo) adapter is available there — a simulator of "charge to room" postings into another system. There are no ready connections to Opera, Bnovo, Shelter or other PMSs.


FAQ#

How often are calendars updated?#

Import from platforms runs about every 15 minutes. Your availability is published right after a booking changes, but the platform re-reads the link on its own schedule — usually from a few minutes to a few hours.

Why is my Booking.com booking called "OTA"?#

An iCal calendar has no guest name — only dates. Check the name, phone and price in the platform's extranet, and enter the guest details yourself at check-in.

I sold a room by type, but the dates did not close on Airbnb. Why?#

The export link belongs to a specific room. Until a booking has a room, it is in no link. Assign a room — and after the platform re-reads the calendar, the dates close.

Can I send prices to Booking.com through iCal?#

No. iCal carries only busy dates. Change prices, stop sell and minimum stay in the platform's extranet.

Will a room under repair close on the platform?#

Yes, if it is taken out of sale as out of order for specific dates — those dates appear in the link as busy.

What happens if I turn export off?#

All the hotel's links stop working. On the next read, platforms get an error and, depending on the platform, stop blocking the dates or show a warning. Turn export on again — the links appear with a new key, and you will need to paste them again.