Syncing Calendar & Contacts on Linux & Android

I've had the same personal email account on my own domain for over 10 years. During that time my personal calendar & contacts have been purely local. When Windows was my my primary desktop OS, both were in Outlook. Now it's Linux and both are in Evolution. But neither have been synchronized to my Android tablet until today.

In both cases, the sync is not direct. It is a hub-spoke sync arrangement with Google at the hub.

Google

In your Google account, here is where you find contacts and calendar .

In my case the setup was a bit unusual because I don't use a gmail address with my Google account. I use my own email address on my own domain. This means my Google account login is not "@gmail.com". Some apps, when connecting with Google, assume that everyone has a "gmail" address and they add it if you don't enter it. This can break things.

Another unusual part of my setup is that I'm coming at this from the opposite direction as many others. Many people already have their stuff (contacts & calendar) in Google and want to bring it to the client app. In my case, my stuff is local to the client and I want to push it to Google. This affects how to kick start the sync - where the initial data comes from. In either case, after that we want to do the same thing - keep it synchronized.

Contacts

Summary:

  • Create a new address book in Evolution that syncs to Google
  • Copy your existing contacts into the new book
  • Go to Google and validate that the contacts are there
  • In Google (on the web), move the new contacts from "All Contacts" to "My Contacts"
  • Details:

    Start Evolution, go to the Contacts view and create a new address book of type "Google".
    TBD: the address book config parameters: URL, login, etc.
    In this new address book properties, check basically everything: default, autocompletion, etc.

    In my case, this new address book is empty and I have no contacts in Google. My contacts are in my local address book. I need to copy them to this new one. To do that, go to your local address book. Select all, right click, select "Copy to" on the pop-up menu, then select the new Google address book to copy them to.

    You're done - as the contacts copy to the new address book they will sync with Google immediately.

    NOTE: during this process Evolution crashed repeatedly. I had to copy my contacts in groups of 10-30 to prevent the crashing. It took several round trips but in the end I got them all.

    Calendar

    Summary:

  • Create a new calendar in Evolution that syncs to Google
  • Configure Evolution to publish the calendar to Google
  • Copy your existing calendar events into this calendar
  • From Evolution, push/publish your calendar
  • Details:

    Start Evolution, go to the Calendar view and create a new calendar of type "CalDAV" or of type "Google". I tried CalDAV and it works sporadically but also generates error messages when syncing. I am going to try type Google next...

    Once I had it set up, I needed to copy all events in my local calendar to the new one. I have yet to find a good way to do this. One should be able to do this:

  • Right click on your local calendar
  • On the pop-up menu, click "Copy to..."
  • A dialog pops up. Select your new CalDAV/Google calendar
  • click OK
  • When I do the above, Evolution crashes. I created a bug report for this.