CalDAV Clients/Calendar Sync for Android
From March 2010 a CalDAV solution for Android has appeared in the Android App store. Find it on a search for 'caldav'. The company has a page at is http://www.hypermatix.com/products/calendar_sync_for_android with some more information.
Calendar Sync for Android will synchronise the calendar on your phone with a remote CalDAV server, including a DAViCal server.
This is a calendar synchronisation program, and as such it needs to be given a calendar URL, which in DAViCal's case will be something of the form:
Where 'calendar' is generally 'home', by default, on DAViCal.
Using Self-signed SSL Certificates
In the latest Calendar Sync version there is now an option to accept any certificate without checking, which makes it much easier to use a self-signed cert. Of course for better security you may still want to install the root certificate.
Installing the Root on Android
If you use a self-signed SSL certificate on the Android the process of making it work is somewhat convoluted...
According to Brendan Whelan from Hypermatix, the following steps are needed:
- First, you need to create a keystore containing the cert of your Certification Authority (albeit your own server).
- Bob Lee has an excellent blog post on how to do this. Just follow his steps one and two from http://crazybob.org/20120/02/android-trusting-ssl-certificates.html
- Essentially this involves getting old of the root certificate. I use the CACert.org root authority myself, and their root is downloadable from their website, but you need to follow part of the above process to convert it to a .bks file.
- Rename your file to "CA.bks".
- Create a new directory on your phone's SD card at /CalDAVSync/CA/ and drop the CA.bks in there.
- Then in CalendarSync, Advanced connection settings, check to enable using the keystore and enter the password you chose for the keystore.
Do a sync and it should work!
One caveat though: the app can't read the keystore while your phone is connected to a PC and in USB hard drive mode, so you'll need disable USB drive mode before sync will work without error.
Problems (v 0.9.2.0)
It works for me (now) with this 14th April 2010 version. Karora 11:48, 18 April 2010 (UTC)
- Timezone issues: If you set an explicit non-local timezone on an event expect to see it in your Android calendar at the local time of day of the event, rather than at the time of the event in your current timezone. For now, try and stick to local time. The developer is working on the issue...
- Bandwidth intensive: The app is pretty crude in it's synchronisation process. It works, but it could be done with a lot less communication. Again, the developer is working on it :-)
- Does not work anymore for me using https with 0.9.2 since providing password for keystore has disappeared from advanced connection settings:-(