I've spent some time this evening checking out the combination of remind and wyrd (a front-end to remind). This may possibly be the calendar tool I've been looking for:
- Calendars stored in a human-readable (or at least programmer-readable) text format.
- Use of
include
functionality means calendaring can be modular. remind
is a command-line tool, andwyrd
is designed for keyboard-and-terminal.- Designed to work with pipelines at either end of the process to take advantage of other tools in the finest Unix tradition.
- Ships with functionality to make a printable calendar via
rem -p | rem2ps
- Integrated support for denoting the time-of-day an event occurs and its duration.
- Very powerful and expressive language for describing when an event occurs; they're really not kidding with this one.
- Regular exceptions to a regularly scheduled event due to holidays are easy to specify.
- Irregular exceptions because the guy who organizes the event decided to hold it a different night this week are a little hairier, but still quite doable.
- Can be configured to colorize output in manually specified or semi-automated ways fairly easily, and to only do so where it's appropriate.
I've been using Google's Calendar for the last while, but I wasn't really happy with it. It was an improvement over the other things I'd been playing with, I guess, but it has some major flaws:
- Web Applications are laggy! There shouldn't be a detectable pause when I move to the next week/month/year/whatever for a simple calendar application.
- Keyboard support exists, but is pretty basic. It's not all that easy to quickly enter a new event without using the mouse.
- I have to give Google my potentially sensitive data.
- I can't see my calendar without an Internet connection, unless I install a bunch of extra stuff.
The new setup doesn't allow sharing, which . . . I don't use all that much anyway. There's an iCal importer (which kinda sucks), though, so I should be able to use it to see other people's calendars in iCal [including at Google], and, well, if I really want to share my calendar, the biggest obstacle is that there are things remind
can express that iCal can't.
Definitely on the "to check out" list is getting that print calendar generating process hooked into a pocketmod generating process. Should be fairly straightforward. Would be easier with metric paper; Letter doesn't divide as cleanly into eighths as A4.
Also need to pick an approach for synchronizing with haversack, for additional calendar-without-Internet capability.