Skip to content

Powered by Grav CMS + Helios Theme

Calendar sync

Configure both calendar connections under KahunaCart → Bookings → People and places. They apply to rooms and equipment as well as people.

Calendar feed publishes bookings for a calendar app to subscribe to. New appointments, changes and cancellations appear when the app refreshes.

Block time from other calendars imports busy periods so those times are no longer offered to customers.

Before you begin

  • kahunacart.bookings.manage to create or revoke feed links and add or test outside calendars.
  • kahunacart.bookings.view to see that a link exists. The address itself is only shown once.
  • Access to the intended subscriber’s calendar app for setup.

Open the resource and press Make a link under Calendar feed. Copy the URL and share it with the intended subscriber.

Warning

Anyone with this link can read the calendar without signing in. Treat it like a password. If it is shared unintentionally, use Make a new link. The old link stops working immediately, so subscribers must replace it.

Use Take the link away to revoke access without creating a replacement.

Subscribe on a Mac

In Calendar, choose File → New Calendar Subscription, paste the link and press Subscribe. Set Auto-refresh to Every 5 minutes for frequent updates.

Subscribe on an iPhone or iPad

Open Settings → Calendar → Accounts → Add Account → Other → Add Subscribed Calendar. Paste the link, then press Next and Save. The feed requests a five-minute refresh interval.

Subscribe in Google Calendar

Under Other calendars, choose + → From URL. Paste the link and press Add calendar.

Google controls how often it refreshes subscriptions. Updates may take hours to appear, and the store cannot force a refresh. Use the booking diary when you need current availability.

Subscribe in Outlook

In Outlook on the web, choose Calendar → Add calendar → Subscribe from web. Paste the link and press Import. Outlook controls the refresh interval.

Choose which details to share

Choose the information to include under Plugins → KahunaCart Bookings → Calendar sync. You can override this for a resource on its own record, below the calendar link.

Choice What a subscriber sees
Everything Service, customer first name and last initial, selected option, party size, phone number, notes and booking link.
Initials The service and the customer's initials, with the option, the number and the link. No telephone number and no notes
Just busy "Busy", and the time. Nothing else at all — not even what the service was

Choose Initials when the subscriber does not need full customer details.

Pending bookings are published as tentative. Cancelled bookings leave the feed and are removed when the calendar app next refreshes.

Import busy times

Open the resource and paste the URL under Block time from other calendars. Add a recognisable label, such as “Ann’s Google calendar”.

Press Test before you add the calendar. Check the reported busy periods against the source calendar, for example "12 busy times in the next 30 days." If the fetch fails, the test explains why.

Saved URLs are masked. The row shows the label, host, final six characters and last successful fetch. To change a URL, paste a replacement. Remove deletes it; you will need the original URL to add it again.

Find the calendar URL

  • Google Calendar — Open Settings, select the calendar under Settings for my calendars, and copy Secret address in iCal format. A public URL works only for a public calendar.
  • Apple iCloud — In Calendar on iCloud.com, open the calendar’s sharing options, enable Public Calendar and copy the link. A webcal:// URL is accepted and converted to https://.
  • Outlook or Microsoft 365 — Open Calendar → Share → Publish a calendar, select the calendar and Can view all details, then copy the ICS link.

Supported calendar URLs

Use an https:// or webcal:// URL. Plain http:// URLs are refused to protect the calendar address and contents in transit; fetching over http would allow changes to busy periods in transit.

The importer refuses URLs pointing to this server or private networks, including redirects to those destinations. This prevents calendar URLs from accessing internal services.

Imports allow at most two redirects and a two-megabyte file. Requests send no cookies or login credentials.

Handle a failed import

A failed import does not close the diary. The last successful copy is used for up to a day. After that, the feed is skipped and its busy periods no longer block availability.

This keeps appointments available during an external outage, but may allow bookings over times blocked in the unavailable calendar.

A dashboard warning identifies the failed calendar and remains until it loads successfully. Open the resource and press Test to diagnose the problem.

Outside calendars are advisory

Imported calendars affect which times the picker offers. A refresh does not invalidate a time already selected for payment. Reservations within your shop use separate checks to prevent double bookings.

Source Stops a time being offered Stops a booking being taken
Another booking, or a live hold Yes Yes
Working hours, time off Yes Yes
An outside calendar Yes No

Avoid importing your own bookings

If an outside calendar republishes bookings from your shop, the importer recognises and ignores them. This prevents a booking from blocking itself.

Imports expand recurring events, skip deleted occurrences and ignore events marked free.

Rental channel feeds

A property listed on Airbnb, VRBO or Booking.com has a separate channel link that can be revoked independently. Entries contain only dates and Not available. They exclude guest names, contact details, prices and booking management links.

Configure both directions: export your bookings and import the channel’s reservations. See Rentals → Channel sync for setup steps and refresh limitations.