How to sync your contacts and calendars with your phone
I was writing the other day about having a personal calendar and contacts server and I thought it’s an interesting topic. So here we are, expanding a bit on personal calendars and contacts.
First of all, calendars and contacts are simple files stored in a folder. Sure, we have no idea how Google’s or Microsoft’s cloud system works and they may be over-complicating things to keep everything under proprietary control. But there is an open standard for calendar files called ICS (iCal) and there is an open standard for contact files as well called VCF (vCard). Each ICS file stores an event and each VCF file stores a contact. If you put all your event files in a folder, that folder becomes a calendar of events. In the same way if you store all your contact files into a folder, that folder becomes an address book. It’s all very simple and transparent. You want an additional address book called Colleagues? Make a folder called Colleagues and put new contacts there. You want a calendar called Birthdays? Make a folder called Birthdays and put your events there.
It’s all designed to be centered around files and folders, it does not need any kind of special apps which means nobody cares if you use Windows, Linux or anything else, it’s extremely fast because data is stored in simple files and it’s also an open standard meaning it’s the way all applications have to communicate in the end if they want to share calendars and contacts. Of course, if your entire ecosystem is Google you don’t need to share anything anymore because everything is done through Google and so you don’t need a standard anymore. That’s exactly where everything is going these days, but that’s a story for another day and it’s up to you if you want to be part of this.
Ok so we have our calendar event files in their folders, we have our contacts in their folders: what do we do now? Well, calendar and contacts apps are fully capable of reading these folders and show your events and contacts so you are basically done. But there is a better way that allows you to synchronize multiple clients with these contacts and calendars. For example your mobile, tablet, laptop and desktop all want to show these calendars and contacts. They all want to make changes which will show up on every client. For this setup to work, you need one more thing: a calendar and contacts server.
But if you remember the article about what a home NAS can do, you know the NAS already has one. So you don’t need to worry about that. Just configure the NAS and you are done. Cool, what next? Well next you need to configure your email clients to read events and contacts from your shiny server. On the desktop you will probably use Outlook or Thunderbird to sync with a calendar and contacts server so you just need to follow their guides on how to do it. On mobile however you will need an app called DAVx5 (paid) or OpenSync (free). OpenSync is an unmaintained fork of DAVx5 but it does the job just fine. I personally used OpenSync a few years and then just recently switched to DAVx5 for absolutely no reason. I just thought it’s still maintained and I could maybe benefit from some new features. In practice it has nothing new.
After you install OpenSync on your phone, you will need to create a link to your server. OpenSync supports more links if you have multiple servers but in our case you just need one. So click on the plus icon and you will be presented with several login options. To be clear, the login options are for your calendar and contacts server. OpenSync is trying to connect there. Now, you cannot login with an email address because that’s for cloud services, so you have to choose advanced login or login with URL and user name, depending on what you went with: OpenSync or DAVx5. You will have to enter the URL to your NAS for example: https://192.168.0.100/
(your NAS will give you the URL) and OpenSync will detect all calendars and all contacts. You are done.
If you open your Contacts app on your phone, you should see the contacts from your NAS. If you open the Calendar app on your phone, you should see the calendars from your NAS. If you add a calendar event from the Calendar app on your phone, you will see that event in Outlook on your laptop for example and so on. So basically you achieved what Google is trying to sell you, full synchronization between all clients of events and contacts, but you did it your way, using your personal NAS server, with full privacy and following the open standards that were given for this exact use case. If you thought Google is so smart by storing your contacts and allowing you to switch phones and just login with your Google account and done, you have your contacts show up, that’s not really magic. You can do that too.
There will be a future article where I will talk about calendar and contact servers in further detail but for now, you have all you need to configure your NAS and your clients (phones, laptops with Outlook or Thunderbird) to work together. I will not insist on Outlook and Thunderbird configuration for now but if there is interest I will update the article for them too. Outlook tends to be easier to configure because it has everything needed out of the box. Thunderbird needs two extensions: TbSync and a CalDAV and CardDAV provider for TbSync. I really wish it was easier.
Here we are at the end. I know the solutions described here seem a bit more advanced but it is not so. If you are really serious about leaving “the cloud” you will need to get versed a bit in handling your devices, above what you do casually with them. Setting up your Outlook or Thunderbird client to work with your NAS calendars and contacts is important and if there are any hoops on the way, feel free to leave a comment and I will expand further on the setup. Same story on mobile. For now, I hope the article was at least fun or interesting to read. See you around!