Apple Calendar
BuildingCalendars by Apple Inc.. In development.
iCloud availability and events over CalDAV, with an app-specific password.
There is nothing to connect yet. Setupp will not show you a button for something it cannot do, so there isn’t one on this page.
Where it stands
What is in the way
Written and tested, but not yet against a real iCloud account. It goes live once that test passes, because a calendar that looks connected and reads nothing is worse than none.
Status here is not a marketing word. In development is read from the same catalogue the dashboard and the health endpoint read, so it changes when the code does and not before.
How it works
What exists today
There is no OAuth. A host generates an app-specific password at appleid.apple.com and pastes it in, which means the credential passes through Setupp rather than staying between the host and Apple. It is encrypted with AES-256-GCM before it touches the database, and a deployment with no encryption key refuses to store one at all rather than keeping a password in a column.
Availability comes from a CalDAV calendar-query with the expand element set, so the server returns each occurrence of a recurring event as its own entry with concrete times. Reading the raw entry instead would see a weekly standup once, at its first occurrence, and offer every Tuesday after that.
Events are written as a complete iCalendar resource with the connected account named as the organiser. iCloud accepts one without an organiser, stores it, and then sends nobody an invitation, because there is no address for a reply to go to.
Rescheduling reads the existing event and writes it back conditionally on the copy it read, so an edit made on somebody's phone between the two is a refused write rather than a silent overwrite. The revision number is incremented, without which every attendee's calendar quietly keeps the old time.
There is no meeting link. iCloud cannot create one, and Setupp does not invent a URL that will not resolve. An Apple-organised event that needs a link uses Zoom, which is a separate connection.
Data
What it would access, once it exists
Nothing. There is no connection to make, so there is no data to touch.
No OAuth scopes are requested, because there is nothing to authorise yet.
The full table, including what Setupp never does with any of it, is on the integrations overview.