
An ICS feed is a private web address that publishes your bookings as a calendar file, so Google Calendar, Apple Calendar or Outlook can display them without knowing anything about your booking system. It is one-way, it refreshes on the calendar app’s schedule rather than yours, and the URL works like a password. That makes it a good way to put bookings in front of staff, and a poor way to decide whether a time slot is still free.
This guide explains how an ICS feed works, how to subscribe to one, how fast changes really appear, what to do when it fails, and where a feed stops and a proper booking system takes over.
TL;DR
- An ICS feed is a URL serving a plain-text iCalendar file. Calendar apps fetch it repeatedly, so your bookings appear as a subscribed calendar.
- It is read-only and pull-based. Changes can take anywhere from minutes to a day to show, depending on the app.
- Treat the feed URL like a password. If it leaks, the only fix is to generate a new one and re-subscribe everyone.
- A feed shows dates and times. It does not handle payments, waivers, reminders or live availability.
- For live availability across several calendars, use a booking system with real-time calendar sync, such as Riddlio’s online booking calendar.
Table of Contents
- What an ICS feed is and how it shares bookings
- How to subscribe to an ICS feed
- How fast do bookings appear?
- One-way, read-only: what that means day to day
- Fixing common ICS feed problems
- Keeping your feed URL private
- When an ICS feed is enough, and when it is not
- A practical set-up for a multi-room venue
- Perspective
- Run your bookings in one place
- FAQ
- Sources
What an ICS feed is and how it shares bookings
An ICS file is a plain-text file in the iCalendar format. Each entry carries fields such as a start time, an end time, a summary and a unique identifier. When one file holds many entries and lives at a stable web address, you have a feed. A calendar app that subscribes to that address fetches it again and again, so the calendar follows a list that changes over time. That is the idea described in this explanation of the iCalendar format.
For a venue, the practical picture looks like this:
- Your booking system generates a feed containing upcoming sessions.
- You paste the feed URL into a calendar app on a manager’s phone or laptop.
- The app polls the URL on its own schedule and shows each booking as a calendar entry.
The key word is polling. An iCal connection is typically pull-based: the receiving side checks the feed on its own timetable instead of being notified the moment something changes, as this iCal glossary entry describes. Nothing is pushed to the calendar when a booking arrives.
What a feed can and cannot carry
An iCal feed can carry basic availability blocks, start and end times, and cancellations if the entry is published with a cancelled status. It does not carry rates, taxes, fees, descriptions or messages, and it handles few rules, according to the same glossary entry. Operationally that means a feed tells your team that a slot is taken. It does not tell them how many players, whether the waiver is signed, or whether the deposit has cleared.

