Summary
How to sync two Google calendars from different accounts is overlay first: sign both Google accounts into the same Calendar app. If seeing both calendars in one place was the whole job, they can stop. If hours on account A must exist as busy-block copies on account B — the calendar colleagues or a booking page actually check — overlay cannot write that. Connect both Google accounts in Keeper.sh and send the copies.
This is for someone with two Google accounts, usually work and personal, where the calendar people book still shows free while the other account holds the real meeting. If they only need Google on this iPhone for the first time, see /blog/how-to-add-google-calendar-to-iphone and stop. If Google is already listed on the iPhone but events are missing or late, see /blog/google-calendar-not-syncing-with-iphone. For Google hours as busy blocks on Outlook, see /blog/sync-google-calendar-with-outlook; to overlay Google into Outlook instead, see /blog/add-google-calendar-to-outlook. To share with a person, see /blog/how-to-share-google-calendar. Merge or combine into one calendar is a different job than busy-block copies between two Google accounts.
The weakest link is that Add another account, Calendar Accounts, or ticking two calendars only stacks a view on this device. Share, Subscribe to calendar, From URL, and syncselect are look-or-tick controls. Import & Export is a snapshot Google says will not stay in sync. None of them write a busy block onto the calendar people book.
Keeper.sh exists to write private copies onto the calendar that stays empty. A copied event uses a placeholder title from the source calendar, with description and location hidden by default. Connecting copies nothing by itself; events only move once a destination is ticked. Signed-in iCloud is a valid source and destination too, same as Google and Outlook, but this page’s destination is the other Google account.
A second Google account on this screen is overlay
Google Calendar on Android can hold more than one account. Google says: “In Google Calendar, you can add more than one account,” and the path is “At the top right, tap your Profile photo → Add another account” (Add another account to Google Calendar, fetched 30 Aug 2026). To switch or choose which calendars show, “At the top left, tap Menu. Select the calendars you want to display in the grid” (Switch between accounts in the Google Calendar app, fetched 30 Aug 2026).
On an iPhone or iPad, the path is Settings → Calendar → Accounts → Add account → Google. Google says: “Emails, contacts, and calendar events will now sync directly with your Google Account” (Add Google Calendar events to Apple Calendar — iPhone & iPad, fetched 30 Aug 2026). That walkthrough is covered in /blog/how-to-add-google-calendar-to-iphone; use it if this is the first time Google is being added to this phone. On a Mac, open Apple Calendar, click the Accounts tab, click Add, then select Google → Continue (Add Google Calendar events to Apple Calendar — Computer, fetched 30 Aug 2026).
The win is real: both Google accounts are visible on this screen. If that was the whole job, they can stop. Seeing both accounts is how people sync two Google calendars onto this screen. It is not how to sync 2 Google calendars as busy-block copies onto the other account. A colleague, Find a time, or a booking page looking at account B still sees that hour free.
Share, Subscribe, From URL, and syncselect do not write a busy block onto the other account
A meeting accepted on personal Google sits on that account. Work Google — the calendar colleagues actually book, Find a time, or a booking page — still shows that hour free. Signing the personal account into the same Calendar app only overlays it on this screen. Sharing it with the work account puts it under Other calendars; ticking it still does not write a busy block onto work’s primary calendar.
Sharing a Google calendar grants the other account permission to view it, not to receive copies on its own primary calendar. Google’s share page lists permissions including See only free/busy (hide details) and See event details, and says: “They get an email. To find your calendar, they need to click the link in the email” (Share your calendar, fetched 30 Aug 2026). Even See only free/busy lives on the shared calendar; it is not a busy block written onto account B.
Subscribing is also view-only. Google says: “To subscribe to a new calendar, you must use a computer web browser. You can't subscribe to a calendar in the Google Calendar app for Android, iPhone, or iPad,” and “If the calendar is already shared with you: In your primary calendar, on the left, it shows under ‘Other calendars’” (Subscribe to someone else’s calendar, fetched 30 Aug 2026). The path is Other calendars → Add other calendars → Subscribe to calendar, or From URL. Google also warns: “You can only add a calendar with a link if the other person's calendar is public.”
The Secret address in iCal format is for viewing in another program, not for writing back. Google says: “The Secret Address lets you view your calendar in other applications, like Outlook or Apple Calendar. If you want to let someone else view your calendar, you can share your calendar,” and “You should not give your Secret Address to other people” (Sync your calendar with computer programs, fetched 30 Aug 2026). A pasted Secret Address or ICS feed is pull-only. Google publishes no poll interval for a URL-added calendar, so do not expect predictable freshness.
syncselect controls which calendars inside one Google account overlay onto Apple Calendar or another app. Google says: “Which calendars are automatically synced: Any calendars that you find under ‘My Calendars’ in Google Calendar on your computer; Birthdays,” and “Sync other calendars: On your computer, visit the Calendar sync page. Check or uncheck the names of any calendars” (Add Google Calendar events to Apple Calendar, fetched 30 Aug 2026). It does not write account A onto account B.
Google’s work-personal overlay page confirms the separation: “Your work and personal calendars are stored separately. Personal account details aren’t shared with your work account,” and “Unless you share your personal calendars directly with your work account, coworkers and administrators can’t find your personal calendars” (Show personal & work calendars in Google Calendar, fetched 30 Aug 2026). Sharing so they can see both is still overlay.
Verdict: Share, Subscribe, From URL, Secret Address, and syncselect only change what this signed-in view shows. They do not write a busy block onto the other account.
Import & Export is a snapshot
Google’s Import & Export path is Settings → Import & Export → Select file from your computer. Google says: “You can transfer your events from a different calendar application or Google Account to Google Calendar,” but “Imported events don't stay in sync between your 2 accounts. If you want your calendars to sync, share your calendar with the other account,” and “By default, events are imported into your primary calendar” (Import events to Google Calendar, fetched 30 Aug 2026). Note that Google’s suggested “sync” here is share, which is overlay, not a live copy onto the other account.
Verdict: Export/import is a one-time snapshot. It does not update itself, it does not keep writing new account-A hours onto account B, and guests are not imported. It cannot write a live copy onto the other account.
Put account A hours on account B with Keeper.sh
- Sign in to Keeper.sh and connect both Google accounts on Google’s own permission screen. Click-by-click details are at /docs/accounts-and-calendars. Connecting copies nothing by itself. Two Google accounts fit the Free allowance of 2 accounts and 3 connections.
- Open the source calendar — account A, the one that already holds the events. Under Send Events to Calendars, tick account B’s calendar, the one people actually book. One tick is one mapping. The docs say: “Each calendar you tick becomes one connection. Events are copied into it, one way, and the copies are kept corrected as the originals change” (/docs/sending-events-to-another-calendar).
- If they need the other direction too, open account B’s calendar page and tick account A. That is two mappings, A to B and B to A. Free still fits, because it allows 2 accounts and 3 connections. A create still lands on the calendar that owns the event.
- Leave the privacy defaults. Copied events use a placeholder title from the source calendar; description and location stay hidden unless toggled, and those toggles are Pro. Guest lists are never copied. The docs say: “A copied event shows the name of the calendar it came from in place of the real title, and no description or location. That is the default on every plan” (/docs/what-a-copied-event-shows).
- Confirm on account B: a real event, named after the source calendar, with no notes, no location, and no guest list. Wait for the next write. On Pro, Google Calendar and Outlook notify Keeper.sh the moment an event changes, so the copy lands within seconds. We do not notify Google or Outlook. iCloud, Fastmail and other CalDAV calendars are checked on a timer on either plan, because Apple publishes no way for a calendar tool to be told an event changed (/docs/plans-and-limits).
If nothing arrives, see /guides/event-has-not-arrived. If the same event appears twice, see /guides/same-event-appears-twice. Untick the destination and new events stop being copied, but events already copied stay where they are.
Free destinations write every 30 minutes; sources are read every minute on every plan. Pro is $5 a month, or $45 a year paid annually (/docs/plans-and-limits). Pro writes every minute and gets the Google and Outlook notify path. For Google hours as busy blocks on Outlook, see /blog/sync-google-calendar-with-outlook. A work-and-personal pair is also at /recipes/sync-work-and-personal-calendars; titles on one side only is /recipes/keep-personal-details-out-of-work.
Why a Keeper.sh copy instead of a second-account overlay
Adding a second Google account, or ticking two calendars in Calendar.app, only overlays both on this screen. Keeper.sh writes a private copy of account A onto account B, the calendar that stayed empty when colleagues or a booking page looked. Share, Subscribe, From URL, and syncselect only stack a view; Keeper.sh copies exist as real events on the destination, with the placeholder title and hidden details. Import & Export is a snapshot Google says will not stay in sync; Keeper.sh copies keep correcting, and on Pro Google notifies Keeper.sh so changes can land within seconds. Native overlay is the right answer when both-visible-on-this-screen was the whole job. Keeper.sh is for the calendar people actually book.