Fix bookings that never reach your calendar, outside events that fail to block time, duplicate entries, and connections that quietly stopped working.
Calendar sync runs in two directions, and almost every sync complaint is really a problem with one direction or the other. Cal ID reads your calendars to work out when you are busy, and it writes confirmed bookings onto one calendar you nominate. Deciding which direction is broken takes about thirty seconds and narrows the fix immediately.
”Check for conflicts” and “add events to” are different settings
Getting these two confused is the single most common cause of calendar-sync confusion, so it is worth being precise about them before anything else.
Check for conflicts
Add events to
Direction
Cal ID reads the calendar
Cal ID writes to the calendar
What it decides
Whether events on that calendar remove slots from your booking page
Where a new confirmed booking is created
Where you set it
Settings → Calendars — a tick box per sub-calendar
Settings → Calendars for the account default, and the event type’s Advanced tab for a per-event override
How many can be on
Many. Every ticked sub-calendar is checked.
One per event type. A booking is written to exactly one calendar.
Symptom when wrong
Double-booked over an event Cal ID could not see
The meeting is somewhere you never look
Choosing a destination calendar under Add events to calendar does not narrow conflict checking. Cal ID still reads every sub-calendar you have ticked for conflicts. Likewise, ticking a calendar for conflicts does not make it a destination. If you want a calendar to both block your time and receive bookings, you must set both.
A worked example. You keep three Google sub-calendars: Work, Personal, and a subscribed Holidays feed.
Tick Work and Personal for conflicts, leave Holidays unticked — your own commitments block bookings, but public holidays you do not observe do not.
Set Add events to calendar to Work — every booking lands in one predictable place.
A dentist appointment on Personal still removes the slot, even though no booking will ever be written there.
The booking exists in Cal ID — you can see it under Bookings — but nothing arrived on the calendar itself.
The booking is still awaiting confirmation
An event type with Requires confirmation turned on creates a pending booking. Cal ID does not write a pending booking to your calendar, because you have not accepted it yet.Go to Bookings at https://cal.id/bookings and open the Unconfirmed tab. Accept the meeting and the calendar event is created immediately.Related: Require booking confirmation
No destination calendar is set
If no calendar is connected — or the event type points at a connection that has since been removed — Cal ID has nowhere to write.
Open the event type, go to the Advanced tab, and check the Add events to calendar dropdown. An event type can override the account default here, and duplicated event types carry the override with them.
Attendees still receive their confirmation email with a calendar invitation attached, which is why this often goes unnoticed until you find your own calendar empty.
You are looking at the wrong sub-calendar
In Google Calendar and in the Unified Calendar, each sub-calendar has a visibility tick box in the left sidebar. If the destination calendar is toggled off, its events are on your account but invisible in the view you are looking at.Toggle every calendar on in the sidebar and look again before assuming the event was never created.
The write silently failed on an expired connection
A connection whose token has expired can still appear in the list while failing every write. Bookings pile up in Cal ID and none of them lands.Work through The connection is broken or its permission was revoked below, then create a test booking on a spare slot to confirm writes are flowing again.
Something is on your calendar, but Cal ID offered the slot anyway and you got double-booked.
1
Confirm the event is marked Busy
An event set to Free — the default for many all-day events, birthdays, and subscribed feeds — is deliberately ignored. Change it to Busy on the calendar itself.
2
Confirm the event's sub-calendar is checked for conflicts
Go to Settings → Calendars at https://cal.id/settings/my-account/calendars and expand the connection. Each sub-calendar has its own tick box, and a conflict on an unticked sub-calendar is invisible to Cal ID.
Newly created sub-calendars are not ticked automatically. If you made a new “Client work” calendar last week and it has not blocked anything since, this is why.
3
Check that you declined nothing
An invitation you declined is generally not treated as busy time. If you intend to attend, accept the invitation or add a separate blocking event.
4
Check how far ahead the sync reaches
Cal ID pulls in your meetings from the past 30 days and the next 90 days. A conflict far outside that window may not be reflected in the Unified Calendar view even though it exists on the source calendar.
5
Verify with the troubleshooter
Open https://cal.id/availability/troubleshoot and select the date. If the event does not appear as a busy block there, Cal ID genuinely cannot see it — the cause is one of the four steps above, not a booking-page problem.
Cal ID writes each booking to exactly one calendar, chosen in this order of precedence:
The Add events to calendar value on the event type’s Advanced tab, if one is set.
Otherwise, the destination calendar set in Settings → Calendars.
So a single event type behaving differently from the rest almost always has a per-event override. Open its Advanced tab and either point it at the right calendar or clear the override so it follows the account default.
Changing this setting affects new bookings only. Meetings already on the wrong calendar stay where they are — move them by hand on the calendar, or cancel and rebook if attendees need a fresh invitation.
If bookings land on the right calendar but under an unexpected account, check which email address the connection uses. Connecting a personal Google account and a work Google account produces two separate entries in Settings → Calendars, and they are easy to mix up when both are simply labelled “Google Calendar”.Related: Add events to calendar
Reconnecting a calendar without removing the old connection can leave two live connections to the same account. Both write, so every booking is created twice.Go to Settings → Calendars, look for two entries with the same email address, and remove the one you do not want. Delete the duplicate calendar events by hand afterwards — removing a connection does not clean up events it already created.
You are both the host and an attendee
If your own email address was added to a booking through the Add guests field, you receive the invitation as a guest and Cal ID creates the host event. Two entries, one meeting.Remove your own address from the guest list when booking. This most often happens while testing your own booking link.
A third-party sync tool is also copying the event
Calendar mirroring tools, phone accounts syncing the same calendar twice, and automation platforms that create a second event from a Cal ID webhook all produce apparent duplicates.Check whether the duplicate is identical or slightly different — a different title, colour, or organiser points at an external tool rather than at Cal ID. Review anything you have wired up under Apps → Installed Apps at https://cal.id/apps before changing calendar settings.
The booking was rescheduled and the old event survived
A reschedule updates the existing calendar event. If the connection was briefly unavailable, the update can land as a new event while the original remains.Cancel the stale event on the calendar and confirm the surviving one matches the time shown under Bookings → Upcoming at https://cal.id/bookings — treat Cal ID as the source of truth.Related: Cancel or reschedule a booking
The connection is broken or its permission was revoked
A calendar connection can lapse without you touching anything: a password change, a workspace admin revoking third-party app access, an Apple app-specific password regenerated, or a permission declined during the original consent screen.The tell-tale sign is a sudden change with no matching action on your side — either everything reads as busy, or nothing does.
Reconnect the calendar. On the consent screen, grant all requested permissions — view, create, edit, and delete. Withholding delete permission, for example, leaves cancellations stranded on your calendar with everything else appearing to work.
4
Re-select your sub-calendars
After reconnecting, tick the sub-calendars you want checked for conflicts and confirm the destination calendar. These choices are not always carried over, and a reconnected calendar with nothing ticked blocks nothing.
5
Test in both directions
Add a Busy event on your calendar for a bookable slot and confirm the slot disappears from your booking page. Then make a test booking and confirm it lands on the destination calendar. Cancel both afterwards.
Disconnecting a calendar stops Cal ID from checking it for conflicts, so slots it used to block become bookable straight away. Do not disconnect a calendar as a diagnostic step during working hours unless you have hidden your event types first.
Reconnecting restores the connection; it does not replay history. Set expectations accordingly.
Conflict checking resumes immediately. As soon as the sub-calendars are ticked, your booking page reflects the busy events on them.
Existing events are re-read, not re-created. Cal ID pulls the past 30 days and next 90 days of events for availability. Nothing on your calendar is modified.
Bookings taken while the connection was down are not back-filled. Any confirmed booking that failed to write stays missing from the calendar. Find them under Bookings and add them manually, or cancel and rebook if the attendee needs a fresh invitation.
Slots that were wrongly offered stay booked. If the outage caused a double-booking, resolve it yourself by rescheduling — Cal ID will not undo a confirmed booking.
Per-event overrides survive. Any event type with its own Add events to calendar value keeps it, so check those event types individually if the connection you replaced was their destination.
After any reconnection, make one test booking on a slot you do not mind losing and then cancel it. It takes a minute and it verifies read, write, and delete permissions in a single pass — which is exactly the set that silently breaks.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Cal ID","description":"Cal ID help center — scheduling, event types, availability, teams, apps, workflows, and developer tools for the Cal ID meeting scheduler.","colors":{"primary":"#1972F5","light":"#5B9BFF","dark":"#0B4FB8"},"logo":{"light":"https://mintcdn.com/cal-id-docs/k1VHQ7P5ONAHeLvP/logo/light.svg?fit=max\u0026auto=format\u0026n=k1VHQ7P5ONAHeLvP\u0026q=85\u0026s=589c4a9c69ea7387516e6452f592553e","dark":"https://mintcdn.com/cal-id-docs/tkghSGJWVIrQX7X0/logo/dark.svg?fit=max\u0026auto=format\u0026n=tkghSGJWVIrQX7X0\u0026q=85\u0026s=3215902115e27959cb7782b1af38e9fe"},"favicon":"https://mintcdn.com/cal-id-docs/NUrc1nmEeHvCjwEV/favicon.svg?fit=max\u0026auto=format\u0026n=NUrc1nmEeHvCjwEV\u0026q=85\u0026s=3247c427392ba77a41b08a807c322bfb","navbar":{"links":[{"href":"mailto:support@cal.id","label":"Email Us"}],"primary":{"type":"button","label":"Go to Cal ID","href":"https://cal.id"}},"footer":{"socials":{"x":"https://x.com/OneHash","linkedin":"https://www.linkedin.com/company/onehash"}},"errors":{"404":{"redirect":false,"title":"We couldn't find that page","description":"The page you're looking for doesn't exist or may have moved. Head back to the [Help Center home](/), or jump to [Event Types](/event-types/overview), [Availability](/availability/create), [Teams](/teams/overview), or the [API Reference](/api-reference) — or use the search bar above. Still stuck? Email us at [support@cal.id](mailto:support@cal.id)."}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode","download-spec"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cal-id-docs","hasAudioNarration":false,"actualSubdomain":"cal-id-docs","customDomains":["cal.id"],"gitSource":{"type":"github","owner":"onehashai","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ab916db4c0abff9c16e8c99","collectionId":"a1537af2-6a4a-409a-a4fe-70a6408ebcf7","liveDeploymentHistoryId":"6ab916db4c0abff9c16e8c99","schemaVersion":"v3"},"feedback":{"thumbs":true,"agentFeedback":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ab916db4c0abff9c16e8c99","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":60},{"language":"default","tag":"Endpoints","count":58},{"language":"default","tag":"Event Types","count":57},{"language":"default","tag":"Scheduling \u0026 Teams","count":31},{"language":"default","tag":"Get Started","count":31},{"language":"default","tag":"Customization \u0026 Settings","count":23},{"language":"default","tag":"Apps \u0026 Integrations","count":22},{"language":"default","tag":"Advanced","count":18},{"language":"default","tag":"Developers","count":17},{"language":"default","tag":"Teams","count":16}],"searchSettings":{"isFiltersEnabled":false}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@cal.id"}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"troubleshooting/calendar-sync","slug":"/troubleshooting/calendar-sync","pageMetadata":{"title":"Calendar Sync Problems","sidebarTitle":"Calendar sync","description":"Fix bookings that never reach your calendar, outside events that fail to block time, duplicate entries, and connections that quietly stopped working.","icon":"arrows-rotate","keywords":["calendar not syncing","booking not on calendar","duplicate calendar events","wrong calendar","calendar disconnected","check for conflicts","reconnect calendar"],"related":["/apps/google-calendar","/apps/apple-calendar","/getting-started/unified-calendar","/event-types/advanced/add-to-calendar","/troubleshooting/no-available-times"],"href":"/troubleshooting/calendar-sync"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Fix bookings that never reach your calendar, outside events that fail to block time, duplicate entries, and connections that quietly stopped working.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,em:`em`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,Heading,Info,Note,Step,Steps,Table,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Calendar sync runs in two directions, and almost every sync complaint is really a problem with one direction or the other. Cal ID `,_jsx(_components.strong,{children:`reads`}),` your calendars to work out when you are busy, and it `,_jsx(_components.strong,{children:`writes`}),` confirmed bookings onto one calendar you nominate. Deciding which direction is broken takes about thirty seconds and narrows the fix immediately.`]}),`\n`,_jsx(Heading,{level:`2`,id:`which-direction-is-broken`,children:`Which direction is broken?`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`What you are seeing`}),_jsx(_components.th,{children:`Direction`}),_jsx(_components.th,{children:`Go to`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A booking exists in Cal ID but not on your calendar`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Write`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#bookings-are-not-appearing-on-your-calendar`,children:`Bookings are not appearing on your calendar`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`An event on your calendar did not block the slot`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#outside-events-are-not-blocking-your-availability`,children:`Outside events are not blocking your availability`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The booking landed on the wrong calendar`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Write`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#bookings-are-landing-on-the-wrong-calendar`,children:`Bookings are landing on the wrong calendar`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The same meeting appears twice`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Both`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#the-same-booking-appears-twice`,children:`The same booking appears twice`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Everything reads as busy, or nothing does`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#the-connection-is-broken-or-its-permission-was-revoked`,children:`The connection is broken or its permission was revoked`})})]})]})]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Both directions run through `,_jsx(_components.strong,{children:`Settings → Calendars`}),` at `,_jsx(_components.a,{href:`https://cal.id/settings/my-account/calendars`,children:`https://cal.id/settings/my-account/calendars`}),`. That page is where you will spend most of this article.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`”check-for-conflicts”-and-“add-events-to”-are-different-settings`,children:`”Check for conflicts” and “add events to” are different settings`}),`\n`,_jsx(_components.p,{children:`Getting these two confused is the single most common cause of calendar-sync confusion, so it is worth being precise about them before anything else.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{children:`Check for conflicts`}),_jsx(_components.th,{children:`Add events to`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Direction`}),_jsxs(_components.td,{children:[`Cal ID `,_jsx(_components.strong,{children:`reads`}),` the calendar`]}),_jsxs(_components.td,{children:[`Cal ID `,_jsx(_components.strong,{children:`writes`}),` to the calendar`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`What it decides`}),_jsx(_components.td,{children:`Whether events on that calendar remove slots from your booking page`}),_jsx(_components.td,{children:`Where a new confirmed booking is created`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Where you set it`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Settings → Calendars`}),` — a tick box per sub-calendar`]}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Settings → Calendars`}),` for the account default, and the event type’s `,_jsx(_components.strong,{children:`Advanced`}),` tab for a per-event override`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`How many can be on`}),_jsx(_components.td,{children:`Many. Every ticked sub-calendar is checked.`}),_jsx(_components.td,{children:`One per event type. A booking is written to exactly one calendar.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Symptom when wrong`}),_jsx(_components.td,{children:`Double-booked over an event Cal ID could not see`}),_jsx(_components.td,{children:`The meeting is somewhere you never look`})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Choosing a destination calendar under `,_jsx(_components.strong,{children:`Add events to calendar`}),` does `,_jsx(_components.strong,{children:`not`}),` narrow conflict checking. Cal ID still reads every sub-calendar you have ticked for conflicts. Likewise, ticking a calendar for conflicts does not make it a destination. If you want a calendar to both block your time and receive bookings, you must set both.`]})}),`\n`,_jsxs(_components.p,{children:[`A worked example. You keep three Google sub-calendars: `,_jsx(_components.strong,{children:`Work`}),`, `,_jsx(_components.strong,{children:`Personal`}),`, and a subscribed `,_jsx(_components.strong,{children:`Holidays`}),` feed.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Tick `,_jsx(_components.strong,{children:`Work`}),` and `,_jsx(_components.strong,{children:`Personal`}),` for conflicts, leave `,_jsx(_components.strong,{children:`Holidays`}),` unticked — your own commitments block bookings, but public holidays you do not observe do not.`]}),`\n`,_jsxs(_components.li,{children:[`Set `,_jsx(_components.strong,{children:`Add events to calendar`}),` to `,_jsx(_components.strong,{children:`Work`}),` — every booking lands in one predictable place.`]}),`\n`,_jsxs(_components.li,{children:[`A dentist appointment on `,_jsx(_components.strong,{children:`Personal`}),` still removes the slot, even though no booking will ever be written there.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Related: `,_jsx(_components.a,{href:`/event-types/advanced/add-to-calendar`,children:`Add events to calendar`})]}),`\n`,_jsx(Heading,{level:`2`,id:`bookings-are-not-appearing-on-your-calendar`,children:`Bookings are not appearing on your calendar`}),`\n`,_jsxs(_components.p,{children:[`The booking exists in Cal ID — you can see it under `,_jsx(_components.strong,{children:`Bookings`}),` — but nothing arrived on the calendar itself.`]}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`The booking is still awaiting confirmation`,icon:`clock`,id:`the-booking-is-still-awaiting-confirmation`,children:[_jsxs(_components.p,{children:[`An event type with `,_jsx(_components.strong,{children:`Requires confirmation`}),` turned on creates a `,_jsx(_components.em,{children:`pending`}),` booking. Cal ID does not write a pending booking to your calendar, because you have not accepted it yet.`]}),_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Bookings`}),` at `,_jsx(_components.a,{href:`https://cal.id/bookings`,children:`https://cal.id/bookings`}),` and open the `,_jsx(_components.strong,{children:`Unconfirmed`}),` tab. Accept the meeting and the calendar event is created immediately.`]}),_jsxs(_components.p,{children:[`Related: `,_jsx(_components.a,{href:`/event-types/advanced/requires-confirmation`,children:`Require booking confirmation`})]})]}),_jsxs(Accordion,{title:`No destination calendar is set`,icon:`calendar-xmark`,id:`no-destination-calendar-is-set`,children:[_jsx(_components.p,{children:`If no calendar is connected — or the event type points at a connection that has since been removed — Cal ID has nowhere to write.`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Settings → Calendars`}),` at `,_jsx(_components.a,{href:`https://cal.id/settings/my-account/calendars`,children:`https://cal.id/settings/my-account/calendars`}),` and confirm a destination calendar is selected.`]}),`\n`,_jsxs(_components.li,{children:[`Open the event type, go to the `,_jsx(_components.strong,{children:`Advanced`}),` tab, and check the `,_jsx(_components.strong,{children:`Add events to calendar`}),` dropdown. An event type can override the account default here, and duplicated event types carry the override with them.`]}),`\n`]}),_jsx(_components.p,{children:`Attendees still receive their confirmation email with a calendar invitation attached, which is why this often goes unnoticed until you find your own calendar empty.`})]}),_jsxs(Accordion,{title:`You are looking at the wrong sub-calendar`,icon:`eye-slash`,id:`you-are-looking-at-the-wrong-sub-calendar`,children:[_jsxs(_components.p,{children:[`In Google Calendar and in the `,_jsx(_components.a,{href:`/getting-started/unified-calendar`,children:`Unified Calendar`}),`, each sub-calendar has a visibility tick box in the left sidebar. If the destination calendar is toggled off, its events are on your account but invisible in the view you are looking at.`]}),_jsx(_components.p,{children:`Toggle every calendar on in the sidebar and look again before assuming the event was never created.`})]}),_jsxs(Accordion,{title:`The write silently failed on an expired connection`,icon:`link-slash`,id:`the-write-silently-failed-on-an-expired-connection`,children:[_jsx(_components.p,{children:`A connection whose token has expired can still appear in the list while failing every write. Bookings pile up in Cal ID and none of them lands.`}),_jsxs(_components.p,{children:[`Work through `,_jsx(_components.a,{href:`#the-connection-is-broken-or-its-permission-was-revoked`,children:`The connection is broken or its permission was revoked`}),` below, then create a test booking on a spare slot to confirm writes are flowing again.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`outside-events-are-not-blocking-your-availability`,children:`Outside events are not blocking your availability`}),`\n`,_jsx(_components.p,{children:`Something is on your calendar, but Cal ID offered the slot anyway and you got double-booked.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Confirm the event is marked Busy`,children:_jsxs(_components.p,{children:[`An event set to `,_jsx(_components.strong,{children:`Free`}),` — the default for many all-day events, birthdays, and subscribed feeds — is deliberately ignored. Change it to `,_jsx(_components.strong,{children:`Busy`}),` on the calendar itself.`]})}),_jsxs(Step,{title:`Confirm the event's sub-calendar is checked for conflicts`,children:[_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings → Calendars`}),` at `,_jsx(_components.a,{href:`https://cal.id/settings/my-account/calendars`,children:`https://cal.id/settings/my-account/calendars`}),` and expand the connection. Each sub-calendar has its own tick box, and a conflict on an unticked sub-calendar is invisible to Cal ID.`]}),_jsx(Note,{children:_jsx(_components.p,{children:`Newly created sub-calendars are not ticked automatically. If you made a new “Client work” calendar last week and it has not blocked anything since, this is why.`})})]}),_jsx(Step,{title:`Check that you declined nothing`,children:_jsx(_components.p,{children:`An invitation you declined is generally not treated as busy time. If you intend to attend, accept the invitation or add a separate blocking event.`})}),_jsx(Step,{title:`Check how far ahead the sync reaches`,children:_jsxs(_components.p,{children:[`Cal ID pulls in your meetings from the past 30 days and the next 90 days. A conflict far outside that window may not be reflected in the `,_jsx(_components.a,{href:`/getting-started/unified-calendar`,children:`Unified Calendar`}),` view even though it exists on the source calendar.`]})}),_jsx(Step,{title:`Verify with the troubleshooter`,children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.a,{href:`https://cal.id/availability/troubleshoot`,children:`https://cal.id/availability/troubleshoot`}),` and select the date. If the event does not appear as a busy block there, Cal ID genuinely cannot see it — the cause is one of the four steps above, not a booking-page problem.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`bookings-are-landing-on-the-wrong-calendar`,children:`Bookings are landing on the wrong calendar`}),`\n`,_jsx(_components.p,{children:`Cal ID writes each booking to exactly one calendar, chosen in this order of precedence:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`Add events to calendar`}),` value on the event type’s `,_jsx(_components.strong,{children:`Advanced`}),` tab, if one is set.`]}),`\n`,_jsxs(_components.li,{children:[`Otherwise, the destination calendar set in `,_jsx(_components.strong,{children:`Settings → Calendars`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`So a single event type behaving differently from the rest almost always has a per-event override. Open its `,_jsx(_components.strong,{children:`Advanced`}),` tab and either point it at the right calendar or clear the override so it follows the account default.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Changing this setting affects `,_jsx(_components.strong,{children:`new`}),` bookings only. Meetings already on the wrong calendar stay where they are — move them by hand on the calendar, or cancel and rebook if attendees need a fresh invitation.`]})}),`\n`,_jsxs(_components.p,{children:[`If bookings land on the right calendar but under an unexpected account, check which email address the connection uses. Connecting a personal Google account and a work Google account produces two separate entries in `,_jsx(_components.strong,{children:`Settings → Calendars`}),`, and they are easy to mix up when both are simply labelled “Google Calendar”.`]}),`\n`,_jsxs(_components.p,{children:[`Related: `,_jsx(_components.a,{href:`/event-types/advanced/add-to-calendar`,children:`Add events to calendar`})]}),`\n`,_jsx(Heading,{level:`2`,id:`the-same-booking-appears-twice`,children:`The same booking appears twice`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`The same calendar is connected twice`,icon:`copy`,id:`the-same-calendar-is-connected-twice`,children:[_jsx(_components.p,{children:`Reconnecting a calendar without removing the old connection can leave two live connections to the same account. Both write, so every booking is created twice.`}),_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings → Calendars`}),`, look for two entries with the same email address, and remove the one you do not want. Delete the duplicate calendar events by hand afterwards — removing a connection does not clean up events it already created.`]})]}),_jsxs(Accordion,{title:`You are both the host and an attendee`,icon:`user`,id:`you-are-both-the-host-and-an-attendee`,children:[_jsxs(_components.p,{children:[`If your own email address was added to a booking through the `,_jsx(_components.strong,{children:`Add guests`}),` field, you receive the invitation as a guest `,_jsx(_components.em,{children:`and`}),` Cal ID creates the host event. Two entries, one meeting.`]}),_jsx(_components.p,{children:`Remove your own address from the guest list when booking. This most often happens while testing your own booking link.`})]}),_jsxs(Accordion,{title:`A third-party sync tool is also copying the event`,icon:`arrows-rotate`,id:`a-third-party-sync-tool-is-also-copying-the-event`,children:[_jsx(_components.p,{children:`Calendar mirroring tools, phone accounts syncing the same calendar twice, and automation platforms that create a second event from a Cal ID webhook all produce apparent duplicates.`}),_jsxs(_components.p,{children:[`Check whether the duplicate is identical or slightly different — a different title, colour, or organiser points at an external tool rather than at Cal ID. Review anything you have wired up under `,_jsx(_components.strong,{children:`Apps → Installed Apps`}),` at `,_jsx(_components.a,{href:`https://cal.id/apps`,children:`https://cal.id/apps`}),` before changing calendar settings.`]})]}),_jsxs(Accordion,{title:`The booking was rescheduled and the old event survived`,icon:`calendar-days`,id:`the-booking-was-rescheduled-and-the-old-event-survived`,children:[_jsx(_components.p,{children:`A reschedule updates the existing calendar event. If the connection was briefly unavailable, the update can land as a new event while the original remains.`}),_jsxs(_components.p,{children:[`Cancel the stale event on the calendar and confirm the surviving one matches the time shown under `,_jsx(_components.strong,{children:`Bookings → Upcoming`}),` at `,_jsx(_components.a,{href:`https://cal.id/bookings`,children:`https://cal.id/bookings`}),` — treat Cal ID as the source of truth.`]}),_jsxs(_components.p,{children:[`Related: `,_jsx(_components.a,{href:`/bookings/cancel-reschedule`,children:`Cancel or reschedule a booking`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`the-connection-is-broken-or-its-permission-was-revoked`,children:`The connection is broken or its permission was revoked`}),`\n`,_jsx(_components.p,{children:`A calendar connection can lapse without you touching anything: a password change, a workspace admin revoking third-party app access, an Apple app-specific password regenerated, or a permission declined during the original consent screen.`}),`\n`,_jsx(_components.p,{children:`The tell-tale sign is a sudden change with no matching action on your side — either everything reads as busy, or nothing does.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open your calendar settings`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings → Calendars`}),` at `,_jsx(_components.a,{href:`https://cal.id/settings/my-account/calendars`,children:`https://cal.id/settings/my-account/calendars`}),`. Look for an error state, a reconnect prompt, or a connection that lists no sub-calendars at all.`]})}),_jsx(Step,{title:`Cross-check the installed app`,children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Apps → Installed Apps`}),` at `,_jsx(_components.a,{href:`https://cal.id/apps/installed/calendar`,children:`https://cal.id/apps/installed/calendar`}),`. A connection that is present but non-functional usually shows here too.`]})}),_jsx(Step,{title:`Reconnect and grant every permission`,children:_jsxs(_components.p,{children:[`Reconnect the calendar. On the consent screen, grant `,_jsx(_components.strong,{children:`all`}),` requested permissions — view, create, edit, and delete. Withholding delete permission, for example, leaves cancellations stranded on your calendar with everything else appearing to work.`]})}),_jsx(Step,{title:`Re-select your sub-calendars`,children:_jsx(_components.p,{children:`After reconnecting, tick the sub-calendars you want checked for conflicts and confirm the destination calendar. These choices are not always carried over, and a reconnected calendar with nothing ticked blocks nothing.`})}),_jsx(Step,{title:`Test in both directions`,children:_jsx(_components.p,{children:`Add a Busy event on your calendar for a bookable slot and confirm the slot disappears from your booking page. Then make a test booking and confirm it lands on the destination calendar. Cancel both afterwards.`})})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Disconnecting a calendar stops Cal ID from checking it for conflicts, so slots it used to block become bookable straight away. Do not disconnect a calendar as a diagnostic step during working hours unless you have hidden your event types first.`})}),`\n`,_jsxs(_components.p,{children:[`Related: `,_jsx(_components.a,{href:`/apps/google-calendar`,children:`Connect Google Calendar`}),` · `,_jsx(_components.a,{href:`/apps/apple-calendar`,children:`Connect Apple Calendar`}),` · `,_jsx(_components.a,{href:`/apps/manage-installed`,children:`Managing installed apps`})]}),`\n`,_jsx(Heading,{level:`2`,id:`what-happens-after-you-reconnect`,children:`What happens after you reconnect`}),`\n`,_jsx(_components.p,{children:`Reconnecting restores the connection; it does not replay history. Set expectations accordingly.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Conflict checking resumes immediately.`}),` As soon as the sub-calendars are ticked, your booking page reflects the busy events on them.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Existing events are re-read, not re-created.`}),` Cal ID pulls the past 30 days and next 90 days of events for availability. Nothing on your calendar is modified.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Bookings taken while the connection was down are not back-filled.`}),` Any confirmed booking that failed to write stays missing from the calendar. Find them under `,_jsx(_components.strong,{children:`Bookings`}),` and add them manually, or cancel and rebook if the attendee needs a fresh invitation.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Slots that were wrongly offered stay booked.`}),` If the outage caused a double-booking, resolve it yourself by rescheduling — Cal ID will not undo a confirmed booking.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Per-event overrides survive.`}),` Any event type with its own `,_jsx(_components.strong,{children:`Add events to calendar`}),` value keeps it, so check those event types individually if the connection you replaced was their destination.`]}),`\n`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`After any reconnection, make one test booking on a slot you do not mind losing and then cancel it. It takes a minute and it verifies read, write, and delete permissions in a single pass — which is exactly the set that silently breaks.`})}),`\n`,_jsx(Heading,{level:`2`,id:`other-calendar-fixes`,children:`Other calendar fixes`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`No available times`,icon:`calendar-xmark`,href:`/troubleshooting/no-available-times`,children:_jsx(_components.p,{children:`Work through every reason a booking page shows fewer slots than expected.`})}),_jsx(Card,{title:`Add events to calendar`,icon:`calendar`,href:`/event-types/advanced/add-to-calendar`,children:_jsx(_components.p,{children:`Choose which connected calendar stores each event type’s bookings.`})}),_jsx(Card,{title:`Unified Calendar`,icon:`calendar-days`,href:`/getting-started/unified-calendar`,children:_jsx(_components.p,{children:`See every connected calendar in one view and spot what is really booked.`})}),_jsx(Card,{title:`Get help`,icon:`life-ring`,href:`/getting-started/get-help`,children:_jsx(_components.p,{children:`Ask the AI assistant or start a live chat with the support team.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Calendar Sync Problems","sidebarTitle":"Calendar sync","description":"Fix bookings that never reach your calendar, outside events that fail to block time, duplicate entries, and connections that quietly stopped working.","icon":"arrows-rotate","keywords":["calendar not syncing","booking not on calendar","duplicate calendar events","wrong calendar","calendar disconnected","check for conflicts","reconnect calendar"],"related":["/apps/google-calendar","/apps/apple-calendar","/getting-started/unified-calendar","/event-types/advanced/add-to-calendar","/troubleshooting/no-available-times"],"href":"/troubleshooting/calendar-sync"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Which direction is broken?","slug":"which-direction-is-broken","depth":2,"children":[]},{"title":"”Check for conflicts” and “add events to” are different settings","slug":"”check-for-conflicts”-and-“add-events-to”-are-different-settings","depth":2,"children":[]},{"title":"Bookings are not appearing on your calendar","slug":"bookings-are-not-appearing-on-your-calendar","depth":2,"children":[]},{"title":"Outside events are not blocking your availability","slug":"outside-events-are-not-blocking-your-availability","depth":2,"children":[]},{"title":"Bookings are landing on the wrong calendar","slug":"bookings-are-landing-on-the-wrong-calendar","depth":2,"children":[]},{"title":"The same booking appears twice","slug":"the-same-booking-appears-twice","depth":2,"children":[]},{"title":"The connection is broken or its permission was revoked","slug":"the-connection-is-broken-or-its-permission-was-revoked","depth":2,"children":[]},{"title":"What happens after you reconnect","slug":"what-happens-after-you-reconnect","depth":2,"children":[]},{"title":"Other calendar fixes","slug":"other-calendar-fixes","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/cal-id-docs/09b4d95490dd9c71/support-crisp.js"],"subdomain":"cal-id-docs","siteName":"Cal ID","title":"Calendar Sync Problems - Cal ID","relatedPages":[{"title":"Connect Google Calendar","link":"/apps/google-calendar","icon":"calendar"},{"title":"Connect Apple Calendar with Cal ID","link":"/apps/apple-calendar","icon":"calendar"},{"title":"Unified Calendar","link":"/getting-started/unified-calendar","icon":"calendar-days"},{"title":"Add Events to Calendar","link":"/event-types/advanced/add-to-calendar","icon":"calendar"},{"title":"No Available Times on Your Booking Page","link":"/troubleshooting/no-available-times","icon":"calendar-xmark"}],"relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6a986292cabf01e77694fb24","deploymentId":"6a6c20ecc3064aa95c02d1fd","questionText":"What's blocking my availability?","status":"active","generatedBy":"contextual","path":"troubleshooting/calendar-sync","createdAt":"2026-09-02T17:53:22.710Z","updatedAt":"2026-09-02T17:53:22.710Z","__v":0},{"_id":"6a986292cabf01e77694fb22","deploymentId":"6a6c20ecc3064aa95c02d1fd","questionText":"Why aren't bookings on my calendar?","status":"active","generatedBy":"contextual","path":"troubleshooting/calendar-sync","createdAt":"2026-09-02T17:53:22.710Z","updatedAt":"2026-09-02T17:53:22.710Z","__v":0},{"_id":"6a986292cabf01e77694fb23","deploymentId":"6a6c20ecc3064aa95c02d1fd","questionText":"How do I fix sync direction issues?","status":"active","generatedBy":"contextual","path":"troubleshooting/calendar-sync","createdAt":"2026-09-02T17:53:22.710Z","updatedAt":"2026-09-02T17:53:22.710Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-02T17:52:54.794Z","originalFileLocation":"troubleshooting/calendar-sync.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Fix bookings that never reach your calendar, outside events that fail to block time, duplicate entries, and connections that quietly stopped working.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Cal ID\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/cal-id-docs/Ah-PiVKdxwxdJ_gr/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/cal-id-docs/Ah-PiVKdxwxdJ_gr/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/cal-id-docs/Ah-PiVKdxwxdJ_gr/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/cal-id-docs/Ah-PiVKdxwxdJ_gr/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/cal-id-docs/Ah-PiVKdxwxdJ_gr/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/cal-id-docs/Ah-PiVKdxwxdJ_gr/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/cal-id-docs/Ah-PiVKdxwxdJ_gr/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/cal-id-docs/Ah-PiVKdxwxdJ_gr/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/cal-id-docs/Ah-PiVKdxwxdJ_gr/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Calendar Sync Problems - Cal ID\">\u003cmeta data-mint-head property=\"og:description\" content=\"Fix bookings that never reach your calendar, outside events that fail to block time, duplicate entries, and connections that quietly stopped working.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Cal ID\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://cal.id/docs/troubleshooting/calendar-sync\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cal-id-docs.mintlify.app/_mintlify/api/og/v2?division=Reference\u0026amp;title=Calendar+Sync+Problems\u0026amp;description=Fix+bookings+that+never+reach+your+calendar%2C+outside+events+that+fail+to+block+time%2C+duplicate+entries%2C+and+connections+that+quietly+stopped+working.\u0026amp;theme=1ce1fba1bcc16a5579de1fe3\u0026amp;signature=659f021f57f305015af7475a22212259a34f3103fb032a2f57802314675d6142\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Calendar Sync Problems - Cal ID\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Fix bookings that never reach your calendar, outside events that fail to block time, duplicate entries, and connections that quietly stopped working.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cal-id-docs.mintlify.app/_mintlify/api/og/v2?division=Reference\u0026amp;title=Calendar+Sync+Problems\u0026amp;description=Fix+bookings+that+never+reach+your+calendar%2C+outside+events+that+fail+to+block+time%2C+duplicate+entries%2C+and+connections+that+quietly+stopped+working.\u0026amp;theme=1ce1fba1bcc16a5579de1fe3\u0026amp;signature=659f021f57f305015af7475a22212259a34f3103fb032a2f57802314675d6142\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/cal-id-docs/Ah-PiVKdxwxdJ_gr/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Cal ID\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1972F5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://cal.id/docs/troubleshooting/calendar-sync\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/troubleshooting/calendar-sync.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://cal.id/#organization\",\"name\":\"Cal ID\",\"url\":\"https://cal.id\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cal-id-docs/k1VHQ7P5ONAHeLvP/logo/light.svg?fit=max\u0026auto=format\u0026n=k1VHQ7P5ONAHeLvP\u0026q=85\u0026s=589c4a9c69ea7387516e6452f592553e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://cal.id/docs#website\",\"name\":\"Cal ID\",\"url\":\"https://cal.id/docs\",\"publisher\":{\"@id\":\"https://cal.id/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://cal.id/docs/troubleshooting/calendar-sync#webpage\",\"url\":\"https://cal.id/docs/troubleshooting/calendar-sync\",\"name\":\"Calendar Sync Problems\",\"description\":\"Fix bookings that never reach your calendar, outside events that fail to block time, duplicate entries, and connections that quietly stopped working.\",\"dateModified\":\"2026-09-02T17:52:54.794Z\",\"isPartOf\":{\"@id\":\"https://cal.id/docs#website\"},\"breadcrumb\":{\"@id\":\"https://cal.id/docs/troubleshooting/calendar-sync#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://cal.id/docs/troubleshooting/calendar-sync#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Reference\",\"item\":\"https://cal.id/docs/getting-started/glossary\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calendar Sync Problems\",\"item\":\"https://cal.id/docs/troubleshooting/calendar-sync\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://cal.id/docs/troubleshooting/calendar-sync#article\",\"headline\":\"Calendar Sync Problems\",\"name\":\"Calendar Sync Problems\",\"description\":\"Fix bookings that never reach your calendar, outside events that fail to block time, duplicate entries, and connections that quietly stopped working.\",\"url\":\"https://cal.id/docs/troubleshooting/calendar-sync\",\"mainEntityOfPage\":{\"@id\":\"https://cal.id/docs/troubleshooting/calendar-sync#webpage\"},\"dateModified\":\"2026-09-02T17:52:54.794Z\",\"keywords\":\"calendar not syncing, booking not on calendar, duplicate calendar events, wrong calendar, calendar disconnected, check for conflicts, reconnect calendar\",\"publisher\":{\"@id\":\"https://cal.id/#organization\"},\"isPartOf\":{\"@id\":\"https://cal.id/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Cal ID\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Cal ID","nav":{"global":null,"tabs":[{"tab":"Get Started","groups":[{"group":"Get Started","pages":[{"title":"Cal ID Help Center","icon":"house","sidebarTitle":"Welcome","href":""},{"title":"Complete Your Cal ID Onboarding","icon":"rocket","href":"/getting-started/onboarding"},{"title":"Resetting a Forgotten Password","sidebarTitle":"Reset password","icon":"key","href":"/getting-started/reset-password"},{"title":"Find and Share Your Cal ID URL","icon":"link","href":"/getting-started/share-your-url"},{"title":"Schedule a Meeting","icon":"calendar-check","href":"/getting-started/schedule-a-meeting"},{"title":"Schedule Meetings Directly Inside WhatsApp","sidebarTitle":"Book on WhatsApp","icon":"whatsapp","href":"/getting-started/whatsapp-scheduling"},{"title":"Unified Calendar","icon":"calendar-days","href":"/getting-started/unified-calendar"},{"title":"Manage Your Contacts","icon":"address-book","href":"/getting-started/contacts"},{"title":"Import Your Data from Calendly to Cal ID","icon":"file-import","href":"/getting-started/import-from-calendly"},{"title":"Command Bar Quick Actions","icon":"terminal","href":"/getting-started/command-bar"},{"title":"Cal ID Mobile Apps","icon":"mobile-screen","href":"/getting-started/mobile-apps"}]},{"group":"Reference","pages":[{"title":"Cal ID Glossary","icon":"book","href":"/getting-started/glossary"},{"title":"Subscription \u0026 Pricing Plans","icon":"credit-card","sidebarTitle":"Subscription \u0026 Pricing","href":"/getting-started/subscription-and-pricing"},{"title":"Cal ID FAQs","icon":"circle-question","href":"/getting-started/faq"},{"title":"Features Not Available Yet","sidebarTitle":"Not Available Yet","icon":"circle-half-stroke","href":"/getting-started/not-yet-supported"},{"title":"Getting Help","icon":"life-ring","sidebarTitle":"Get help","href":"/getting-started/get-help"},{"title":"Troubleshooting Cal ID","sidebarTitle":"Overview","icon":"wrench","href":"/troubleshooting/overview"},{"title":"No Available Times on Your Booking Page","sidebarTitle":"No available times","description":"Work through every reason a booking page shows no slots or fewer than you expect — schedules, limits, buffers, calendar conflicts, and timezones.","icon":"calendar-xmark","href":"/troubleshooting/no-available-times"},{"title":"Calendar Sync Problems","sidebarTitle":"Calendar sync","icon":"arrows-rotate","href":"/troubleshooting/calendar-sync"},{"title":"How to Request a Feature","sidebarTitle":"Request a feature","description":"Submit a Cal ID feature request from your dashboard, or post your idea publicly on the Cal ID roadmap where the team and other users can see it.","icon":"lightbulb","href":"/getting-started/request-a-feature"}]}]},{"tab":"Event Types","pages":[{"title":"Event Types","href":"/event-types/overview"}]},{"tab":"Scheduling \u0026 Teams","pages":[{"title":"Scheduling \u0026 Teams","href":"/scheduling/overview"}]},{"tab":"Apps \u0026 Integrations","pages":[{"title":"Apps \u0026 Integrations","href":"/apps/overview"}]},{"tab":"Customization \u0026 Settings","pages":[{"title":"Customization \u0026 Settings","href":"/customization/overview"}]},{"tab":"Developers","pages":[{"title":"Developers","href":"/developers/overview"}]},{"tab":"MCP","icon":"plug","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]}]},"basePath":"","title":"Calendar Sync Problems - Cal ID","buildId":"dpl_6cCEiK8XNNvaLBBkWzcBhdE9QfLC","deploymentId":"dpl_6cCEiK8XNNvaLBBkWzcBhdE9QfLC","dynamics":[],"chunks":[]}