OS X Mavericks was provided to Mac users free of charge. When I pushed the upgrade button, all I could think was…
If you’re not paying for something, you’re not the customer; you’re the product being sold.
Sure enough, many users of Mavericks and iPhones/iPads quickly discovered that the Info tab in their iTunes clients had disappeared, and now in order to sync their contact and calendar data between their computers and their phones they had to go the iCloud route. Those who hold corporate information, EU users, and even folks such as I that just loathe the idea of pushing such data onto a server we don’t control were out of luck. Well almost.
I am not suggesting Apple intends on selling any data you push to iCloud, but I am declaring the present state of affairs is certainly a pain in the rear for an enormous number of users fully invested in the Apple ecosystem. Nevertheless, the fact is this issue was a long time coming. Apple has been moving from SyncServices towards a more open set of tools slowly but surely. Now CalDAV and CardDAV rule the roost, and to sync you’ve got to have a networked server in between your devices.
But where to find a server? A big, scary server!?
Focus your gaze directly at your Mac desktop, and then repeat after me…
I am staring at a UNIX Server.
Three times please.
The solution I am providing isn’t particularly elegant, and it does require a little networking know-how, but if you are game you can find the details after the jump. EDITOR’S NOTE: It can’t be that bad, because this author got it all working in under two hours, first time through.
First, you are going to acquire the following:
1) A copy of ownCloud Server 5 software, which you can find here. ownCloud is one cool piece of software, especially because it’s free and open source.
2) The ownCloud desktop client for Mac OS X, which you can also get here. You don’t actually need this to sync calendar and contacts, but grab it anyway.
3) The ownCloud iOS app, which you can find via in the iTunes Store via this link. It’s 99 cents, and while not absolutely necessary here you should throw a bone to the folks that make the rest happen.
Got it all? Ok…let’s move on.
Setting Up the ownCloud Server
That Mac you called a UNIX repeatedly upon request contains Apache Webserver software, and in order to make it work with the ownCloud software you have to make a tweak to the Apache configuration file – it is /etc/apache2/httpd.conf. This can be done with superuser from the terminal using vim or emacs, or you can change the permissions on the file itself and the directories above from Finder info, then use a text editor, and return the permissions to read-only thereafter. However you go about it, the goal is removing the “#” from in front of
LoadModule php5_module libexec/apache2/libphp5.so and saving the change.
Now, copy that ownCloud Server 5 software you grabbed during acquisition mode, #1, and paste it into the /Library/WebServer/Documents directory on your Mac. Then unzip it – you should now have a directory called “owncloud” there. Next, change the permissions on that directory so your username can Read & Write – you can do this via the Get Info window. Do the same for the /apps and /config directories underneath ../owncloud.
Now you start your Apache server – from a terminal window type
sudo apachectl start.
Open a browser window, and type the following in the address bar: http://localhost/owncloud/ The installation process should start – you will be prompted to enter a username and password – I suggest using the same combination you use to log into your machine.
You should now be able to log into this spiffy new cloud server (that’s not in a cloud), where you will see a screen like this:
You can take a look around, but most everything should work fine “out-of-the-box”. So let’s chat quickly about IP addressing before moving on to configuring your desktop services and phone.
Syncing requires having a fixed IP address for your new cloud (that ain’t) server. I set my office router to hand out IPs based on MAC addresses of my devices – your results may vary based on the type of router you use, but I suggest this method because it is fairly easy and assures consistent results. You won’t be able to sync while in popular coffee shops, so if you drink a dozen frappu-whatevers a day syncing from home or office might actually save you some cash too.
Setting Up the Syncing with OS X Calendar and Contacts
All we are really doing here is setting up new accounts on your desktop Calendar and Contacts applications to sync with the “cloud server” you just built. To start, click the Apple icon in the upper left hand corner of your screen and select “System Preferences”. Then choose the “Internet Accounts” icon, and in the right hand account list scroll down and click “Add Other Account…”.
You should see a dialog that looks like this…
Setting up Calendar syncing means choosing “Add a CalDAV account” and then hitting the “Create” button…
Select “Manual” from the Account Type dropdown, then enter the username and password you create in the previous steps in installing ownCloud server software. For the server box, you are going to enter
http://localhost/owncloud/remote.php/caldav/principals/YOURUSERNAME/ where YOURUSERNAME is the username from ownCloud server setup. Hit Create again.
You can open Apple Calendar, and you should see a new “Default Calendar” in the sidebar. Any calendar entries you put under that account will sync with the server.
You follow the same process for Contacts…
Enter the username and password again, then type this in the server box:
http://localhost/owncloud/remote.php/carddav/principals/YOURUSERNAME/. Same bat channel regarding YOURUSERNAME.
Within Apple Contacts you will now see a new contact list. You can copy existing contacts from “On My Mac” into the new .local list, and those contacts will subsequently sync with your server.
Now onto phone configuration…
Setting Up the Syncing with iOS Calendar and Contacts
iOS already has the capability to sync using CalDAV and CardDAV built in – the ownCloud app [you just bought because you are a thankful person] is used only for syncing files. From your phone, select the Settings app, then “Mail, Contacts, Calendars”. Hit “Add Account”, and then “Other” at the bottom of the list of selections. You’ll see the following screen…
First select “Add CalDAV Account” under Calendars, and enter the same username and password on the following screen…
When it comes to the server, things get a little tricky. You are now going to enter
http://DESKTOPIPADDRESS/owncloud/remote.php/caldav/principals/YOURUSERNAME/, where the DESKTOPIPADDRESS is the fixed IP address of your Mac we talked about earlier. I have not tried using name-based convention i.e. a computer name, but I’d be curious to hear other’s results while trying.
Now do the same for Contacts, by selecting Add CardDAV Account (in the screen shown two up), and then adding the information in this screen…
Same CalDAV IP addressing goes for CardDAV – you enter server information like so:
You’ll have new Calendar and Contacts accounts on your iDevice just like you do on your Mavericks powered Mac. It may seem inconvenient at first, but I actually like the separation for one simple reason: you can delete the accounts at anytime, and chances are you will want to as either Apple or some third party software provider will eventually create a less arduous fix for desktop syncing. Just make sure to pull your CalDAV and CardDAV items back over to “On Your Mac” before you do.
Nevertheless, your Mavericks-powered desktop or laptop and your iOS-powered phone or tablet are now in sync, and without you even having to push another button to make it so.
MG signing off (because where there’s a will there’s a way, and ownCloud made it easier than waiting around for capitulation)