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.
Approaches 1 through 3 are what people default to when they don't know there's a tool built specifically for this. Native Calendar.app only reads (nothing prevents double-booking). Cross-sharing works but leaks meeting titles: a real problem the moment you're supporting more than one client. Sync tools solve visibility by cluttering every calendar with duplicate ghost events.
Meetingpad was designed for the "multiple Google Workspaces, need privacy across them, want it to just work in a native Mac app" case. It's the daily driver for that audience. Not a workaround, not a partial fix.