openchair
FeaturesPricingAbout
Sign InStart Free Trial
Help Centre

Bookings

  • Blocking Out Time
  • Using the Calendar
  • Booking Inspector & Quick Actions
  • Booking Rules & Policies
  • Calendar Sync (Google + Outlook)

Bookings

Calendar Export (iCal Subscription)

Last updated 19 May 2026

Calendar Export (iCal Subscription)

Subscribe your personal Google Calendar, Apple Calendar, Outlook, or any iCal-compatible app to your OpenChair bookings via a signed feed URL. Read-only, per-staff, with optional client-name privacy. Distinct from the two-way Calendar Sync — this is a lightweight one-way mirror.

Where to find it — Web: Settings → Calendar sync → Other ways to subscribe (collapsed accordion below the primary Calendar Sync card). Mobile: Calendar sync screen → same accordion.

TL;DR

  • One-way read-only mirror of your bookings to your personal calendar.
  • Each staff member has their own signed iCal URL.
  • Optional Include client names toggle (off by default for privacy).
  • 30 days back to 12 months ahead window. All plans.
  • For two-way sync (push bookings out + block bookable slots from external events), use Calendar Sync instead.

iCal Subscription vs Calendar Sync

Feature iCal Subscription (this doc) Calendar Sync
Direction One-way (OpenChair → your calendar) Two-way (push bookings out + pull external events to block slots)
Supported apps Any iCal-compatible app — Apple Calendar, Google, Outlook, Fantastical, Thunderbird Google + Microsoft Outlook only
Auth HMAC-signed URL OAuth
Read/write Read-only Read + write
Refresh Your calendar app polls (hours to a day) Live push notifications + cron fallback
Tier All plans Google FREE, Microsoft PRO
Use case Lightweight glance at your schedule from your own calendar Full two-way integration with conflict detection

Most operators want Calendar Sync. iCal Subscription is for:

  • Calendar apps that aren't Google or Outlook
  • Lightweight one-way visibility (e.g. a stylist who just wants to see their roster in Apple Calendar without bidirectional sync)
  • Backup view if Calendar Sync OAuth lapses

Getting your iCal URL

  1. Open Settings → Calendar sync.
  2. Expand Other ways to subscribe.
  3. Copy your personal URL: https://openchairpro.com/api/calendar/{staffId}/{token}.ics
  4. Paste into your calendar app's "Subscribe to calendar" dialog.

The URL is per-staff, not per-venue. Each team member gets their own URL with their own bookings only.

Apple Calendar (macOS / iOS)

  • Mac: File → New Calendar Subscription → paste URL → Subscribe
  • iOS: Settings → Calendar → Accounts → Add Account → Other → Add Subscribed Calendar → paste URL

Google Calendar

  • Open Google Calendar on web (not the app — Google forces the add-by-URL flow through the web UI).
  • Other calendars → + → From URL → paste → Add calendar.
  • Mobile Google Calendar app then picks up the subscribed calendar automatically.

Outlook

  • Outlook desktop / web → Add calendar → Subscribe from web → paste URL → save.

Any other iCal app

If the app supports "Subscribe to calendar from URL", paste your URL. The feed is RFC 5545-compliant iCal.

Privacy: client names

Toggle Include client names under your iCal feed config:

Setting Event summary on your personal calendar
Off (default) Balayage (service name only)
On Sarah J — Balayage (redacted name + service)

Names are redacted to first name + last initial when on (redactName helper) — not full names. The UI warns: "Only enable this if your personal calendar is private" since iCal URLs are sometimes scraped by enterprise calendar systems or shared accidentally.

If your personal calendar is shared with family, colleagues, or company management, leave it off — they don't need to see your salon's client roster.

Regenerating your URL

If your URL is compromised (you shared it accidentally, posted on a public forum, etc.):

  1. Settings → Calendar sync → Regenerate iCal URL
  2. Confirm — old URL stops working immediately.
  3. Copy the new URL and update your calendar app subscription.

Regenerating issues a new salt that invalidates every previously-distributed URL for your staff record.

What's in the feed

  • Window: 30 days back to 12 months ahead. Older / further-out bookings not included.
  • Status filter: includes pending, confirmed, arrived, cancelled, no_show.
  • Status mapping: pending → TENTATIVE; cancelled / no_show → CANCELLED; others → CONFIRMED.
  • Timezone: each event has DTSTART;TZID={venueTimezone} plus a proper VTIMEZONE block with DST transitions, so apps display the correct local time wherever you are.
  • Title: service name (+ redacted client name if toggle is on).
  • Status changes: the next time your calendar app polls, updated bookings update on your side too.

Caching and refresh

