2calendars

Calendar sync for side-gig and parallel workers

Working two jobs off two Google accounts? Sync them in real time so you never get double-booked, without either employer seeing the other's calendar.

Two jobs, two Google accounts, zero communication between them

You’ve got a second income stream running alongside your main job: a part-time role, a handful of contract shifts, a parallel gig you’re building on the side. It lives on its own Google account, completely separate from your primary employer’s calendar, and that separation is often the point. Your day job doesn’t need to know about your side work, and your side gig definitely doesn’t need visibility into your employer’s calendar.

The problem is that “separate” also means “blind.” Your main job books a 2pm meeting with no idea your side gig already committed you to a client call at the same time. Your side gig accepts a shift without knowing your main job just added a mandatory all-hands. You end up doing the checking yourself, flipping between two logged-in accounts, or two browser profiles, trying to hold both schedules in your head before you say yes to anything.

Miss that check once and you’ve got a real conflict: two commitments, one you, and an awkward message to send to whichever side loses.

Manually cross-checking two logins is also just tiring in a way that compounds. Every “let me check my other calendar” moment is a small tax on saying yes to more work, the exact thing a side gig is supposed to make easier, not harder.

The core requirement: sync without exposure

This is where side-gig scheduling is different from a simple two-calendar problem. You don’t just need the two calendars to talk, you need them to talk without either one learning anything about the other. Your employer seeing “Freelance client call” on your blocked-out hours is a conversation you’d rather not have. Your gig client seeing your day job’s meeting titles is equally not their business.

2calendars is built around exactly that separation. It mirrors events between your two Google accounts in real time: the moment you book something on either side, the other reflects that hour as taken within seconds, but by default, what it mirrors is nothing but a “Busy” block. No title, no description, no location, no attendee list. Your main job sees you’re unavailable at 2pm. It never sees why.

One-way pipes, not a merged calendar

It’s worth being explicit about what this isn’t: 2calendars never merges your two calendars into one. Your day-job calendar keeps only your day-job events on it. Your side-gig calendar keeps only its own events. What each one gains is a private, real-time signal of when the other side has already claimed your time: two independent mirrors running in opposite directions, not a single shared view either employer could stumble into.

That distinction matters most when the stakes are a job, not just an inconvenience. A tool that quietly exposed your side income to your main employer’s calendar would be worse than no tool at all. The privacy default isn’t an extra feature here, it’s the reason this kind of sync is usable in the first place.

The same logic extends to a third or fourth commitment, if you’re stacking more than two. Each pair gets its own connection and its own privacy setting, so adding another shift-based gig doesn’t mean renegotiating how much your main job gets to see.

Setting it up

1. Connect both Google accounts. Authorize each one through Google’s own OAuth flow, 2calendars never sees or stores a password for either account, and you can revoke access independently from Google at any time.

2. Choose the direction. Most parallel workers sync both ways, so a commitment on either side blocks the other automatically. You can also run it one-way if only one calendar needs to know about the other.

3. Confirm the privacy setting. Busy-only is the default and the right choice here, leave it as is unless you have a specific reason to share more on one leg of the connection.

4. Let it run. Once live, 2calendars watches both calendars continuously and mirrors new events, edits, and cancellations in real time. There’s no manual refresh and no batch job to wait on, and health monitoring flags the connection if it ever stops working, so a quiet failure doesn’t turn into an accidental double-booking.

If a specific commitment shouldn’t cross over at all, a personal appointment squeezed between shifts, say, tag it [nosync] and it stays exactly where you put it.

Run both without either one running you

Working two jobs is hard enough without also being your own scheduling department. For the full connection walkthrough, see how to sync two Google Calendars, and for more on how the Busy-only default and custom titles work, read hiding event details behind Busy blocks. If you want to see how this compares to other approaches, our roundup of Google Calendar sync tools breaks it down.

Start free, no credit card, and your two calendars are talking to each other, privately, in about 60 seconds.

Frequently asked questions

Can I sync my two job calendars without either employer seeing details?
Yes. The default is a private "Busy" block with no title, description, location, or attendees. Neither calendar ever receives the other's event details, just proof that a time slot is taken.
Will connecting both jobs merge them into one calendar?
No. Each Google account stays completely separate. 2calendars mirrors availability between them as private Busy blocks, it never combines your two jobs into a single shared calendar.
What if I don't want a specific event to sync at all?
Tag it [nosync] and 2calendars will skip mirroring it, so a placeholder or a hold you don't want visible elsewhere stays exactly where you put it.

One honest answer to “are you free?”

2calendars mirrors your Google Calendars in real time — privately, automatically.

Start free

No credit card required · Works in 60 seconds