Calendar events missing on one device but not the other
An event exists on the iPhone and not on the Mac. Or it exists on the Mac, was edited an hour ago, and the version everyone else can see is still the old one. The instinctive response is to restart something, and restarting occasionally works, which is the worst possible outcome because it teaches nothing about what actually failed.
Calendar on macOS does not sync. It holds several accounts, and each account syncs separately by its own rules. An iCloud calendar, a Google calendar, an Exchange calendar and a subscribed link all behave differently, and the first useful step is working out which account the missing event belongs to. Everything below is ordered so the cheap checks come first.
Work out what is actually broken
Three questions narrow this faster than any setting.
Does the event exist on the server? Open the account in a browser, at iCloud.com for an iCloud calendar or the Google Calendar web interface for a Google one. If the event is not there either, nothing is failing to sync. The event never left the device that created it, and that device is where to look.
Which calendar does the event belong to, not which account? Every account can hold several calendars, and an event created into the wrong one lands somewhere real but unexpected. Opening the event and reading its calendar name settles this in seconds.
Is it one event or everything? A single missing event points at that event, its calendar, or a reply that never got sent. An entire account silent since Tuesday points at the account. These are different problems and the fixes do not overlap.
Answering these three before changing a setting saves undoing changes later. Most reports of a broken sync turn out to be one of them.
The settings that look like a broken sync
Four settings produce symptoms identical to a failure, and all four are quicker to check than anything else on this page.
The calendar's checkbox in the sidebar. An unticked calendar is hidden, not disconnected, and it looks exactly like missing events. This is worth a glance before anything else because it costs nothing.
Refresh Calendars, in Calendar's settings under Accounts, per account. It decides how often the Mac asks that account for changes. A long interval and a broken connection are indistinguishable until the interval elapses. Shorten it for any account other people edit, and force a refresh from the View menu when something looks stale. Apple's Calendar user guide covers the same refresh controls for accounts and for subscribed calendars, which have their own separate interval.
The account's own switch in Internet Accounts. System Settings, then Internet Accounts, then the account, shows whether Calendars is still enabled. A password change, a revoked session or an expired token can leave an account listed but inert, and the list gives no warning.
The Delegation tab, per account, in Calendar's settings. It is a remnant of an older way of reaching other people's calendars. Google states that delegation has to be off for its normal sync to work, so leftover ticks there break a Google account in a way nothing else explains.
When it is a Google account
Google accounts have one failure mode that belongs to nothing else: the calendar was never selected for syncing in the first place.
Calendars under My calendars in the browser sync automatically, along with Birthdays. Calendars other people shared, and calendars subscribed to from outside, sit under Other calendars and do not come across until each one is ticked on Google's calendar sync page and saved. After saving, force a refresh rather than waiting. This single screen accounts for most reports of a shared Google calendar that never arrives on a Mac.
Three Google features do not work through Calendar at all, and Google names them: email notifications for events, creating new Google calendars, and Room Scheduler. A missing email reminder is therefore not a sync fault and will not be fixed by any amount of reconnecting. The event has to be edited in the browser for Google to send that mail.
Google's page on adding Google Calendar events to Apple Calendar documents both the sync page and that list of limits, and is the right reference to check against when behaviour looks wrong.
When it is iCloud
An iCloud calendar that stops syncing usually stopped for a reason that has nothing to do with Calendar.
Check that the same Apple Account is signed in on both devices, and that Calendars is switched on for iCloud in System Settings on the Mac and in Settings on the iPhone. A device signed into a second Apple Account for iCloud, which happens after a repair or a hand me down device, will never show the other account's events no matter what is refreshed.
Check iCloud storage. A full iCloud account stops syncing new data, and calendars are quiet about it in a way photos are not.
Check whether the event was created in On My Mac rather than in iCloud. Calendar can hold local calendars that live on that machine only, they look identical in the sidebar, and events in them will never appear anywhere else. Moving the event to an iCloud calendar fixes it permanently.
Check Apple's system status page before spending an hour on any of this. An outage produces exactly these symptoms and no amount of local work helps.
When it is Exchange or a work account
Work accounts fail differently, and the difference is worth naming because the fixes are not on the Mac.
An expired password is the most common cause and the least obvious one, because Calendar often keeps showing old events rather than announcing a failure. Mail from the same account usually breaks at the same moment, so a mailbox that has gone quiet at the same time is a strong hint.
Conditional access and device policies can revoke a connection when an operating system version falls behind or a device stops meeting policy. The account then stops syncing without any visible change in Calendar.
An administrator can also restrict which outside applications may connect to accounts in the domain, for Google Workspace and for Microsoft accounts alike. In that case a fresh connection fails at the approval step, after the password is accepted, which is the signature of a policy rather than a fault.
For all three, the productive move is to reconnect once, and if that fails at the approval step, ask whoever administers the account rather than continuing to change settings locally.
Invitations and replies that never settle
A meeting that shows one response on the Mac and a different one to the organiser is a specific case, not a general sync failure. An invitation carries a reply that has to travel back to the organiser's server, and that round trip can fail while ordinary events keep syncing normally. The symptom is a meeting stuck as tentative, or a decline that the organiser never sees.
The check is the same as everywhere else: open the organiser's view if possible, or ask them what they see, rather than changing the response repeatedly on the Mac. Repeated changes make the state harder to read without making it more likely to arrive. When a reply refuses to stick, responding once from the account's web interface removes the Mac from the path entirely and usually ends it.
If none of that worked
At this point the cheap explanations are gone. The next steps get more disruptive, so they are ordered by cost.
Force a refresh, then quit Calendar completely and reopen it. This is the only restart that belongs on the list, and it matters because Calendar holds state while it runs.
Confirm the Mac's date, time and time zone are set automatically. A clock that is wrong by more than a few minutes breaks the security handshake for several account types and produces errors that mention nothing about time. This also causes all day events to appear on the wrong day, which reads as corruption rather than as a clock problem.
Remove the account from Internet Accounts and add it again. The events belong to the server, so this deletes only the local copy. Two things reset and should be noted first: the default alert times for that account, and which calendars are ticked in the sidebar.
Test the same account on a different device or on a phone using cellular data. If it works there, the problem is this Mac or this network. A captive network at an office or hotel can leave a connection half open in a way that looks like a server failure.
If the account works everywhere except this Mac, and a fresh connection did not fix it, the remaining causes are a corrupt local calendar database or a network filter on the machine. That is the point at which Apple Support has something to work with, and the three answers above are what they will ask for.
One more pattern deserves naming because it wastes whole afternoons: the same event appearing twice rather than not at all. That is not a sync failure either. It is the same calendar arriving from two sources, most often an account connection plus an older subscription link that nobody removed, or one account added twice under an alias and its primary address. Both sources are visible in the accounts list, and deleting the redundant one is safe, because the events are held by the server in either case.
Reducing how often this happens
Most repeat cases come from the same structural choices, and each has a permanent fix.
Keep every calendar on an account, not in On My Mac, so nothing is trapped on one machine. Add accounts once through Internet Accounts so every application on the Mac uses the same connection rather than each holding its own. Set a short refresh interval on any account other people edit. And keep one account as the home for new events, since split calendars are the reason people end up checking three places for one meeting.
The application on top of those accounts is a separate question, and it is worth answering only once syncing is reliable. A calendar that makes the account and calendar of a new event obvious at the moment of typing prevents the most common cause of a missing event, which is an event created into the wrong place, and that is one of the practical differences between the built in application and the alternatives.
What to change first
Open the account in a browser and confirm the event exists on the server, because that one check splits this problem in half. Then look at the calendar's checkbox, Refresh Calendars, and the account switch in Internet Accounts, in that order, before removing anything. If the pattern is events landing in the wrong calendar rather than a genuine failure, the fix is a faster and clearer way to create them, which is what a dedicated Mac calendar such as Caltimate is for.
Frequently asked questions
Why does the iPhone show an event that never reaches the Mac?
Usually because the event is in an account or calendar the Mac is not showing. Check the event's calendar name on the phone, then confirm that calendar is enabled on the Mac, ticked in the sidebar, and for a Google account selected on Google's calendar sync page. Events created in a local On My Mac calendar, or in a local calendar on the phone, never sync at all.
How long should syncing take?
That depends on the account's Refresh Calendars setting, which is a poll rather than an instant push for several account types. If the interval is set to an hour, an hour is the expected delay. Forcing a refresh from the View menu shows whether the connection works right now, which is the useful test rather than waiting.
Is removing and re-adding the account safe?
Yes, for accounts such as iCloud, Google and Exchange, because the events are stored on the server and the Mac keeps a copy. The exception is a local On My Mac calendar, which exists only on that machine and should be moved to an account first. Default alerts and sidebar visibility reset and are worth noting before starting.
Why did a shared calendar stop updating while the rest of the account is fine?
For a Google account, the usual cause is that the calendar sits under Other calendars and was never selected on the sync page, or was deselected. For a calendar added as a subscription link, it has its own refresh interval separate from any account, and that interval can be set to something very long. Sharing can also be revoked without any notice appearing on the Mac.
Does restarting the Mac fix calendar syncing?
Rarely, and it hides the cause when it does. Quitting and reopening Calendar achieves the same thing for almost every case, since the state that matters is held by the application. The checks above are quicker than a restart and they leave behind an explanation, which a restart does not.