Open Source Calendar Software Tutorial – Radicale

I've been looking for ways that small group could operate that didn't necessarily want to fork over ridiculous amounts of money to run a Microsoft Exchange server. One aspect of Exchange is a calendar, and I believe Radicale is a viable replacement.

July 25, 2012

I promised months ago that I’d set up a tutorial for folks to run their own calendar server, and here it is finally.  You’ll need a couple of things to get this done.

A Linux Computer.  To follow along with me, you’ll need Linux on the server, not Windows.  Over the course of putting this walkthrough together, I saw many references to running Radicale on Windows, but I’ve got no idea how to do it.

If you’re at a home or small business with a dynamic ip address, don’t get too worried yet.  It is probably possible, with some port forwarding and some sort of dynamic dns service, to get this calendar software up and running right where you’re at.  If you’re already running a website on a dedicated host (as in, you’re the only site and you have the run of the mill on that server) you could use that.  One setup I did was right on  Another I plan on setting up is at my house using something like dyndns.  You might even be able to do it using shared hosting with shell access ( and both allow shell access) but I’d tend to doubt it.

Thunderbird. This isn’t a requirement necessarily, but you’ll need some sort of calendar client and Thunderbird (with Lightning installed) is the one I’m using for this tutorial.

Start off by heading over to the Radicale site and figure out which option is what you need.  I’ve tried it with the pip, tar.gz file, and Ubuntu package methods.  Installation was fairly straight ahead whichever way, but I ran into a few snags with the pip and tar.gz method.  I also ran into a version snag with Ubuntu and apt.  There’s no radicale readily available if your server is using anything older than Ubuntu Natty (11.10).  I imagine I could’ve gotten over this hurdle, but it’s been hot these last couple of days and don’t feel much like jumping…

If you read my other two posts on calendar software here and here, you’ll know I had trouble with the config, not the install.  In particular, my trouble was locking down the calendars so any Tom Dick or Harry couldn’t get in and monkey with stuff.

Whichever way you decide to use for installation, you must edit a couple lines of your config file.  With the Ubuntu apt-get method, the file in question was called config and found in ⁄etc⁄radicale⁄.  Using pip instead made it reside in ⁄usr⁄local⁄lib⁄python2.6⁄dist-packages⁄radicale, and it was named  I left most of the file alone, changing only three lines.  type (by default it said None) was the first line I edited.  public_users and private_users were the other two.  All I did was delete everything between the quotes.  In the Ubuntu install, these lines didn’t have quotes.

“acl”: {
“type”: “htpasswd”,
“public_users”: “”,
“private_users”: “”,
“httpasswd_filename”: “⁄etc⁄radicale⁄users”,
“httpasswd_encryption”: “crypt”,

With the pip install, I didn’t for some reason get an ⁄etc⁄radicale created.  This seems the best place to stick my users file, so I created both the directory and the file.  I populated the file with a quickie htpasswd command: sudo htpasswd -cbd ⁄etc⁄radicale⁄users username password will stick a line in the ⁄etc⁄radicale⁄users file that contains the username and encrypted password.

Even after I did this on the tar.gz installed Radicale, I kept getting errors…  Notice the spelling of htpasswd, and then the spelling of httpasswd in my config file.  There are extra t characters.  This blew me out of the water until I figured it out…  Make sure to get rid of the double t’s in httpasswd if you have them in your file.

Start radicale with a sudo python radicale and then fire up a client.  There’s Sunbird by Mozilla, but I used Lightning, a Thunderbird extension.  Installing that is another story (much easier than this one though) so I won’t get into it here.  Pick New (from the File menu) –> Calendar –> Choose “On the Network” –> and then Pick CalDAV in the list of choices.  Your location needs to be something like  and you can use whatever calendar name you like; just make sure the username is the one you made with the htpasswd command.

That’s about it.  You’ll be prompted for a username and password and then you’ll land in the calendar.  Remember how often you’re set up to refresh; I had it set for 30 minutes and couldn’t for the life of me figure out why my new event and tasks didn’t show up until I shut down Thunderbird and fired it back up again.  Duh…

This project was a little more than I initially bargained for, but should be fairly easy for anyone using this walkthrough.  I will say that setting up Radicale calendar software on a newer version of Ubuntu will be easier; that setup took me just a few minutes, as opposed to the pip method where I had to search a while to find stuff.

I’m curious to know if this helped anyone.  Let me know.

Leave a Reply

Your email address will not be published. Required fields are marked *