We send Cache-Control: no-cache, no-store, must-revalidate so your calendar app doesn't cache the feed. But how often it asks for an update is up to the app:

  • Apple Calendar: hourly by default (configurable in Calendar → Preferences → Accounts → Refresh Calendars)
  • Google Calendar: every few hours; controlled by Google, no user setting
  • Outlook: variable; typically every 1-6 hours
  • Fantastical, Thunderbird: configurable in each app

If you need real-time sync, use Calendar Sync (two-way OAuth integration).

Read-only

The iCal feed is one-way. You can't:

  • Drag an event in your personal calendar to reschedule the booking
  • Cancel a booking from your calendar
  • Add events to OpenChair from your calendar (use Calendar Sync for that)

If your calendar app lets you "edit" the event, the edit stays local — it doesn't sync back to OpenChair, and the next refresh overwrites it.

Tier

All plans. No PRO requirement.

Multi-venue

If you have access to multiple OpenChair venues, each venue generates a separate iCal URL for your staff record at that venue. Subscribe each separately.

Security

  • HMAC-SHA-256 signed with platform secret
  • Per-staff salt makes URLs unguessable
  • Regenerate at any time to invalidate compromised URLs
  • UUID-shape pre-check rejects bot probes before the database
  • Timing-safe signature comparison

Common mistakes

Problem What to check
Subscription added but no events show Confirm the URL was pasted correctly. Try the URL in your browser — it should return iCal text. Wait for your calendar app's next refresh.
Old bookings still show after cancellation Cancelled bookings stay in the feed as CANCELLED until they age out of the window. Most calendar apps strike them through.
Events show wrong time Check the time zone on your calendar app. Each event has a venue-timezone TZID; your app needs to honour it.
Want to see other staff's bookings iCal feed is per-staff. To see venue-wide bookings, use the OpenChair web/mobile calendar directly.
URL doesn't work in browser Confirm the URL is complete — copy from the settings page, don't reconstruct.
Refresh is too slow Calendar apps decide their own refresh cadence. For real-time, use Calendar Sync (two-way OAuth).

FAQ

How is this different from Calendar Sync?

Calendar Sync is two-way (Google + Outlook) — bookings push out and external events block your bookable slots. iCal Subscription is one-way read-only — you subscribe your personal calendar to OpenChair's feed and see bookings mirrored, but nothing flows back. For most operators, Calendar Sync is the better choice; iCal is for when you want a lightweight one-way mirror or when you're using a non-Google/non-Outlook calendar app.

Where do I get my iCal URL?

Settings → Calendar sync → expand 'Other ways to subscribe'. Each staff member has their own personal URL (signed with their staff ID + a salt). Copy the URL and paste it into your calendar app's 'Add subscription' or 'Subscribe to calendar' dialog.

Will my customer's name show up on my personal calendar?

Only if you toggle 'Include client names' on for your feed. Off by default — your subscribed calendar shows just the service name ('Balayage'). Toggle on to see 'Sarah J — Balayage'. The privacy hint says 'Only enable this if your personal calendar is private.'

How often does the calendar refresh?

Depends on your calendar app. Google Calendar polls roughly every few hours; Apple Calendar hourly by default (configurable); Outlook variable. The feed itself is fresh on every request — we just can't force your app to refresh faster than it wants to.

Can I subscribe my customers to my schedule?

No — the feed is private to you (signed per-staff). For sharing your schedule with customers, use your storefront's booking page — they see real-time availability there.

What if my iCal URL leaks?

Regenerate from Settings → Calendar sync → Regenerate iCal URL. The old URL stops working immediately. Update your calendar app with the new URL.

Related Articles

  • Calendar Sync (Google + Outlook)
  • Using the Calendar
  • Staff Schedules & Availability
openchair

The operating system for high-end service venues. Built in Australia for the world.

Product

  • Features
  • Pricing
  • AI Features
  • Mobile App
  • Online Booking
  • AI Concierge
  • Sign In

Solutions

  • Hair Salons
  • Barbers
  • Beauty
  • Wellness & Spa
  • Nail Salons
  • Tattoo Studios

Compare

  • All comparisons
  • vs Fresha
  • vs Timely
  • vs Square
  • vs Booksy
  • vs Mindbody
  • vs Boulevard
  • vs Phorest
  • vs Mangomint
  • vs GlossGenius
  • vs Vagaro
  • vs Shortcuts
  • vs Acuity

Resources

  • Blog
  • Help Centre
  • Guides
  • Glossary

Company

  • About
  • Contact
  • Book a Demo
  • Founding Members

Legal

  • Privacy
  • Terms
  • Cookie Policy
  • Sub-processors
  • Accessibility
  • Privacy Request

© 2026 OpenChair Platform. All rights reserved.

Made on the Goldie.