Summary
Settings → Apps → Calendar → Calendar Accounts → Add Account → Google overlays that account on this iPhone. If seeing those events in the built-in Calendar app was the whole job, they can stop. If hours on Google must exist as busy-block copies on signed-in iCloud, Outlook, or another Google — something Add Account cannot write — connect both calendars in Keeper.sh and send the copies. Overlay cannot write that copy.
This is for someone whose Google account is not on the phone yet and who wants it in Apple Calendar. If the account is already listed and events are missing or late, see /blog/google-calendar-not-syncing-with-iphone and stop. If the same Apple ID’s iCloud calendar is off, hidden, or stuck on On My iPhone, see /blog/apple-calendar-not-syncing. To write Google hours as busy blocks onto signed-in iCloud, see /blog/sync-google-calendar-with-icloud. For the reverse — Apple hours onto Google — see /blog/how-to-sync-apple-calendar-to-google-calendar. To share an iPhone calendar with a colleague off iCloud, see /blog/how-to-share-iphone-calendar.
Add Account only signs this Google account into this phone. A subscribed ICS feed, a Secret Address, or a share link is pull-only. Ticking two accounts in Calendar.app only stacks a view on this device. None of those methods write a busy block onto another calendar.
Keeper.sh exists because it can write private copies — placeholder title from the source calendar — onto the calendar that stays empty. Signed-in iCloud is a valid destination, the same as Google and Outlook. Two mappings if both ways are needed. Connecting copies nothing by itself.
First try Add Account; if the events show, stop. Then read why subscribe, ICS, and share links fail the leftover job, and follow the numbered Keeper.sh setup for the write-copy.
Add Account overlays Google on this iPhone — they can stop
The native path to add Google Calendar to iPhone is Settings → Apps → Calendar → Calendar Accounts → Add Account → Google, then sign in. Leave Calendars on. Turn off Mail, Contacts, and Notes if they only want the calendar. Open Calendar, tap Calendars at the bottom, and confirm the Google calendars are ticked.
Apple’s Change your Calendar settings on iPhone documents the current labels: “Tap Apps, then tap Calendar,” “Tap Calendar Accounts, then tap Add Account,” and “Tap a service (iCloud, Microsoft Exchange, or Google, for example), then sign in.” (Apple, checked 30 Aug 2026.)
Google’s help for the same flow still prints the older “Calendar → Accounts” wording, so quote it only to confirm both screens match: “You can sync Google Calendar with the Calendar app that comes on your iPhone or iPad,” “Tap Accounts Add account Google,” “To sync only your calendar, turn off the other services,” and “To sync with an existing account, tap the account and turn on Calendars.” (Google, checked 30 Aug 2026.) If the account is already listed, stop and go to /blog/google-calendar-not-syncing-with-iphone — that page owns the diagnosis after the account is on the phone.
To make new events typed on the phone land on Google rather than iCloud, go to Settings → Apps → Calendar → Default Calendar and pick the Google calendar. Apple says: “Tap Default Calendar, then select the calendar you want to use as the default calendar.” (Apple, checked 30 Aug 2026.)
Google also notes that some features “don’t work on Apple Calendar,” including email notifications for events, creating new Google calendars, and Room Scheduler. The Google Calendar app is optional and does not put events into Calendar.app, so installing it is not the answer here. Neither Google nor Apple publishes a refresh interval for this account connection, and Apple’s Fetch settings do not apply to it.
Verdict: Add Account / Calendar Accounts is how Google lands in iPhone Calendar. If the events now show, stop. Keeper.sh does not belong on a Google row that just appeared. It does not copy those hours onto another calendar.
A subscribed ICS is overlay, not a copy onto another calendar
Calendar Accounts can show Google next to iCloud, but it cannot copy events from Google into signed-in iCloud, Outlook, or another Google. There is no Settings toggle that writes one account’s events into another account’s calendar.
Google explains the two native views: “With some calendar applications, you can sync your calendar using your Google Account. This means you can add and edit events from either Google Calendar or your other application,” or “If your calendar application doesn't have a full sync option, or if you want a read-only view of one calendar, you can sync your calendar to the application using a link to iCal.” It also warns: “The Secret Address lets you view your calendar in other applications, like Outlook or Apple Calendar,” and “Important: Only you should know the Secret Address for your calendar. Do not share this address with other people.” (Google, checked 30 Aug 2026.)
Apple documents the subscribe path as: “Subscribe to an external, read-only calendar: Tap Add Subscription Calendar, enter the URL of the .ics file you want to subscribe to … then tap Find,” and “You can also subscribe to an iCalendar (.ics) calendar by tapping a link to it.” (Apple, checked 30 Aug 2026.) On Mac, Calendar offers an Auto-refresh menu for subscribed calendars, but Apple publishes no Auto-refresh interval numbers, and Google publishes none for the Secret Address / From URL feed.
Keeper.sh treats a subscribed link the same way: “A calendar subscribed from a link is read-only, so it can send events but never receive them.” (/docs/accounts-and-calendars, checked 30 Aug 2026.)
Verdict: Add Account only overlays this phone. A subscribed Google calendar stays as fresh as the subscriber’s next refresh. No iPhone setting writes Google into iCloud, Outlook, or another Google. That leftover job is a Keeper.sh connection.
Put busy-block copies on signed-in iCloud, Outlook, or another Google with Keeper.sh
They need a Keeper.sh account. Connecting copies nothing by itself: “Connecting copies nothing by itself. Events only move once you send them to another calendar.” (/docs/accounts-and-calendars, checked 30 Aug 2026.)
If iCloud is in the pair, an app-specific password is required. Apple’s documentation says app-specific passwords “allow you to sign in to your Apple Account in apps made by developers other than Apple,” and “Any time you change or reset your primary Apple Account password, all of your app-specific passwords are revoked automatically … You need to generate new app-specific passwords for any apps that you want to continue using.” (Apple, checked 30 Aug 2026.) Keeper.sh notes: “iCloud and Fastmail — an app-specific password, made in their settings.” (/docs/accounts-and-calendars, checked 30 Aug 2026.) If a working Keeper.sh iCloud connection goes quiet after an Apple password change, generate a new app-specific password and paste it into Connect Apple Calendar. That is Apple’s behavior, not a Keeper.sh defect.
-
Sign in to Keeper.sh and connect the Google account that holds the events on its own permission screen. “Google, Outlook and Microsoft — sign in on their own permission screen and grant calendar access. Keeper.sh never sees your password.” (/docs/accounts-and-calendars, checked 30 Aug 2026.) If the empty calendar is iCloud, connect that Apple ID with an app-specific password. If it is Outlook or another Google, connect that account the same way. Click-by-click details are at /docs/accounts-and-calendars. One Apple ID; that signed-in iCloud calendar can send and receive. Connecting copies nothing.
-
Open the source Google calendar and, under Send Events to Calendars, tick the destination — the calendar that stays empty, whether signed-in iCloud, Outlook, or another Google. One tick is one mapping. “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, checked 30 Aug 2026.)
-
If the other direction is needed, open the other calendar and tick back. That is two mappings, A→B and B→A, the same as Google and Outlook. One Apple ID, not two.
-
Leave the privacy defaults on. “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, checked 30 Aug 2026.) Description and location toggles are Pro. Guest lists are never copied.
-
Confirm on the destination: a real event, named after the source calendar, with no notes, no location, and no guest list. Open iPhone Calendar on that destination calendar and wait for the next write. On Pro, Google and Outlook notify Keeper.sh the moment an event changes, so the copy can land within seconds. iCloud stays on a timer on either plan, because Apple publishes no way for a calendar tool to be told an event changed.
If nothing arrives, see /guides/event-has-not-arrived. If two of something appears, see /guides/same-event-appears-twice. Untick the destination to stop new copies; events already copied stay where they are.
For the longer Google-to-signed-in-iCloud essay, see /blog/sync-google-calendar-with-icloud. For Apple-to-Google, see /blog/how-to-sync-apple-calendar-to-google-calendar.
Sources are read every minute on every plan. Free destinations write every 30 minutes. Pro writes every minute, and Google and Outlook notify Keeper.sh so a copy can land within seconds. “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, checked 30 Aug 2026.) The free plan includes 2 accounts, 3 connections, 1 shareable link, and 25 MCP/API calls a day. Pro is “$5 a month, or $45 a year paid annually.” (/docs/plans-and-limits, checked 30 Aug 2026.)
Why a Keeper.sh copy instead of Add Account or a subscription
Add Account / Calendar Accounts only signed this Google account into this phone. Keeper.sh writes a private copy onto the calendar that stayed empty, whether that destination is signed-in iCloud, Outlook, or another Google.
Overlay, or a second Calendar Account, only stacked a view on this phone. Keeper.sh copies exist as real events on the destination, with a placeholder title and description and location hidden by default.
A subscribed ICS / Secret Address was pull-only and only as fresh as the next refresh. Keeper.sh copies keep correcting. On Pro, Google and Outlook notify Keeper.sh when events change; iCloud stays on the timer because Apple publishes no push.