One vacation-rental sync guide makes the same point about cleaning crews: they see booked dates but not guest counts or turnover windows, because the feed holds only dates and a basic status (GleamSync). Swap cleaners for game masters and the issue is identical. Your staff want to know the group size and the start time, not just that Saturday at 7 pm is busy.
How to subscribe to an ICS feed
The steps differ slightly by app, but the pattern is constant: find the option to add a calendar from a URL, paste the feed address, and name the calendar.
Google Calendar
On a computer, open Google Calendar, choose Other calendars, then From URL, and paste the link. Adding a feed by URL can only be done on the Google Calendar desktop website, not in the mobile app, according to Hospitable’s help article. Once added, the calendar usually appears on your phone as well.
If nothing populates or you get an invalid link message, swap webcal:// for https:// at the start of the address. The same article recommends that fix.
We have a longer walkthrough in our Google Calendar sync guide.
Apple Calendar
In Apple Calendar, choose File, then New Calendar Subscription, and paste the URL. Apple lets you set a refresh interval per subscription, from every few minutes to daily (Appntmnts). That is the most control any of the big three gives you. If your team relies on iPhones, our piece on stopping long sync delays in Apple Calendar covers the details.
Outlook
Outlook on the web has an option to add a calendar from the web by pasting the address. It refreshes whenever it chooses, so you cannot set the pace. For Microsoft 365 teams, see our guide to Outlook calendar sync for escape rooms.
Creating a feed from scratch
If you do not have a booking system that publishes a feed, a shared calendar can stand in. A public Google Calendar exposes a public address in iCal format that ends in .ics, per this event feed guide. The catch is obvious: you would be typing bookings in by hand, and a public calendar is visible to anyone with the link. For real booking data, publish from the system that takes the bookings.
How fast do bookings appear?
Slower than most operators expect. Subscribing is not syncing. The calendar app decides when to fetch, and the feed publisher has no control over it (Appntmnts).
| Calendar app | What to expect |
|---|---|
| Apple Calendar | Refresh interval you choose per subscription, from a few minutes to daily |
| Google Calendar | No interval setting; refreshes on its own schedule, with changes taking hours |
| Outlook on the web | Refreshes when it decides; no interval setting |
Source for the table: Appntmnts. One vendor’s documentation notes that calendar apps typically poll every 15 to 60 minutes, so new or updated events can take up to an hour to appear in a subscribing app (CalendarPipe docs). Google is the slow one: a Microsoft support thread says it can take up to 24 hours to refresh subscribed ICS feeds (Microsoft Q&A).
A travel platform’s help centre shows how a two-way set-up differs. It imports connected calendars every two hours and lets users trigger an import by hand with an Import now button (Booking.com for Partners). Even a deliberate schedule leaves a gap.
Why the gap matters for escape rooms
Because the feed is pull-based, there is always a window between a booking being made and it appearing elsewhere, and double bookings can happen inside that window (Hostaway). Escape rooms feel this more than most businesses. Your inventory is a handful of rooms and a fixed grid of start times. One missed update on a Saturday evening slot is a real group at your door.
The rule we give venues is simple: use a feed to look at bookings, never as the source that decides what is available. Availability should be decided in one place, by the system taking the bookings. Our guide on preventing double bookings at activity venues shows how to set that up.
Reschedules and cancellations
Each entry in a feed has a unique ID. When a calendar receives an event, it looks for an existing entry with the same ID and compares revision markers to decide whether the new copy replaces the old one. A reschedule therefore moves the entry rather than creating a duplicate (Appntmnts). That works well when the feed is built correctly. It still only happens when the app next fetches, so a same-day cancellation may sit on a staff calendar for hours.
One-way, read-only: what that means day to day
Subscribed feeds are read-only. A manager can see a booking in Google Calendar, but moving or deleting it there does nothing to the booking itself. One calendar vendor lists three recurring complaints about feeds: slow refresh leading to double bookings, missed changes after reschedules and cancellations, and having to switch back to the original platform because the feed cannot be edited (CalendarBridge).
In practice, set the expectation with staff: the feed is a window, not a door. Changes are made in the booking system. If someone drags a block in their calendar and nothing happens to the real booking, that is by design.
Fixing common ICS feed problems
Most failures come down to a handful of causes.
The calendar shows no events. Open the feed URL in a browser. It should download an .ics file. Open that file in a text editor and look for BEGIN:VEVENT blocks. If there are none, the feed is empty and the publishing side is not sending events (Microsoft Q&A).
The app says the link is invalid. Replace webcal:// with https://, and make sure you are adding it from the Google Calendar desktop site (Hospitable).
A Couldn’t fetch URL error. This usually means the link is not publicly reachable. Check that you copied the ICS link rather than the HTML link, and that the source calendar permits viewing details (Noota).
A connection status of Service error. In a two-way channel set-up, this status means there is a problem connecting. Check the import and export links and any other settings (Booking.com for Partners).
Changes are late. Usually not a fault. Refer back to the refresh table above, and use a manual refresh where the app offers one.

