Skip to content

How to merge multiple Google calendars

There are four ways to combine Google calendars, and they solve different problems. Three are built in. The fourth is for when you need one availability that other people can book against.

1. Add another account's calendar to your own view

If you have access to another account, you can add its calendar to your calendar list and see its events beside yours. This changes what you see. It does not change what anyone else sees, and it does not put your events on their calendar.

2. Share a calendar as free/busy

In calendar settings, share with specific people and choose "See only free/busy (hide details)". They see when you are busy without seeing titles, guests or locations. This is the closest native option, and it has three limits that matter:

  • it is per calendar, so a second account means a second share;
  • it is one direction, set by the owner;
  • it only helps somebody looking at that shared calendar. If they book through a link, a form or a scheduling tool, it does nothing for them.

3. Subscribe to a feed, or copy events

You can subscribe to another calendar's ICS feed, which keeps a live copy, or use "Copy to" on a single event to duplicate it in one click, or script a bulk copy with Apps Script. All three duplicate data: the copy holds real event details, it drifts or goes stale, and duplicates have to be managed afterwards.

Where the built-in options stop

If you have two or more Google accounts and you want one availability that anyone can book against, none of these gives it to you. Sharing is per calendar and one direction. Copying duplicates the details you may not want duplicated.

The fourth option: merge busy blocks across accounts

BusyBlocks connects each Google account. The accounts you add to one sync group share busy time with every other member: only the busy intervals are copied, into a combined availability on each account, refreshed about every minute. The sync engine reads start and end times only, never titles, descriptions, guests or locations, so the merged view carries availability and nothing else. It covers link-based booking, because the availability is generated from the accounts rather than read off a shared calendar.

Worked example: a work account and a personal account

Ana has two Google accounts. Her coworkers book meetings from her work calendar ([email protected]). Her personal calendar ([email protected]) holds the school run and the dentist, and she does not want either to appear on the work calendar by name.

  • She signs in at busyblocks.app with the work account and connects the personal account.
  • She creates one sync group and adds both accounts to it. Accounts in a group share busy time with every other member, both ways: the personal busy time lands on the work calendar, and the work busy time lands on the personal calendar.
  • On the next sync, about a minute later, the appointments appear on the other account's calendar as "Busy" blocks.
  • A coworker booking from the work calendar now sees that the time is taken. The original event is not there.

By default it syncs the primary calendar on each account and the next seven days; any other calendar you enable on either account becomes a source too. Each block is titled "Busy": the original title, description, guests and location are not copied. If she moves the dentist appointment, the block moves on the next sync. If she deletes it, the block goes. Her work admin sees only the block's title, not the original event.

What it does not do

Google accounts only. Outlook and iCloud are not supported today. Only the next seven days are read by default, and the window is adjustable from 1 to 90 days. Events of 23 hours or longer, including all-day and multi-day events, are not synced. It costs $10 a month or $96 a year, and there is no free trial.