Remind

A very sophisticated, open source calendar program for most unix-type operating systems. Can issue reminders to the console, pass them as arguments to programs (which means it can email you, etc.), and produce html or postscript calendars. Remind can handle things like an appointment that occurs on every month's second Wednesday unless that falls on a holiday, in which case it's moved to the following Friday. In fact it can handle far more complex scheduling, and has its own scripting language.

Remind can be downloaded from its current custodian, Roaring Penguin Software. The documentation consists mainly of the very detailed and helpful manpage, but there are a few other notes around the web, including a tutorial with historical commentary by its author, David Skoll.

I had no problems compiling and using Remind on OS X and Debian Linux. I also installed Wyrd, a convenient curses interface to remind, which by itself is a commandline program (this requires installing the language ocaml, which I got for OS X using DarwinPorts. On Debian it was installed automatically by apt-get). There also exists a tk GUI for remind, but I haven't bothered to try it, and have seen comments about its bugginess.

If you are running OS 10.4, you might also want to try the Remind Widget for Dashboard. But Remind's ability to call arbitrary programs means there are limitless possibilities for issuing notifications. On OS X I have Remind nagging me using Growl, but you could use GeekTool or even have your Mac speak the reminders to you, quite trivially. There is an article about using Remind with OS X at 43Folders, and some advanced tips here.