Keeping your feed URL private
Most calendar apps cannot log in to a feed, so the URL itself is the credential. A feed link should contain a long, unguessable token and offer a way to rotate it (Appntmnts). Anyone holding the link can read the calendar, so treat it like a password. Other sensible habits, from one product’s documentation, are using HTTPS, not logging full feed tokens, and keeping tokenised URLs out of public trackers, chat rooms and screenshots (IncidentRelay docs).
For a venue, a feed can expose customer names, group sizes and times. Share it only with staff who need it.
Rotating a leaked link
Rotation is the only remedy for a leaked feed URL. There is no way to revoke access for a single subscriber, so rotating breaks every legitimate subscriber at the same moment it breaks the unwanted one (RentTools). Regenerating the token also changes the URL, so everyone must re-add the feed (CalendarPipe docs).
The fix for the dread of rotating is a record. Keep a short note listing which people and tools use the feed, in the same place as your other system settings. The same RentTools article recommends exactly this kind of three-line note. Then a rotation is a ten-minute job instead of a mystery.
Private events deserve extra thought, because those bookings often include details a host expects to stay confidential. Worth a look: private game night booking details that venues are expected to handle carefully.
When an ICS feed is enough, and when it is not
A feed is enough when:
- You want owners, managers or game masters to see the day’s sessions in a calendar they already use.
- A delay of up to a few hours is harmless, such as for planning next week’s rota.
- Nobody needs to edit bookings from the calendar.
You need more than a feed when:
- Availability must be exact at the moment a customer clicks Book. Feeds are not ideal for live pricing, complex restrictions or multi-unit inventory where timing matters, and the usual advice is to move to a live API connection for busy dates (glossary entry).
- You take payments, deposits or waivers and need them tied to the booking.
- You need reminders, reporting or a record of who attended.
For escape rooms, that last list is the daily reality. If you are sorting through booking tools, our overview of escape room booking systems explains what to look for. And if you want a push-style alert instead of waiting for a poll, our guide to webhook booking notifications shows the alternative.
A practical set-up for a multi-room venue
Here is a sensible way to combine the pieces.
- Make one system the source of truth. All bookings, from your website, walk-ins and phone calls, are entered there.
- Subscribe staff calendars for visibility. Give each manager the feed or a synced calendar so they can see the day at a glance.
- Set the refresh interval where you can. On Apple Calendar, choose a short interval. On Google and Outlook, accept the delay and tell the team.
- Keep a feed register. Note who has the link, and when you last rotated it.
- Check the first session of the day by hand. A glance at the booking dashboard before doors open catches any stale calendar entry.
- Rotate the link when a staff member leaves. Subscribers who left with the link would otherwise keep seeing bookings.
Perspective
We built Riddlio for escape room operators, and the same question comes up again and again: how do I get my bookings into the calendar my team already looks at? A feed is a fine answer to that question, as long as it stays an answer to that question.
The trouble starts when a feed is asked to do the booking system’s job. Escape rooms sell a fixed number of rooms at fixed times, to groups, often with deposits and waivers attached. Availability has to be right when the player is on your booking page, not when a calendar app next feels like checking.
So our view is that bookings, availability, payments, reminders and reporting belong in one platform designed around how escape rooms work, with calendar sync as a way to show that data to your people. That is how we approach Google, Apple and Outlook sync: the booking platform stays in charge, and the calendars reflect it.
If your team lives in their calendars, that is a good thing. Give them what they need there, and keep the decisions in one place.
Iosif Beraru
Run your bookings in one place
Riddlio brings online bookings, availability, payments, customer communications and reporting together for escape room venues, with calendar sync to keep your team’s calendars in step. Plans are listed at Riddlio pricing: Starter is $29 per month, Pro is $79 per month and Unlimited is $199 per month, with Enterprise available on request.
If you also want to see how the pieces fit, our escape room management software page walks through scheduling, check-in and reporting. Related reading: our guide to event listing sites for organisers.
FAQ
What does ICS feed bookings mean?
It means publishing your bookings as a subscribable calendar file at a web address. Calendar apps fetch that address regularly and show each booking as an entry. The feed is read-only, so edits happen in the booking system.
How often does an ICS feed update?
That depends on the calendar app, not the feed. Apple Calendar lets you set an interval, while Google Calendar and Outlook refresh on their own timing. Google can take up to 24 hours in some cases, so do not rely on a feed for live availability.
Can I edit bookings from a subscribed ICS calendar?
No. Subscribed feeds are read-only, so moving or deleting an entry in your calendar does not change the real booking. Make changes in your booking system and let the calendar catch up on its next refresh.
Is an ICS feed URL secure?
Only as secure as you keep it. Anyone with the link can read the calendar, so share it with staff only and never post it in public places. If it leaks, generate a new URL and have every legitimate subscriber re-add the feed.
Why is my ICS feed empty or showing an error?
The usual causes are a link that is not public, a webcal:// prefix the app rejects, or a feed with no events. Open the URL in a browser and check the downloaded file for BEGIN:VEVENT entries. If you find none, the publishing side is not sending events.
Sources
- What Is An ICS File? iCalendar Explained
- iCal Connection glossary entry
- What Is iCal Sync? How Airbnb and VRBO iCal Links Work
- How can I add the iCal feed to the calendar on my device?
- How to create an event calendar (ICS) feed
- ICS Feed Subscription docs
- Outlook calendar showing empty on my Google Calendar
- How to synchronize your calendars across channels
- What is iCal? Hostaway glossary
- ICS iCalendar Feeds vs Real Time Sync
- Sync Outlook Calendar to Google Calendar
- ICS calendar feeds documentation
- iCal feed URL security: what your calendar link leaks
- Private Game Night Ideas: 10 Booking Details Venues Expect
