ConnectWiz + Apple Calendar

Live integration

Apple Calendar: bookings out, busy time in

Appointments made in ConnectWiz appear in Apple Calendar and disappear on cancel — and events already in Apple Calendar subtract from availability, so the AI never offers Thursday 15:00 when your calendar has the dentist there.

Events push out Busy time subtracts Role & direction per source
Apple Calendar × ConnectWiz
Booking → calendar event
Busy block → availability minus
Read / write / both / busy-only
4
Fields pushed per event — title, note, start, end. No attendees, no invites, nothing else leaves
3
Independent axes per source — feeds bookings in, mirrors bookings out, blocks availability
Null ≠ 0
"Couldn’t read your calendar" is never treated as "you’re free"
1
Booking ledger — calendars mirror and inform it; none of them becomes the master

Calendars

What it does — precisely

Push, with cleanup

New bookings create events in Apple Calendar; cancellations remove them. The practitioner’s calendar is never a day behind the diary.

Busy time counts

External events subtract from availability before any door — panel, AI, flow or widget — offers a slot. Double-booking against your personal life is blocked too.

Direction is a setting

Per connected source you choose: read from it, write to it, both, or busy-only — so a shared clinic calendar and a personal one can play different roles without a fight.

Under the hood

Sync semantics that don’t double-book you

CalDAV with an app-specific password

Apple’s supported third-party door is CalDAV: you mint an app-specific password in your Apple ID (your real password never leaves Apple), and events read and write against your iCloud calendar collection over the open standard.

Roles are three axes, not one dropdown

Per source you set whether it feeds bookings in (never, one-time import, or continuously), whether bookings mirror out to it, and whether its busy time blocks availability — a shared clinic calendar and a personal one can play entirely different roles.

Fail-closed where it must

A calendar that only blocks availability fails closed on a read error — unknown busy time blocks bookings rather than permitting a collision. A source that feeds the ledger fails open. Getting this line wrong is the single most expensive mistake in calendar sync, so it’s a rule, not a mood.

Self-healing connections

A connection that errors is marked so, with the reason — and the next successful read clears it automatically. An outage that ends doesn’t need a human to come and un-tick anything.

Minimal event payloads

What lands in your calendar is the booking type’s name, the guest’s name and notes, and the times — no attendee invitations, no conference links, no reminder overrides. Your calendar clients stay in charge of their own noise.

Conflicts have a declared policy

When two-way editing lands, every source will already carry a conflict policy — hold for a human (the default, which also pauses reminders), ours wins, or theirs wins, with the losing version kept and shown. Declared before it’s needed, because retrofitting a conflict policy mid-incident is how data disappears.

Setup

How it connects

01

Connect Apple Calendar

Connect via CalDAV with an app-specific password from your Apple ID.

02

Assign its role

Read, write, both, or busy-only — per calendar.

03

Book anywhere

Panel, AI, flow or website widget — every door sees the same subtracted availability.

Better together

What it composes with

The booking engine

Availability, buffers, notice windows and overlap-proof holds live in the booking system — the calendar feeds it truth.

Wiz books safely

The AI agent offers only slots that survive the busy-time subtraction — a database constraint, not a hope, prevents the double-book.

CRM diaries

Running Estesoft Stella? Its diary and your calendar both subtract from the same availability — see the Stella integration.

Security & guarantees

The boring guarantees

Minimal scopes

The connection asks for calendar access only — no mail, no contacts, no drive. Tokens are encrypted at rest and refreshed automatically.

Your events stay yours

Busy-time reads pull times, not contents — availability math needs to know that you’re busy, not why.

Disconnect is clean

Removing a connection stops sync immediately; mirrored events already in your calendar remain yours to keep or clear.

The honest fine print

Boundaries, stated

The ledger stays ours

Whatever calendars connect, the booking ledger remains ConnectWiz’s own table — calendars are mirrors and sources, never the master. That’s a design position, stated.

Reminders are ours, not the calendar’s

Booking reminders send from ConnectWiz — email, and SMS where configured — rather than as calendar notifications, so they reach guests who never opened a calendar invite. Stated, because two reminder systems firing is worse than one.

Apple Calendar FAQ

Straight answers

More in the full FAQ, or ask us directly.

Bookings push out as events (and are removed on cancel), and busy time pulls in to subtract from availability. Each source carries its own role — read, write, both, or busy-only.

No — availability is computed after subtracting external busy time, and overlapping holds are rejected by a database constraint that no booking door can bypass.

It’s Apple’s supported door for third-party calendar access — standard, stable, and it works with iCloud calendars without private APIs.

Because Apple offers no OAuth for calendar data — CalDAV with an app-specific password is their supported mechanism. It’s an open standard, it’s revocable from your Apple ID at any time, and it doesn’t expire under you.

An event titled with the booking type, holding the guest’s name and any notes, at the booked time — created on booking, removed on cancel. No attendee invites are sent from your calendar, and nothing else in it is touched.

Connected honestly beats connected loudly.

Every integration here is described by what it really does — direction, ownership and limits included.