ICal

Ages ago, Sanjay Ghemawat wrote a wonderful little calendar program for X, and called it ical. It is very fast and easy to use, it has excellent options, has a commandline interface, and is generally superb. I have not found any modern software that works as well for me. Apple's software of the same name looks very nice, but has nothing to do with Ghamawat's Ical.

Sadly, ical is not exactly maintained. It's no longer available in Debian.

Happily, a few people have been maintaining it. John Heidemann maintains a RedHat package, and while it doesn't work on Debian Unstable, he also released the patches. Here's what you need to do to install it on Debian:

  1. Get ical 2.3.1 from Richard W.M. Jones. Yes, you can get more modern versions, but don't.
  2. Get these four patches from John Heidemann:
    free
    Fixes a bug in the freeing code. I believe that this fixes the same bug fixed in 2.3.2?
    tcl/tk 8.5
    Allows it to work with tcl/tk 8.5.
    upvar
    Fix the upvar problem.
    escape
    Not a bugfix, but it allows you to close windows with the Escape key. Optional, but John Heidemann did such a good job with it that I'd be crazy not to include it as well.
  3. Obviously you need a development environment. I'm not sure what packages are necessary, but tcl8.5-dev and tk8.5-dev are a good start.
  4. Once you've downloaded those 5 items, apply the patches:

    tar zxvf ical-2.3.1.tar.gz
    cd ical-2.3.1
    patch -p0 < ../ical-2.3.1-free.patch
    patch -p0 < ../ical-2.3.1-tcltk-8.5-configure.patch
    patch -p0 < ../ical-2.3.1-upvar.patch
    patch -p0 < ../ical-2.3.1-escape.patch
    
  5. To configure it, I had to specify the location of everything:
    ./configure --with-tclconfig=/usr/lib/tcl8.5 \
               --with-tkconfig=/usr/lib/tk8.5 \
               --with-tclhdir=/usr/include/tcl8.5 \
               --with-tkhdir=/usr/include/tcl8.5 \
               --with-tclscripts=/usr/share/tcltk/tcl8.5 \
               --with-tkscripts=/usr/share/tcltk/tk8.5 \
               --prefix=/usr/local
    make
    make install
    
Please tell me if you have any comments, if I missed anything, etc!