Calendar Busy Sync

A Chrome extension that mirrors events between two Google Calendars as private "Busy" placeholders — so your free/busy availability stays accurate everywhere, without exposing what those events are.

The problem

Connecting a second Google Calendar to your main one only changes what you see — colleagues, clients, and scheduling tools still see you as free during events on the other calendar, because Google treats each calendar as a separate island. Meetings get booked over real commitments. Calendar Busy Sync fixes this without merging accounts or sharing event details.

What it does

Mirrors events as Busy Every event on your source calendar becomes a private "Busy" placeholder on the target calendar. Time is blocked. Details stay hidden.
One-way or two-way Mirror from A → B, or keep both calendars in sync as A ↔ B. You choose.
Customizable title Default placeholder title is “🔒 Busy”. Change it to anything that fits how your team reads your calendar.
Stays in sync Placeholders update when source events change and are deleted when source events are removed — automatically, on a schedule you set.

What Google data it uses

Calendar Busy Sync requests the https://www.googleapis.com/auth/calendar OAuth scope. Specifically, it uses your authorization to:

All processing happens in your browser. The extension does not talk to any server operated by the developer. There is no backend, no analytics, no telemetry, and no third-party SDK. The developer cannot see your calendar data. Read the full privacy policy.

How it works

1

Sign in with Google

Open the extension popup and authorize it on the Google account that owns both calendars. Pick a source calendar and a target calendar.

2

The extension reads events from the source

It fetches events from the source calendar within a configurable time window using your own OAuth token. No copy of your data leaves your browser.

3

It creates matching "Busy" blocks on the target

Each placeholder is created with visibility set to private and tagged with a private extended property so the extension can recognise its own placeholders later.

4

It keeps them in sync

On the schedule you choose (minimum every 5 minutes), the extension updates and deletes placeholders so the target calendar always reflects the current state of the source.

Privacy

Calendar Busy Sync is 100% client-side. Your calendar events stay in your Google account. The extension's settings (selected calendar IDs, sync interval, last-sync time) live in chrome.storage, inside your own browser. The OAuth access token is managed by Chrome via chrome.identity — the developer never sees it.

Placeholders the extension creates are written with visibility=private, so people viewing your target calendar see only a “Busy” block with the title you chose — no event title, no description, no attendees. Full details are in the privacy policy.

Frequently asked questions

Will it reveal my private event details?

No. Placeholders are created with visibility set to private and only carry the title you choose (default: “🔒 Busy”). Original event titles, descriptions, locations, and attendees are never copied to the target calendar.

Does it work between two different Google accounts?

Both calendars must be accessible from the same Google account that authorizes the extension. The usual ways to make that happen are: subscribe to the other calendar via “Add calendar → Subscribe”, or share the other calendar with edit access where your IT policy allows it.

Where is my data stored?

Your calendar events stay in your Google account. The extension's settings are stored in chrome.storage inside Chrome and (for the sync portion) inside your own Google account. There is no developer-operated server.

Is it free?

Yes. Calendar Busy Sync is free to use, with no premium tier and no in-extension purchases.

Can I undo it?

Yes. The extension popup has a “Remove placeholders” button that deletes every placeholder it created, and a “Reset extension” button that removes local configuration and revokes the OAuth token. Uninstalling the extension also clears its local storage.

How often does it sync?

You choose. Auto-sync can run on a schedule, with a minimum interval of 5 minutes, or you can trigger a sync manually from the popup using the “Sync now” button.

Try it

Free. Private. Set it once.

Questions? Contact hello@antonkrokhmal.com.