{"id":1309,"date":"2026-09-28T01:00:00","date_gmt":"2026-09-27T18:00:00","guid":{"rendered":"http:\/\/www.solidres.com\/blog\/?p=1309"},"modified":"2026-09-27T14:40:44","modified_gmt":"2026-09-27T07:40:44","slug":"ical-sync-vs-a-channel-manager-what-each-one-actually-moves","status":"publish","type":"post","link":"https:\/\/www.solidres.com\/blog\/2026\/09\/28\/ical-sync-vs-a-channel-manager-what-each-one-actually-moves\/","title":{"rendered":"iCal sync vs a channel manager: what each one actually moves"},"content":{"rendered":"\n<p>If you sell the same room on your own website and on one or more booking sites, something has to tell each of them when a night is sold. When nothing does, two guests book the same room, and one of them gets a phone call nobody wants to make.<\/p>\n\n<p>There are two ways to pass that message along, and both are sold under the same word: sync. They move very different things. iCal sync moves blocked dates, after a delay. A channel manager moves availability, rates, restrictions and the reservation itself, as they change. Which one you need depends on your property, and for some properties the lighter one is enough.<\/p>\n\n<!--more-->\n\n<h2>What iCal sync is<\/h2>\n\n<p>iCal is a calendar format, the same one a phone uses to subscribe to a calendar. Each system publishes a calendar feed: a web address that lists the periods when a room is taken. You give your website&#8217;s address to the booking site and the booking site&#8217;s address to your website, and each side reads the other&#8217;s feed from time to time.<\/p>\n\n<h3>What it carries<\/h3>\n\n<p>A feed is a list of events. Each event has a start date, an end date and a short label, and it says one thing: this period is busy. That is all the other side needs to close those nights.<\/p>\n\n<h3>What it does not carry<\/h3>\n\n<p>The calendar standard was written for meetings and appointments, not for selling rooms. It has no field for a nightly rate, a minimum stay or the number of rooms still free. What a feed says about the guest is whatever the sender chose to put in the label, and that is usually very little.<\/p>\n\n<p>So a booking that reaches you through a calendar feed arrives as a blocked period, not as a reservation. You still have to open the booking site to see who is coming, what they paid and what they asked for.<\/p>\n\n<h3>The delay<\/h3>\n\n<p>The side that reads a feed decides when to read it. The large booking sites publish their schedules in their help pages, and they range from about half an hour to a few hours. Your own website reads their feeds on the schedule you give it.<\/p>\n\n<p>Between two reads, both sides can sell the same night. This is where iCal double bookings come from, and no setting on your side removes the gap completely. You can shorten your half of it. The other half belongs to the booking site, so look up calendar import in your platform&#8217;s help pages to see how often it reads your feed.<\/p>\n\n<h3>iCal sync in Solidres<\/h3>\n\n<p><strong>With Solidres:<\/strong> the iCal plugin comes with every paid Solidres subscription. Each room type has its own feed address, protected by a token, which lists that room type&#8217;s reservations and blocked dates for the months ahead, six by default. In the other direction, you paste one or more feed addresses into the room type, and a scheduled task in Joomla reads them and turns each event into a blocked period, using the Limit Booking plugin. The task runs as often as you schedule it, which is why it is worth <a href=\"https:\/\/www.solidres.com\/documentation\/joomla-documentation\/13-configuration\/101-how-to-set-up-joomla-cron-for-the-task-scheduler\">setting up a real cron job for Joomla&#8217;s Task Scheduler<\/a>. The steps for both directions are in <a href=\"https:\/\/www.solidres.com\/documentation\/joomla-documentation\/13-configuration\/67-how-to-configure-ical\">the guide to configuring iCal in Solidres<\/a>.<\/p>\n\n<h2>What a channel manager is<\/h2>\n\n<p>A channel manager is a connection between the one system that holds your inventory, the master, and the booking sites that sell it, the channels. When something changes in the master, the change is sent to the channels. When a channel takes a booking, the booking is sent back.<\/p>\n\n<h3>What it sends out<\/h3>\n\n<p>Availability as a number: how many rooms of each type are left on each night. Nightly rates. And restrictions, such as a minimum stay, a night that is closed to arrival, or a stop sell that takes a date off a channel altogether.<\/p>\n\n<h3>What comes back<\/h3>\n\n<p>The reservation itself, with the guest, the dates, the rooms and the prices. If the guest later changes or cancels the booking on the channel, that comes back too.<\/p>\n\n<h3>The timing<\/h3>\n\n<p>Changes are sent when they happen, not collected later. That narrows the window in which two places can sell the same night from hours to moments. It does not close it: two guests can still book the last room at almost the same time, which is why a channel manager should show you an overbooking and not hide it.<\/p>\n\n<h3>The Solidres Channel Manager<\/h3>\n\n<p><strong>With Solidres:<\/strong> the <a href=\"https:\/\/www.solidres.com\/subscribe\/channel-manager\">Solidres Channel Manager<\/a> connects your Solidres site to Booking.com, Expedia, Airbnb, Agoda and Vrbo, plus a long list of regional and niche channels, and Solidres stays the master of your inventory. Alongside availability and nightly rates, it sends minimum stay, maximum stay and stop sell. A booking made on a channel lands in Solidres within seconds as a normal reservation, with the guest, the dates, the rooms and the per-night prices the channel sent, and modifications and cancellations are applied automatically. If a channel booking arrives for dates you no longer have free, it is still saved, as a cancelled reservation with a note explaining why, so you can see the overbooking and deal with it. You connect your own channel accounts, and we take no commission on any booking. The Channel Manager runs on top of Solidres, so it needs both a Solidres subscription, at any level, and a Channel Manager subscription.<\/p>\n\n<h2>Side by side<\/h2>\n\n<p>The same comparison in one table. Where a booking site decides the answer, the table says so.<\/p>\n\n<table class=\"table table-striped uk-table uk-table-striped\">\n\t<caption>What iCal sync and a channel manager each move between your website and the booking sites<\/caption>\n\t<thead>\n\t\t<tr>\n\t\t\t<th scope=\"col\">What moves<\/th>\n\t\t\t<th scope=\"col\">iCal sync<\/th>\n\t\t\t<th scope=\"col\">Channel manager<\/th>\n\t\t<\/tr>\n\t<\/thead>\n\t<tbody>\n\t\t<tr>\n\t\t\t<th scope=\"row\">Blocked dates<\/th>\n\t\t\t<td>Yes<\/td>\n\t\t\t<td>Yes<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<th scope=\"row\">Number of rooms left<\/th>\n\t\t\t<td>No. A date is either taken or free<\/td>\n\t\t\t<td>Yes<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<th scope=\"row\">Nightly rates<\/th>\n\t\t\t<td>No<\/td>\n\t\t\t<td>Yes<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<th scope=\"row\">Minimum stay and other restrictions<\/th>\n\t\t\t<td>No<\/td>\n\t\t\t<td>Yes<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<th scope=\"row\">Stop sell on chosen dates<\/th>\n\t\t\t<td>By hand, on each booking site<\/td>\n\t\t\t<td>Yes, from one place<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<th scope=\"row\">The guest&#8217;s details<\/th>\n\t\t\t<td>A short label at most. Depends on the platform<\/td>\n\t\t\t<td>Yes, with the reservation<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<th scope=\"row\">The price paid<\/th>\n\t\t\t<td>No<\/td>\n\t\t\t<td>Yes<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<th scope=\"row\">Modifications and cancellations<\/th>\n\t\t\t<td>As dates that change at the next read<\/td>\n\t\t\t<td>Yes, applied to the reservation<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<th scope=\"row\">Timing<\/th>\n\t\t\t<td>When the other side next reads the feed<\/td>\n\t\t\t<td>When the change happens<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<th scope=\"row\">What it needs to run<\/th>\n\t\t\t<td>A feed address on each side and a scheduled task on your website<\/td>\n\t\t\t<td>A connection service, your own account with each channel and a scheduled task on your website<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<th scope=\"row\">What it costs, as a category<\/th>\n\t\t\t<td>Usually part of the booking software you already have<\/td>\n\t\t\t<td>A subscription of its own<\/td>\n\t\t<\/tr>\n\t<\/tbody>\n<\/table>\n\n<h2>When iCal is enough<\/h2>\n\n<p>iCal sync is the right tool for a simple set-up, and there is no reason to pay for more than you need. It fits when most of these are true:<\/p>\n\n<ul>\n\t<li>You let whole units one at a time: a holiday apartment, a cottage, a cabin.<\/li>\n\t<li>You have only a few of them, on one or two booking sites.<\/li>\n\t<li>Your prices are the same everywhere, or you are content to type them into each site by hand.<\/li>\n\t<li>Your guests book well ahead, so a delay of a few hours rarely matters.<\/li>\n<\/ul>\n\n<p>The first point matters most. A calendar event says &#8220;taken&#8221;. It cannot say &#8220;one of six taken&#8221;. For a listing that is a single apartment, &#8220;taken&#8221; is the whole truth. For six identical double rooms sold as one room type, it is not.<\/p>\n\n<p><strong>With Solidres:<\/strong> this is how the import behaves. One event in an imported feed blocks every room of the room type for those dates. If each of your apartments is a room type of its own with a single unit, that is exactly what you want. If a room type holds several rooms, the first booking on the other site closes all of them.<\/p>\n\n<h2>When it is not<\/h2>\n\n<p>Any one of these is a sign that you have outgrown a calendar feed:<\/p>\n\n<ul>\n\t<li>You have several rooms of the same type.<\/li>\n\t<li>You sell on more than two channels.<\/li>\n\t<li>Your rates change by season or by day of the week.<\/li>\n\t<li>You have minimum-stay or closed-to-arrival rules that the channels must respect.<\/li>\n\t<li>Your guests book at the last minute, when a delay of a few hours matters most.<\/li>\n\t<li>You want to close the channels on dates that will fill anyway, while your website keeps selling.<\/li>\n\t<li>You need the guest&#8217;s name before they arrive, without looking it up on each site.<\/li>\n<\/ul>\n\n<p>What these have in common is that your website and the channels need to <a href=\"https:\/\/www.solidres.com\/blog\/2026\/09\/21\/your-own-booking-channel-why-a-small-property-cannot-live-on-otas-alone\/\">share one inventory, with your own booking channel as the master<\/a>. A list of busy dates is not an inventory.<\/p>\n\n<h2>Which one do you need?<\/h2>\n\n<p>Answer five questions about your own property:<\/p>\n\n<ol>\n\t<li>How many units of each type do you have?<\/li>\n\t<li>How many booking sites do you sell on, besides your own website?<\/li>\n\t<li>How often do your prices change?<\/li>\n\t<li>How close to arrival do your guests book?<\/li>\n\t<li>Is there any rule, such as a minimum stay, that the booking sites have to follow?<\/li>\n<\/ol>\n\n<p>If every answer is a small one (one unit of each type, one or two sites, prices that rarely change, guests who book weeks ahead, no rules to enforce), start with iCal. If any answer is not, you would be asking a calendar feed to do a job it was not built for, and a channel manager is the tool.<\/p>\n\n<p>Solidres does both, so you can start with one and move to the other without changing your booking engine. For the lighter route, read <a href=\"https:\/\/www.solidres.com\/documentation\/joomla-documentation\/13-configuration\/67-how-to-configure-ical\">how to configure iCal in Solidres<\/a>. For the full connection, read <a href=\"https:\/\/www.solidres.com\/subscribe\/channel-manager\">what the Solidres Channel Manager does and what it needs<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you sell the same room on your own website and on one or more booking sites, something has to tell each of them when a night is sold. When nothing does, two guests book the same room, and one of them gets a phone call nobody wants to make. There are two ways to [&#8230;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13,1],"tags":[21,32,15],"_links":{"self":[{"href":"https:\/\/www.solidres.com\/blog\/wp-json\/wp\/v2\/posts\/1309"}],"collection":[{"href":"https:\/\/www.solidres.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.solidres.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.solidres.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.solidres.com\/blog\/wp-json\/wp\/v2\/comments?post=1309"}],"version-history":[{"count":1,"href":"https:\/\/www.solidres.com\/blog\/wp-json\/wp\/v2\/posts\/1309\/revisions"}],"predecessor-version":[{"id":1310,"href":"https:\/\/www.solidres.com\/blog\/wp-json\/wp\/v2\/posts\/1309\/revisions\/1310"}],"wp:attachment":[{"href":"https:\/\/www.solidres.com\/blog\/wp-json\/wp\/v2\/media?parent=1309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.solidres.com\/blog\/wp-json\/wp\/v2\/categories?post=1309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.solidres.com\/blog\/wp-json\/wp\/v2\/tags?post=1309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}