HOW TO
"Combining calendars" splits into two very different problems: seeing them together and stopping them from double-booking each other. Here are the four realistic ways to do each, and how to pick.
Viewing = you can see events from multiple accounts in one place. Doesn't stop anyone from booking you at the same time on another calendar.
Preventing double-bookings = each account actually blocks off the busy time. Requires the calendars to know about each other's busy state.
Every approach below solves one, both, or half of these — with different privacy trade-offs.
Add every Google account in System Settings → Internet Accounts. Enable Calendars for each. Open Calendar.app — every account's events appear color-coded in one view. Free, zero setup beyond the OS. Great for READING everything in one place.
Downside: purely a display. Each Google account still doesn't know about the others. Someone can send Calendar A an invite for a time when Calendar B is busy — Calendar A will accept it without warning.
In Google Calendar's settings, share Calendar A with Calendar B (and vice versa). Now each calendar shows the other's events. If someone tries to invite you on Calendar B for a Calendar A busy time, Google will warn them.
Downside: the default sharing level exposes event titles, attendees, and notes. For fractional consultants working across separate client Workspaces, this is often a non-starter — Client B's team shouldn't be able to read "Sensitive meeting with Client A" on your shared calendar. "See only free/busy" is available but has to be set on every calendar and remembered on future ones.
Copies real events between calendars. Every meeting exists 2–4 times — one per connected calendar. Prevents double-booking well because every calendar sees the same events. Configurable privacy per connection (sync "Busy" only, or full details).
Downside: ghost-event clutter (same meeting appearing 3 times in your week view), and any automation that watches your calendar (Slack presence, Granola/Fathom recorders, focus-time blockers) sees the ghosts too and sometimes mis-triggers.
Meetingpad reads free/busy times server-side via Google's
freeBusy API — times only, never titles. When a booking
arrives on any of your Meetingpad booking links, it writes a small
titleless "Busy" placeholder event on your other connected calendars.
The placeholder has no title, no attendees, no notes — just an
anonymous block of unavailable time.
The net effect: every calendar shows a unified availability picture, cross-account bookings are prevented, and no meeting-title leaks across accounts. The reading side keeps working through macOS Calendar.app — Meetingpad is a companion, not a replacement.