Skip to main content
If a provider’s real commitments live in Google, Outlook or a therapy network, ClinikEHR needs to know about them — otherwise your booking page happily offers a slot that is already gone. Connecting a calendar brings those events into ClinikEHR so availability is calculated against them.

Two ways in, and they are not the same

The tab has two sections, and picking the right one saves a lot of confusion. A subscription is read-only in the strictest sense: ClinikEHR reads those calendars and never writes back to them. Nothing you do in ClinikEHR appears on the subscribed calendar.

Subscribe to a calendar

1

Get the secret .ics link from your calendar

The tab’s How to connect a calendar panel gives the path for each provider. In short: Google — Settings → your calendar → “Integrate calendar” → the Secret address in iCal format. Outlook / Microsoft 365 — Settings → Calendar → Shared calendars → Publish a calendar → the ICS link. Apple iCloud — make the calendar public and copy the shared link. Headway, Alma, Rula and Grow Therapy — enable calendar export in your account settings and copy the personal iCal feed URL.
2

Select Add calendar

A sheet opens with a Calendar URL field.
3

Paste the link and select Test connection

You get a preview before you commit anything: the calendar’s name, how many upcoming events it holds, a sample of them, how many are recurring series, and how many all-day events will be skipped. If the preview is empty or wrong, you have the wrong link.
4

Name it and assign it

Give it a Display name you will recognise in a list. Assign to staff is optional but is what ties the calendar to a person’s availability. Set the Default venue to In person or Online.
5

Choose a Sync frequency

From Every 15 minutes through Hourly to Daily. Pick against how often that calendar actually changes — see the honest note below.
6

Select Connect & import

The first sync runs immediately and reports what it found: so many new, so many updated, so many cancelled.

Connect a Google or Outlook account

Under Connected Accounts, select Google or Outlook and sign in. Each staff member links their own account — you cannot connect a colleague’s calendar for them, and trying produces “That calendar can only be connected by its own staff member.” Once connected, choose which of that account’s calendars to sync. The row shows Connected with a count of calendars syncing, and gives you Sync now and a way to disconnect. If the badge turns to Reconnect, the permission has lapsed at the provider’s end — sign in again from that row. An owner or manager can also set a clinic-wide policy for how much patient identity appears on synced calendars, on the same tab. Set that before you connect anyone.

What a synced event actually does

This is the part people expect to work differently than it does.
  • A synced event blocks a slot. It does not become a ClinikEHR appointment. There is no patient, no service and no invoice behind it. It is a hole in the diary.
  • Whether it blocks at all is a per-calendar switch. Each row toggles between Blocks booking and Info only. On Blocks booking, events prevent that provider being booked. On Info only they are visible but do not protect anything. Get this wrong and you either double-book or block a day for no reason.
  • All-day events are skipped, and the preview tells you how many will be. An all-day “Conference” does not close the day; block the day in Booking Settings instead.

Sync is on a schedule, not instant

Set expectations with your team here. A calendar is fetched on the frequency you chose — as often as every 15 minutes, as rarely as daily — so an event added elsewhere five minutes ago is very likely not in ClinikEHR yet. Each row shows when it last synced and how often it runs, and Sync now pulls immediately when you need certainty before booking someone in. If a feed fails repeatedly it is paused automatically, and the tab shows an amber banner saying so. Check the URL, then re-enable it.
Treat a secret .ics link like a password. Anyone holding it can read that calendar. Only owners can reveal a stored URL on this tab, and it is masked for everyone else.

Check it worked

  • The feed row shows a Synced time and its interval.
  • An event you know about appears on the clinic calendar at the right time.
  • That provider’s slots for that period are no longer offered on your booking page — check it signed out, as a patient would.
  • The row shows Blocks booking, not Info only, if you meant it to protect the diary.

If something goes wrong

You almost certainly copied the calendar’s public web link rather than its secret .ics address. Go back to the provider and take the iCal / ICS link specifically. If it starts webcal://, change that to https://.
The feed is set to Info only. Select the badge on the row to switch it to Blocks booking. Also check the feed is assigned to the right staff member — an unassigned feed has no one’s diary to protect.
Sync runs on the interval you chose. Select Sync now on that row for an immediate pull, and shorten the interval if it matters routinely.
Repeated sync errors pause a feed rather than retrying forever. The usual cause is a link that was regenerated or revoked at the provider. Get a fresh link, edit the feed, then re-enable it.
All-day events are skipped on purpose — they are usually labels, not commitments. Block the day in your booking availability instead.
Each staff member connects their own. Ask them to open the tab and connect it themselves.
A subscription is one-way — ClinikEHR reads it and never writes to it. If you want your ClinikEHR appointments to appear in Google or Outlook, use Connected Accounts instead, which syncs both ways.

Appointments

Booking, rescheduling and the clinic calendar.

Your booking page

The public page whose availability these calendars protect.