I have a personal Google calendar, associated with my own personal Google account, and a work Google calendar, as part of my office's Google Apps setup. Whenever co-workers of mine try to schedule appointments with me, they don't see my personal calendar show up as "busy" times. I've been able to share my personal calendar with my work account, and I can see the calendar there and view appointments, but none of my personal appointments appear as busy times when a co-worker tries to schedule an appointment. Is there a way to set this up?

4 Answers 4


Both your calendars are distinct, even if your personal calendar is shared with your Google Apps account.

Unfortunately, there is no native way to share a common busy/available status merged from 2 calendars with your co-workers.

See this answered on google forums validated by a Google Team member

I think only a free/busy consolidated calendar will work for you. You could create yet another additional calendar just for this purpose and copy all events to it though not really practical so I think only an introduced feature "all calendars as one" in Gcal could cater for this.

Here are 4 workarounds: None of them are perfect, but they can fulfill your requirement : to make sure your coworkers don't schedule a meeting in your PRO calendar when you are busy in your PERSONAL calendar.

  • Share your personal calendar with your coworkers, and teach them how to look at your availability in both your calendars. (quite tedious, and practically unusable if many co-workers)

  • Each time you create a new event in your personal calendar, duplicate the free/busy status by inviting your GoogleApps account to the event. The easiest way.

  • Sync automatically both calendars, with Google App Script , or using a third-party service. Eg : https://syncthemcalendars.com

  • Publish both calendars in a schedule service , like https://calendly.com/ , that can expose several calendars at the same time, so your coworkers pick a schedule in it instead of calendar. Not very practical for internal use, but efficient for exposing availability to an external user.




  • 1
    Thanks -- you've combined a number of alternatives all in one spot. Much appreciated.
    – Vultan
    Jun 17, 2019 at 13:17
  • Is this still the case? Quite disappointing TBH.. this seems like a very commmon use case. In effect it force people to use the work calendar for private events, making it harder to separate work/play. It also creates headache when switching jobs (unless you want to lose all your private event history) EDIT: A newish post (still) describes the issue: reclaim.ai/blog/…
    – olejorgenb
    Nov 4, 2021 at 11:07

I use reclaim.ai for this - Works like a charm. It has a lot of other features, but the one you're looking for should be addressed by their free plan.

  • 1
    Thanks sir! works like a charm
    – Roger
    Jun 14, 2022 at 12:43

Here is a blog post that explains how to do it. That blog post recommends writing a custom Google Apps Script. If you want to avoid coding it yourself, a comment helpfully suggests using this tool: https://ift.tt/cal-to-cal

function sync() {

  var id="XXXXXXXX"; // CHANGE - id of the secondary calendar to pull events from
  var secondaryCal=CalendarApp.getCalendarById(id);
  var today=new Date();
  var enddate=new Date();
  enddate.setDate(today.getDate()+30); // how many days in advance to monitor and block off time
  var secondaryEvents=secondaryCal.getEvents(today,enddate);

  var primaryCal=CalendarApp.getDefaultCalendar();
  var primaryEvents=primaryCal.getEvents(today,enddate);
  var stat=1;
  var evi, existingEvents;
  for (ev in secondaryEvents)
    for (existingEvents in primaryEvents) // if the secondary event has already been blocked in the primary calendar, ignore it
        if ((primaryEvents[existingEvents].getStartTime().getTime()==evi.getStartTime().getTime()) && (primaryEvents[existingEvents].getEndTime().getTime()==evi.getEndTime().getTime()))
    if (stat==0) continue;
    var d = evi.getStartTime();
    var n = d.getDay();

    if (evi.isAllDayEvent()) continue;
    if (n==1 || n==2 || n==3 || n==4 || n==5) // skip weekends. Delete this if you want to include weekends
      var newEvent = primaryCal.createEvent('Booked',evi.getStartTime(),evi.getEndTime()); // change the Booked text to whatever you would like your merged event titles to be
      // alternative version below that copies the exact secondary event information into the primary calendar event
      // var newEvent = primaryCal.createEvent(evi.getTitle(),evi.getStartTime(),evi.getEndTime(), {location: evi.getLocation(), description: evi.getDescription()});  

      newEvent.removeAllReminders(); // so you don't get double notifications. Delete this if you want to keep the default reminders for your newly created primary calendar events




  • Why did this get downvoted?
    – Tomiwa
    Apr 20, 2021 at 3:03

After trying everything, here is the answer. This is the only way I could find a way to have my personal google calendar show up on my business google suite / workplace calendar so all my employees could see that I was busy without needed to subscribe to a separate personal calendar (which I tried and everyone just checked my work calendar and scheduled meetings over my personal calendar).

Solution: SyncThemCalendars

This app, SynchThemCalendars let me first identify my target work calendar and then identify my source personal calendar. I logged into each using Google Sign in and it auto-synced. Once they were in sync, I was able to modify what information the personal calendar showed on my work calendar... so I set the description to be overridden with "BUSY", made it private, and hid all remaining details. You just hit the drop downs and confirm by clicking the checkmark. Couldn't have been easier. I then checked my Google Suite work calendar and where all my personal google calendar events were, it simply read busy.

I can now use my Calendly off of one calendar and have my employees just check my one work calendar and see my full availability (and unavailability) all in one place. So stoked!

Previously I had my executive assistant manually adding "Busy" next to each personal event so employees would stop scheduling meetings over my personal events. Service came with a 14-day trial. I was so excited that it all worked, I just signed up. You can pay monthly for like five bucks or I chose yearly for $4/mo for $48 total. Game-changing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.