Zimbra Tech Skillz: Sync Your Gmail and Zimbra Calendars

Many thanks to Carlos Pineda, Senior Solutions Advisor at Zimbra, for this post!

Did you know that you can sync your Gmail calendar to your Zimbra account, starting with Zimbra 8.8.9? This means that you can see your Zimbra events in your Gmail calendar AND your Gmail events in your Zimbra calendar. Any change you make to one calendar will sync to the other including new events, updates to events, and deleted events.

There are steps to perform in Google, on the Zimbra server and in the Zimbra Web Client. Let’s start with the steps in Google.

Steps in Google

1. Create a Project in the Google Developer Console.

Google APIs use the OAuth 2.0 protocol for authentication and authorisation. Google supports common OAuth 2.0 scenarios such as those for web server, installed and client-side applications. So to sync the calendar, you need to first obtain OAuth 2.0 client credentials from the Google API Console. Then your client application requests an access token from the Google Authorization Server, extracts a token from the response and sends the token to the Google API that you want to access.

2. Create credentials to access Google’s APIs. A client ID and client secret are required to authenticte users and gain access to Google’s APIs.

  • Specify OAuth consent screen details.

  • Create credentials specifying your ZCS environment; for example, https://mail.zimbra.io

3. Enable CalDAV API.

 

 

Steps on the ZCS Server

    1. Set zimbraOAuthConsumerAPIScope on your domain.

zmprov md <your domain> zimbraOAuthConsumerAPIScope ‘https://www.googleapis.com/auth/calendar:google_caldav’

    1. Set zimbraOAuthConsumerCredentials on your domain. Specify your client id and client secret.

zmprov md <your domain> zimbraOAuthConsumerCredentials <client id>:<secret>:google

    1. Set zimbraOAuthConsumerRedirectUri on your domain.

zmprov md <your domain> zimbraOAuthConsumerRedirectUri ‘<hostname>/service/extension/oauth2/authenticate/google:google’

Example:

zmprov md zimbra.io zimbraOAuthConsumerRedirectUri ‘https://mail.zimbra.io/service/extension/oauth2/authenticate/google:google’

 

 

Steps in the Zimbra Web Client

  1. Login to your Zimbra Web Client.
  2. Authorize Google to visit the following URL, specifying your hostname: https://<hostname>/service/extension/oauth2/authorize/google?type=caldav
  3. Select your Gmail account, and you will see the Gmail Calendar in the Zimbra Calendar.
  4. You can create an event from Zimbra into Gmail Calendar or create an appointment in Gmail Calendar, and see it from Zimbra.

Calendar View in Zimbra

Calendar View in Gmail

Thanks for reading,

Your Zimbra Friends & Colleagues

