Apple iCloud ↔ Microsoft Teams
Sync iCloud Calendar with Microsoft Teams (Consultant Pattern)
Get your Apple iCloud events visible inside a client's Microsoft Teams without giving them direct iCloud access. CalDAV on the Apple side, Microsoft Graph on the Teams side.
How to sync Apple iCloud with Microsoft Teams
About 7 minutes. No credit card required.
-
Generate an iCloud app-specific password
At appleid.apple.com, under Security, generate an app-specific password labeled SyncCal. iCloud's CalDAV endpoint requires this; your main Apple ID password will not work.
-
Sign in to SyncCal
Open app.sync-cal.com and create an account. The free plan covers two calendars, which is exactly this pair.
-
Connect iCloud
Add iCloud and enter your Apple ID plus the app-specific password. SyncCal speaks CalDAV directly to iCloud's calendar server.
-
Connect the Microsoft 365 account behind Teams
Add Microsoft and OAuth the account whose Teams calendar should surface iCloud events. For consultants, this is typically a client's tenant. Each tenant requires a separate OAuth grant.
-
One-way iCloud to Microsoft with Busy-title rewrite
One-way is the right choice here: you do not want client meetings landing on your personal iCloud, but you do want the client's Teams to know when you are unavailable. Busy-title rewrite hides the iCloud event titles.
-
Verify in Teams
Open Calendar in Teams in the client tenant. iCloud events appear as Busy placeholders within a minute. Test by creating a personal iCloud event 30 minutes from now and refreshing Teams.
When this exact pair makes sense
This page exists for the consultant or contractor pattern: you live on Apple iCloud for personal scheduling, and Microsoft Teams is where you operate inside a client’s organization. The same setup applies to:
- A freelancer with personal iCloud and a client M365 tenant.
- A board member or advisor whose personal calendar is iCloud and the board organization uses Microsoft 365.
- An academic or clinician with iCloud at home and a hospital-issued Microsoft account at work.
In every case, the goal is the same: the Microsoft Teams calendar should reflect when you are truly busy without leaking the titles of your personal commitments.
How the privacy works
When Busy-title rewrite is on (the default for cross-account mirrors), the mirrored Microsoft event has these properties:
- Subject: “Busy”
- Body: empty
- Location: empty
- Attendees: empty
- Show as: Busy
What appears on the client’s Teams calendar is a time block. Colleagues see that you are unavailable. They do not see what you are doing. The original iCloud event on your Apple device is unmodified.
Read alongside this page
- Sync iCloud Calendar with Outlook for the same iCloud setup with Outlook as the target (the underlying mechanic is identical since Teams reads the M365 mailbox).
- Sync Outlook Calendar with Teams for the cross-tenant Microsoft-to-Microsoft pattern that often goes alongside this one.
- SyncCal for consultants for the role-level playbook covering this and the broader consultant setup.
For the CalDAV-versus-OAuth background and why iCloud needs app-specific passwords, see the CalDAV glossary entry and OAuth for calendars.
Limits worth knowing
- iCloud CalDAV occasionally has multi-hour outages that Apple’s status page does not always reflect. SyncCal logs the gap and resumes when iCloud is back, but during an outage Teams will not reflect new iCloud events.
- Microsoft Graph rate limits cap writes at 10,000 per 10 minutes per app per account. A consultant with a few dozen calendar events per week will never approach this limit. A consultant with hundreds of recurring meetings per week could.
- Teams does not show event colors, categories, or any iCloud-specific extension. The mirror is a plain time block.
Questions about Apple iCloud and Microsoft Teams sync
Why would a consultant need iCloud-to-Teams sync?
Consultants who work across multiple client tenants often run their personal calendar on Apple iCloud and have a separate Microsoft 365 account in each client's tenant for client work. When a client books a meeting via Teams or Microsoft Bookings, they should see the consultant's true availability including personal commitments on iCloud, but should NOT see the personal event titles. iCloud-to-Teams sync with Busy-title rewrite is exactly that.
Does the client's IT admin need to do anything?
SyncCal will appear as an OAuth app in their tenant's app inventory once you grant it. Most enterprise admins do not block this Calendars.ReadWrite scope for individual users. If the tenant has strict third-party app review, you may need to submit SyncCal for approval (same as any productivity tool).
Can multiple iCloud calendars be synced into the client's Teams?
Yes. After connecting iCloud, SyncCal lists every visible iCloud calendar. Pick which ones the client should see your availability for. Family-shared calendars are commonly excluded.
What if I have multiple clients each on a separate tenant?
Each tenant needs its own OAuth grant in SyncCal. You will end up with one Microsoft connection per client and a single iCloud source feeding all of them. Each can have independent direction and privacy settings.
How fast does this sync?
iCloud CalDAV polls every 60 seconds on SyncCal's side. Microsoft Graph writes are immediate. End-to-end iCloud event to Teams visibility is 60 to 90 seconds.
What if I leave the client engagement?
Revoke the SyncCal OAuth grant in the client tenant's app inventory (Microsoft account admin can also revoke). The mirrored Busy placeholders on the client Teams calendar can be batch-deleted via SyncCal's cleanup tool, or left in place if the engagement ended on good terms.