Open Source Calendar Software Tutorial – Radicale

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 fossfolks.com.  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 (nosupportlinuxhosting.com and hostmonster.com 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 config.py.  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 http://fossfolks.com:5232/username/calendarname  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.


2 responses to “Open Source Calendar Software Tutorial – Radicale”

  1. sukh says:

    Hi Craig,

    Good blog and helped me to understand the radical setup.
    Did you manage to set it up with iPhone?

    Regards,
    Sumit

    • Craig says:

      Glad it helped. I’ve not yet tried setting it up with an iPhone. I’m hoping to give this post a once over after the New Year and flesh out some things other folks have asked me about privately; I can give an iPad a chance in the process. Being a Linux guy, I should probably run through an Android setup too…

Leave a Reply

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