Ical and CARDDAV server and Android

[This post is work in progress.  ]

These are a few notes on setting up a DAViCal server and access from my Android phone.

Server part

Note: DAViCal needs PostgreSQL to store its database. If you are on a cheap LAMP hosting, PostgreSQL may not be available.  I am not aware of a MySQL implementation.

My server is running CentOS 5. I installed DAViCal by following the instructions specific to my distro. More specifically, I installed the RPMs provided by Andrew McMillan on his web site: DAViCal  and the AWL libraries.

The easiest way is to create a dedicated sub-domain to host your Caldav server. Something like “caldav.example.net”.

More details to follow, including:

DNS configuration

Please refer to the specific documentation regarding the management of your domain name. Depending who is running the DNS service for your domain, different actions might be needed. In my case, I have a bash shell script which calls the Bind nspudate utility to insert the DNS records in the zone file.

Apache configuration

The location of the Apache configuration files is highly distribution dependent. In  the case of RHEL/CentOS, they live under /etc/httpd/conf.d for virtual hosts.

I added the following to a file called caldav.conf

# Virtual Host definition for DAViCal
<VirtualHost *:80 >
CustomLog /var/log/httpd/caldav.access_log "combined"
ErrorLog /var/log/httpd/caldav.error_log
  DocumentRoot /usr/share/davical/htdocs
  DirectoryIndex index.php index.html
  ServerName caldav.example.net
  Alias /images/ /usr/share/davical/htdocs/images/
  <Directory /usr/share/davical/htdocs/>
      AllowOverride None
      Order allow,deny
      Allow from all
  </Directory>
</VirtualHost>
# Virtual Host definition for DAViCal. Also for SSL
<VirtualHost *:443 >
CustomLog /var/log/httpd/caldav.access_log "combined"
ErrorLog /var/log/httpd/caldav.error_log
  DocumentRoot /usr/share/davical/htdocs
  DirectoryIndex index.php index.html
  ServerName caldav.example.net
  Alias /images/ /usr/share/davical/htdocs/images/
  <Directory /usr/share/davical/htdocs/>
      AllowOverride None
      Order allow,deny
      Allow from all
  </Directory>
</VirtualHost>

PostgreSQL configuration

How to install and configure PostgreSQL is outside the scope of this How-To. Some Googling  will help you find guidance.

SSL certificate

Basically, I created a SSL certificate for my server with several DNSAltName attributes. One of the sub-domains is for Caldav. This would cost you thousands with your average certificate authority. Which is why I went to CACert.

User account configuration

This is all explained on the DAViCal WIKI.

The cherry on the cake is that DAViCal can also act as a CARDDAV server for your address book(s). For this, I use CardDAV on the Android side.

For what it is worth, I confirm DAViCal works fine with Apple’s iCal and Address Books. It also works fine with KDE on Linux, specifically KAddressBook and Kontacts for calendaring and contacts.  Mozilla Thunderbird’s Lightning add-on for calendaring work fine, too.

Client part

I still use Hypermatix Calendar Sync for Android. This is now been discontinued and replaced with Andal.

I have not tried CalDAV-Sync, but it received good reviews. This last one is implemented as a sync adapter and might be more transparent than the one I use.

 

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>