Video icon 64
Learn to Code. Start your free trial today.
Advertisement

Techniques to Share Apple and Google Calendars

by
Student iconAre you a student? Get a yearly Tuts+ subscription for $45 →

I'd like to see all of my calendars in the Mac OS X Calendar app, in iOS's Calendar, and maybe even on the web. There are a few ways to get this done, but none of them are perfect. 

In a previous tutorial, I explained how to create and share calendars among iCloud users with the Mac OS X Calendar app. In this tutorial, I'll show you three ways to sync calendars between Mac OS X and Google Calendar, and I'll list the benefits and disadvantages of each.

1. Share Google Calendars With Apple Calendar

Step 1

Locate Internet Accounts in System Preferences > Internet Accounts. Click the plus sign to add a new account, and select Google.

Click Internet Accounts in System Preferences
Add a new Google account.

Enter your Google account information, including email address and password. If I didn't have Google 2-step verification turned on, this would be pretty straightforward. With 2-step verification in place, however, I have to get an application-specific password to login.

Enter your Google credentials here, but remember that an application-specific password may be required.

Step 2

Log into Google and locate the Manage Application Specific Passwords page  at Account > Security > App Passwords Settings. Enter a recognizable name, like MacBook Pro or Mac Authorization. This is important in case the device is compromised and the password must be revoked.

Generate a new application-specific password if you have set up Google's 2-step verification.

Copy the output password, a string of 16 characters and spaces, and paste it into the password field back in the Internet Accounts pane in System Preferences.

Copy the generated application-specific password, including spaces.

Tip: The link to the Google Account page is hidden under the profile picture in the top right. Click there to find Account settings and a link to Privacy information.

Step 3

Once logged in, choose which Google services to sync. I've chosen to sync everything, but only Calendar is required for this tutorial.

Mac OS X will sync more than just calendars.

Everything should be ready to go after adding the Google account to Internet Accounts, but open Calendar.appApplications > Calendar.app, to be sure. There is now a new Google heading in the Calendar list. Select or deselect calendars to make them visible or invisible in Calendar.


The Google calendars have synced and may selected or deselected, depending on which will be viewable.

The Google events will be editable from Mac OS X Calendar. They won’t appear in iCloud, but by going through a similar process in iOS's Mail, Contacts, Calendars settings pane on an iPhone or iPad, the Google calendars will appear (and be editable) in iOS's Calendar app, as well.

2. Subscribe to a Google Calendar in Mac OS X Calendar.

Step 1

The next option is to subscribe to a Google calendar in Calendar.app. Hover over the calendar in the My Calendars list in Google, and click the drop down menu. Select Calendar Settings to navigate to the Calendar Details.

Navigate to Google's Calendar Settings.

Step 2

At the bottom of the Calendar Settings page, just above the link to delete the calendar, are the URLs for the calendar. There are two ways to share: public and private. I'm keeping my calendars private, so I clicked the private iCal link to get the appropriate URL for Calendar.app. 

Using a public URL works the same, though. If you choose to use the public calendar URL, you must also enable the public URL in the Share This Calendar tab.

Share Google calendars as private or public.

Tip: Public calendars can be found in Google search results. I've never stumbled across someone's personal calendar in a Google search, but it's still a good idea to keep everything private if you don't want strangers peeking at your events.

Back in Calendar.app, add the Google calendar by pasting the URL into the calendar subscription field, File > New Calendar Subscription....

Enter the Google calendar subscription URL.

Choose the calendar location, in iCloud or locally saved On My Mac, and how often the calendar should refresh. There are a few other settings to fiddle with here, like the calendar's name and color.

Select the calendar subscription, right-click, and choose Get Info to return to these settings.

The Google calendar will appear in Calendar.app under the iCloud calendar list, but it will not be editable as it would if I added my Google account to my internet accounts in System Preferences. The calendar will also appear in iOS Calendar, but again, it is not editable. The Google calendar will not appear at all when accessing iCloud via a web browser.

My event and its information are visible but not editable in Calendar.app.

This is obviously not the best option to keep personal calendars synced among apps and devices. I'm not interested in just looking at my day on my Mac; I want to be able to edit my events and add new ones. Subscribing to Google calendars just doesn't get that done. It may be useful, though, when sharing calendars with other people, especially if I don't want my calendar to be edited by anyone except me.

3. Subscribe to an iCloud Calendar in Google Calendar

The third option should be to subscribe to an iCloud calendar in Google Calendar, but that just isn't possible. Google is prevented from crawling iCloud calendars by iCloud’s robots.txt file. That means Google can't access iCloud as you or I would and can't retrieve iCloud calendars.

Google cannot crawl iCloud and therefore cannot retrieve iCloud calendars.

Tip: A robots.txt file contains instructions about who may crawl a site and its directories. The web administrator places the text file in the root directory of the website.

Hypothetically, Google could ignore the robots.txt and crawl only the specific URLs provided by users, but it doesn’t do that at this time.

4. Use a Service to Subscribe to an iCloud Calendar

Step 1

Right-click on an iCloud calendar in Calendar.app and select Share Calendar. Click the checkbox to make the calendar public and copy the URL provided. The only option to share an iCloud calendar is to make the calendar public, but it is unlikely that someone will figure out that long URL. Google doesn't index calendars on iCloud.com, so no one should find it by searching, either.

Right-click on an iCloud calendar in Calendar.app to access its sharing settings.

Step 2

Visit iCloud Calendar Proxy and paste the iCloud calendar URL. Copy the output URL and return to Google Calendar. 

iCloud Calendar Proxy makes iCloud calendar sharing possible.

Step 3

Select Other Calendars > Add by URL, and paste the iCloud Calendar Proxy URL. The iCloud calendar will appear in the list of Other Calendars, but it will not be editable in Google Calendar.

Subscribe to a calendar in Google Calendar.

Conclusion

The only way to share editable calendars between Mac OS X Calendar.app and Google Calendar is by adding the Google account information to Internet Accounts in System Preferences and choosing to sync calendars. The calendars will be available and editable on all Apple devices, but they will not appear at iCloud.com. I also demonstrated several ways to share read-only calendars between iCloud and Google Calendar.

Hopefully in the future it will be easier to integrate iCloud and Google calendars, and these two tech giants will learn to work together to the benefit of their customers.

Advertisement