23 Responses to Zimbra Tech Skillz: Sync Your Gmail and Zimbra Calendars

  1. MikeSysop September 21, 2018 at 8:51 PM #

    Hi There a very interesting Post as ive been looking for this however

    I am getting this error when adding attribute

    zmprov md zimbraOAuthConsumerAPIScope ‘https:/www.googleapis.com/auth/calendar:google_caldav’

    ERROR: account.INVALID_ATTR_NAME (invalid attr name: invalid attr name – unable to modify attributes: ldap host=:389: zimbraOAuthConsumerAPIScope: attribute type undefined

    Do I have to create these first and if so what are the steps?

  2. Ivan Velasco September 27, 2018 at 4:14 AM #

    I applied the first step on the ZCS Server:

    1. Set zimbraOAuthConsumerAPIScope on your domain but this error appears:

    ERROR: account.INVALID_ATTR_NAME (invalid attr name: invalid
    attr name – unable to modify attributes: zimbraOAuthConsum
    rAPIScope: attribute type undefined)

  3. Ivan Velasco September 27, 2018 at 11:12 PM #

    By applying the steps on the ZCS Server:

    1. Set zimbraOAuthConsumerAPIScope on your domain. Tthis error appears:

    ERROR: account.INVALID_ATTR_NAME (invalid attr name: invalid attr name – unable to modify attributes: zimbraOAuthConsumerAPIScope: attribute type undefined)

  4. Wong Boon Hong October 18, 2018 at 7:05 AM #

    I simply add gmail calender as external calendar into Zimbra.

  5. Peter Wilcox October 18, 2018 at 4:23 PM #

    Do you have to do the server side if each user wanted to have there own Google Sync?

  6. JSko October 22, 2018 at 9:29 AM #

    Does the same procedure work for multiple users on the same domain?

  7. Scott Bender October 23, 2018 at 9:40 PM #

    Do you need a specific version of Zimbra to do this? I am running 8.8.6 and I’m getting account.INVALID_ATTR_NAME errors:

    [zimbra@zimbra ~]$ zmprov md mydomain zimbraOAuthConsumerAPIScope ‘https://www.googleapis.com/auth/calendar:google_caldav’
    ERROR: account.INVALID_ATTR_NAME (invalid attr name: invalid attr name – unable to modify attributes: ldap host=my_server:389: zimbraOAuthConsumerAPIScope: attribute type undefined)

  8. Stephen October 25, 2018 at 12:50 AM #

    Hello,
    I’m trying to implement this but I’m running into the following error.
    zimbra@zimbra:/$ zmprov md mydomain.com zimbraOAuthConsumerAPIScope ‘https://www.googleapis.com/auth/calendar:google_caldav’
    ERROR: account.INVALID_ATTR_NAME (invalid attr name: invalid attr name – unable to modify attributes: zimbraOAuthConsumerAPIScope: attribute type undefined)

    I’m attempting this on version 8.6. Was this not implemented until a later version?

    Thanks,
    Stephen

    • Gayle Billat October 26, 2018 at 9:53 PM #

      Hi Stephen – thanks for your comment. Please post this in the Zimbra Forums for a quick response: https://forums.zimbra.org. Thanks!

    • Stephen December 5, 2018 at 10:31 PM #

      I’ll post it over there but could you update at least update the article with supported versions?

      Thanks,
      Stephen

    • Gayle Billat February 13, 2019 at 7:21 PM #

      Hi Stephen — I’ve updated the post, and it’s starting with Zimbra 8.8.9. Thanks!

  9. Kevin K January 18, 2019 at 6:16 PM #

    Hey Gayle,

    Web searches are bringing people to this page. The error that we’re receiving makes it pretty useless, and there’s no followups on the forums (that I can find).

    Instead of the canned message, could you give us at least what version of Zimbra is required?

    • Gayle Billat January 18, 2019 at 11:31 PM #

      Hi Kevin – have you opened a Zimbra Support case for the error that you are receiving? I’ll try to get you help with your issue, but until then, I will find out what version of Zimbra is required for this feature. Thanks.

  10. Stephen April 16, 2019 at 8:40 PM #

    Can you please update the “Steps in the Zimbra Web Client?”
    It says “Authorize Google to visit the following URL, specifying your hostname: https:///service/extension/oauth2/authorize/google?type=caldav
    But it doesn’t provide any information about how that is to be done. It doesn’t specify how to add the calendar in the Zimbra client UI. I went to Add External Calendar, selected Google and then when I clicked Next, it just reloads the UI.

    • Gayle Billat April 17, 2019 at 7:26 PM #

      Hi Stephen – In the Zimbra Web Client, you should be able to select “Add External Calendar” (as you did) and specify the google URL. If that is not working, please contact your email admin. It’s possible that they have not enabled that feature. Thanks.

  11. Onur Başer May 23, 2019 at 1:30 PM #

    I got all the steps, however when I try

    **** “Authorize Google to visit the following URL, specifying your hostname: https:///service/extension/oauth2/authorize/google?type=caldav”*****

    I got this URL
    https://xxxx.xxxx.xxxx/?error=unhandled_error#2

    My Zimbra server version: 8.8.12_GA_3794.FOSS

    • Gayle Billat June 17, 2019 at 11:46 PM #

      Hi Onur – please ask this question on forums.zimbra.com. The Zimbra Community has more technical knowledge than I do. Thanks

Copyright © 2022 Zimbra, Inc. All rights reserved.

All information contained in this blog is intended for informational purposes only. Synacor, Inc. is not responsible or liable in any manner for the use or misuse of any technical content provided herein. No specific or implied warranty is provided in association with the information or application of the information provided herein, including, but not limited to, use, misuse or distribution of such information by any user. The user assumes any and all risk pertaining to the use or distribution in any form of any subject matter contained in this blog.

Legal Information | Privacy Policy | Do Not Sell My Personal Information | CCPA Disclosures