Easy CalendarSync

Google Workspace · Microsoft 365

Your Teams calendar can’t see your Google one. So people book over you.

A shared calendar link will not fix it. It is read-only, it refreshes hours later, and it never makes you look busy. Easy Calendar Sync writes real events into both calendars, within a minute, in whichever direction you choose.

Two calendars, the same afternoon. Without sync, a client call sits at 14:00 in Google Workspace while Microsoft 365 shows the afternoon free, so a colleague books sprint planning straight over it. With sync on, the same hour reads “Busy” in the Microsoft column. The client call is still only in Google, and nothing on the Microsoft side says who the call is with.

The obvious fix

Why a shared calendar URL is not the answer

Most people can share an iCal link, and for most people that is enough. If two organisations both expect you in their meetings, it is not. A subscribed feed fails in three specific ways.

It is read-only

The events arrive as a separate overlay calendar. The destination system shows them, but it does not treat them as your entries.

It refreshes on the provider’s schedule

In hours rather than minutes, and you do not control when. A meeting you accepted this morning is not there this afternoon.

It does not make you busy

This is the one that bites. Teams’ scheduling assistant and Google’s Find a Time read free/busy, and a subscribed feed is not part of it. Colleagues keep booking over you, which is the problem you were trying to solve.

None of that makes iCal subscriptions bad. They are the right tool for sharing a calendar with someone who needs to look at it. They are the wrong tool for being present in two scheduling systems at once.

What it does instead

Real events in both calendars, within a minute

Easy Calendar Sync writes a native event into the destination calendar. It shows up in the scheduling assistant, in Find a Time, on your phone and offline, because it is an ordinary event rather than a feed. Your colleagues see a busy hour without being told anything about it.

Each provider tells us when something changed, so a new or moved meeting usually crosses over within a minute. Events flow one way or both ways, whichever you pick per pair of calendars. A nightly reconcile catches anything a missed notification dropped.

Every event it creates carries a mark. It will only ever modify or delete an event carrying that mark, so the rest of your calendar is not something it can touch.

How it works

Three questions, then it runs

Connect both accounts

Sign in to Google and to Microsoft once each. You can connect several accounts on either side, which is normal when you hold two work identities.

Choose the calendars and the direction

Pick one calendar on each side, then say whether events flow one way or both. Two-way is two mirrors, and each one can be paused on its own.

Choose how much detail crosses over

Full detail, where the mirrored event keeps its title and location, or busy only. You set this per direction, so a client’s calendar can get less than your own does.

Privacy

What the other side gets to see

When the two calendars belong to two different companies, this is the part that decides whether the tool is usable at all. Two things are worth stating exactly.

Busy only

It replaces the title and drops the location

A busy-only mirror says you are unavailable. It does not say what the meeting is or where it is, and it never carries the other attendees.

One thing does cross over, and we would rather you heard it here. Every mirrored event ends with a line naming where it came from, like Synced from Acme Project (Google) by Easy Calendar Sync. That line is written at every level of detail, including busy only, because a blank block with no explanation is worse for whoever finds it. So the name of the source calendar is visible on the other side. If that name says more than you want it to, rename the calendar.

Invitations

It cannot send one

Not a setting you could leave switched on by mistake. No part of the code that talks to a calendar provider ever sets an attendee list, and tests/test_provider_contract.py asserts that for every provider, so a new one cannot quietly reintroduce it.

Mirroring a client’s calendar cannot email that client. Nobody gets an invitation, an update, or a cancellation because of something this tool did.

It reads and writes calendar events, and nothing else. No mail, no contacts, no files. It does not sell your data, share it, advertise against it, or train anything on it. The privacy policy lists exactly what is stored and for how long.

Who it is for

People who are expected to be in two systems at once

Not a personal calendar beside a work one. Two organisations, both of which book meetings with you.

A Workspace agency inside a client’s Teams

Your company runs on Google. Your biggest client runs on Microsoft and has given you an account in their tenant, and their project managers schedule from their own scheduling assistant.

A contractor on two systems

One calendar you own and one each client hands you. Neither side can see the other, and you are the only person who knows about the clash until it has already happened.

An acquisition mid-migration

Two tenants that will be one tenant eventually. Until then people are booked in both, and the migration date keeps moving.

Where this is up to

Invite-only, for now

Easy Calendar Sync is in a private beta. There is no sign-up form yet, and signing in without an invitation will tell you that you are not invited. Saying so here is better than letting you find out at the door.

Email support@easycalendarsync.com with the two platforms you are on and what you need kept in step. A person reads it and replies.