Guide
Why Is My Calendar Not Syncing? A Diagnostic Walkthrough
The seven most common reasons calendars stop syncing across Google, Outlook, iCloud, and Android. Diagnose your specific failure in under five minutes.
If you opened this page, something on one calendar isn’t showing on another. The fix depends on which two calendars and which direction the sync is broken. Walk through the checks in order; most failures resolve in one of the first three.
Step 1: Confirm which direction is broken
Open both calendars side by side and create a test event on each.
| Test event | Where you created it | Where it should appear | Did it? |
|---|---|---|---|
| ”TEST A” | Calendar #1 | Calendar #2 | yes/no |
| ”TEST B” | Calendar #2 | Calendar #1 | yes/no |
If only one direction is broken, the issue is on the broken-direction’s receiving end. If both directions are broken, the issue is in the sync layer itself (connection, scope, or service outage).
Step 2: Check OAuth / connection status
The sync requires both calendars to be reachable with valid credentials. Most “sync stopped working” tickets resolve here.
Google Calendar:
- Go to https://myaccount.google.com/permissions.
- Look for the sync tool (SyncCal, Zapier, Notion, etc.).
- If it’s missing, the OAuth token was revoked. Reconnect from the sync tool.
- If it’s present but you changed your Google password recently, sometimes the token is silently invalidated. Reconnect.
Microsoft Outlook / Microsoft 365:
- Go to https://account.microsoft.com/privacy → “Apps and services that can access your data”.
- Same check: the sync tool should be present and granted Calendars.ReadWrite.
- M365 tenant admins can revoke third-party app consent globally. If your account is managed, ask your admin to check.
Apple iCloud:
- iCloud uses app-specific passwords (CalDAV). Go to https://appleid.apple.com → Security → App-Specific Passwords.
- If you changed your Apple ID password, every existing app-specific password is invalidated. Generate a new one and update it in the sync tool.
Step 3: Check calendar selection
Sync tools mirror specific calendars, not entire accounts. If you recently created a new calendar on the source side, it’s not automatically included.
In the sync tool:
- Open the source account’s calendar list.
- Confirm the calendar you’re missing events from is checked.
- Save. Re-run the initial sync if the tool prompts.
Step 4: Check event filters
If the sync tool offers filters (categories, keywords, attendee count, all-day vs timed), an overly aggressive filter may be silently excluding the event.
- Open the sync rule settings.
- Look for “exclude if title contains”, “exclude if calendar = X”, “skip all-day events”, etc.
- Confirm the missing event doesn’t match an exclusion.
Step 5: Check the event itself
Some events legitimately don’t sync:
- Events older than the sync window. Most sync tools mirror the last 30 days and next 90 to 180 days, not your entire history.
- Declined events. If you declined an invite, it may not be mirrored. Check the sync tool’s “treat declined as no” setting.
- Events on a hidden calendar. Hiding a calendar in Google or Outlook does not affect the API but some sync tools defensively skip hidden calendars. Unhide and re-test.
Step 6: Check the recipient calendar’s limits
Microsoft Graph and Google Calendar API both have per-day write limits:
- Google Calendar: ~1,000 event writes per day per account on the free quota.
- Microsoft Graph: 10,000 requests per 10 minutes per app per account.
If you just did a bulk import or are syncing a calendar with hundreds of recurring events, you may have hit a rate limit. Wait an hour and check again. If it recurs, contact the sync tool to ask whether they batch-create efficiently.
Step 7: Check for service incidents
- Google Workspace status: https://www.google.com/appsstatus
- Microsoft 365 status: https://status.office.com
- Apple System Status: https://www.apple.com/support/systemstatus/
iCloud CalDAV in particular has occasional multi-hour outages that don’t always show on Apple’s status page. Reddit’s r/calendly and r/google calendar threads are sometimes faster.
When to escalate to your sync tool’s support
If you’ve checked steps 1 through 7 and the sync is still broken, file a ticket and include:
- Both calendar account types (e.g., “personal Outlook.com → work Google Workspace”).
- The direction that’s failing.
- The OAuth status check result from step 2.
- A specific test event ID (right-click → “Get event link” in Google; or open the event in Outlook → ”…” → Copy link).
- The approximate time the sync last worked.
A specific event ID lets support trace the exact API call in their logs, which is the difference between “we’ll investigate” and a fix within the hour.
If you’re not using a sync tool yet
You’re probably here because you’ve been manually keeping two calendars in sync (forwarding invites, ICS subscriptions, copy-paste). That’s brittle by design. A proper sync engine fixes the seven categories above in a single setup and keeps fixing them as accounts change. SyncCal’s free plan covers two calendars and 50 syncs per month, which is enough to validate that your specific pair works before you commit.