Getting your iCloud contacts on GNU/Linux
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!
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:
#100: Photos do not sync with iCloud via CardDAV
#101: Error when creating a contact that has a photo when using CardDAV with iCloud
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.
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:
sudo apt install evolution
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.)
Sign into your Apple account at https://appleid.apple.com/
Scroll down to the App-Specific Passwords area in the Security section and select the Generate Password… link.
In the resulting pop-over, enter a descriptive name for this password.
Copy the password onto the clipboard.
C. Set up your iCloud address book in Evolution
Select the Contacts section in the main navigation.
Open the drop-down menu next to the New button and select Address Book.
In the resulting New Address Book window, select CardDAV from the Type drop-down.
In the URL field, enter https://contacts.icloud.com
In the User field, enter your Apple ID
Press the Find Address Books button.
In the resulting password entry pop-up, paste the app-specific password you copied onto the clipboard in the last section.
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.
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.
The examples here are tested to work on Pop!_OS 18.04 running Gnome 3.28.2. ↩︎
I opened an issue for this at the Gnome Contacts source code repository: Feature request: integrate iCloud CardDAV setup. ↩︎