Aral Balkan

Mastodon icon RSS feed icon P2P network icon

Getting your iCloud contacts on GNU/Linux

Screenshot of the Gnome Contacts app, showing a portion of my own contact card.

I’m my own best contact.

Just like you can use iCloud calendars on GNU/Linux, you can also synchronise your contacts as iCloud uses an open standard called CardDAV.

No photos please, we’re Gnomish!

Screenshot of the error message you get when you try to create a contact with a photo on iCloud.

The caveat is that contacts with photos will be missing the photos. And you cannot create a contact with a photo either.

I’ve opened two issues for this in the Gnome Contacts source code repository. If this is something you would like to see fixed, please show them some love:

Not having photos is not a show stopper but it does make the experience less than ideal. Needless to say, this is of course something that will be fixed in time. If anyone from Apple is reading this and would like to lend the Gnome Contacts team a friendly hand with this, that would also be very much appreciated.

Instructions

The instructions for setting up contacts are similar to those for setting up calendars.

To use your iCloud contacts under GNU/Linux1:

A. Install the required software.

Install the following apps if you don’t already have them:

  1. Install Evolution:

    sudo apt install evolution
  2. Install Gnome Contacts:

    sudo apt install gnome-contacts

We will be using Evolution to set up the iCloud accounts but you will most likely want to use Gnome Calendar as your daily calendar as it offers a minimal, beautiful experience.

B. Set up an app-specific password on iCloud.

(If you’ve already set-up an app-specific password for your calendars, you can skip this step and use the same password.)

  1. Sign into your Apple account at https://appleid.apple.com/

    The Apple ID sign-in page
  2. Scroll down to the App-Specific Passwords area in the Security section and select the Generate Password… link.

    Screenshot of the Generate Password… pop-over under the Security → App-specific passwords section with “CalDAV on notebook” entered in the textbox followed by Cancel and Create buttons.
  3. In the resulting pop-over, enter a descriptive name for this password.

  4. Copy the password onto the clipboard.

C. Set up your iCloud address book in Evolution

  1. Screenshot of the main navigation item with the contacts icon with the word Contacts next to it.
    Select the Contacts section in the main navigation.

  2. Open the drop-down menu next to the New button and select Address Book.

    Screenshot of the drop-down menu next to the New button. The dropdown is marked up with a red circle.
  3. In the resulting New Address Book window, select CardDAV from the Type drop-down.

    Screenshot of the New Address Book window. All of the settings shown are described in the instructions here.
  4. In the URL field, enter https://contacts.icloud.com

  5. In the User field, enter your Apple ID

  6. Press the Find Address Books button.

    Screenshot of the Choose an Address Book window. There is only one address book shown in the table and it is selected: Name: card, Supports: Contacts. At the bottom of the dialog are two buttons: Cancel and OK.
  7. In the resulting password entry pop-up, paste the app-specific password you copied onto the clipboard in the last section.

  8. In the resulting Choose an Address Book window, select the address book shown and press the OK button. When I did this, there was only one entry and it was called card.

  9. Back in the New Address Book window, check the options you want to set for your address book and press the OK button. I checked all of the options except for Avoid IfMatch – mostly because I don’t know what an IfMatch is and nor would I recognise one if were to stumble upon it in a dark alley.

This should be easier…

Once you’ve set up your address book, launch Gnome Contacts and you should see your contacts show up, sans any photos you may have had for them.

Any entries you make in Gnome Contacts will sync to iCloud and, from there, to all of your Apple toys, and vice-versa. Just remember not to include photos in your contacts or things will get borked.

Ideally, CardDAV setup should be a seamless process that’s built into Gnome Contacts2.

References


  1. The examples here are tested to work on Pop!_OS 18.04 running Gnome 3.28.2. [return]
  2. I opened an issue for this at the Gnome Contacts source code repository: Feature request: integrate iCloud CardDAV setup. [return]