This is a follow-up to my
Six months on, I owe the world a report on my attempts to implement GTD methodology in a standard calendaring application. I chose Thunderbird with the Lightning extension, because it’s cross-platform and because I already use it for so much else (in other words, AXIOM 1: Do Not Be Tied Down To One Device Or Platform, and AXIOM 2: Never Use A Single-Purpose Application When There Is A Flexible Solution).
What I did was this:
- Created one “remote” calendar for each GTD context, using remote WebDAV storage, since that was available to me through a private domain I host junk on (e.g., webdav.freesoftwhere.org/cal/errands.ics)
- Created a “Category” for each project
- Managed my tasks through these lists, as individual VTODO items.
The rationale for (1) was two-fold: I want to be able to access my tasks from any platform that knows VTODO, and on small-form-factor or restricted platforms, I want to be able to see only a subset of the contexts. For example, in the office, one might want to de-clutter one’s task manager by only viewing the “work” context. That doesn’t apply to me, because I work from home, but you get the idea. You might also have a phone/mobile device whose task manager can only support a single iCalendar feed, and selectively choose just the “phonecalls” or “errands” context.
I accessed the feeds from Thunderbird/Lightning on Linux and OS X, and attempted — without success — to to so from Maemo and Symbian clients as well. No editing on the latter platforms, and no actually working VTODO reading on Maemo at all. There is no Web app support for VTODO in Google Calendar, or other free software web calendar services that I could find (if you know one, drop me a line). For basic task management, I’ve stuck with it.
What I learned:
- Lightning: adding new categories is a royal pain in Lightning. It requires opening Thunderbird’s Preferences editor.
- Lightning: Lightning exposes noticeably less of the task detail in the main window than it does in the “new task” dialog box (e.g., status and category, but NOT location). This makes it difficult to make use of these features.
- Lightning: The above also means you must right-click -> edit everything to update status/details, which is a pain if you’re trying to do GTD. GTD requires active task management, not just binary done/notdone lists.
- Lightning: multiple “color” inheritance in the user interface (i.e., from the calendar and from the category) is confusing at best; how to solve that not easy particularly (even in the mythical perfect calendar where you don’t need more than one calendar feed to manage everything)
- Lightning: In Lightning, you cannot simply click to show just one calendar (in this case, remember, that a calendar means a GTD context); instead every calendar you want to NOT see must be un-checked.
- Lightning: The task manager cannot filter what is shown by category, which would be helpful to view all tasks for a particular project.
- Lightning: I cannot figure out what the Tasks -> Calendar menu does while in Task mode; it lists the calendars, but selecting or unselecting them seems to have no effect.
- Lightning: Lightning is just more crash-prone in general for tasks than for calendars. They’re hard to reproduce; it’s nobody’s fault, just due to fewer users filing fewer bugs.
- VTODO: sharing categories between tasks and events is not a good idea. My usage of categories as GTD projects can sometimes cause overlaps, but projects are transient. The GTD principle of only tracking actual appointments as calendar events almost always uses broad, permanent categories (“home”, “work”, “church”, “school”). Mixing is confusing.
- VTODO: “due date” does not work real well for the GTD principle of next-action sorting, nor does “priority.”
In addition, I realized a few things about the way I use iCalendar-based calendars in general:
- I must use a separate feed for calendar and tasks, because nobody implements both of them correctly.
- I pretty much use Google Calendar solely for the email/SMS alerts.
- people use multiple “calendars” primarily for the ability to do color-coding. That is a UI issue which *should* be available as categories: one calendar for “Appointments” should be enough.
- most desktop task managers and mobile device task managers do not care about iCalendar/VTODO at all. Instead, they try to reinvent the wheel, which sucks.
On the latter point, I fully recognize that every GTD user is different, and the system is meant to be customized to the way you work. But there are half a dozen “todo” managers for Linux that offer nothing beyond simple lists of items that you can cross off — like
The lightweight apps would better be described as checklist managers. I don’t see that they provide any functionality beyond what is available in a simple notepad app like Tomboy or Gnote. If you need that, that’s fine. People need list management, it’s great for grocery shopping. But I want task management to be better than that. That’s why I undertook GTD, and that’s why I tried to implement it in VTODO.
VTODO is probably always going to be the neglected sibling of VEVENT. Probably better off than VFREEBUSY and VJOURNAL (seriously, I still can’t figure out what good the latter’s supposed to be), but supported secondarily. In thinking about how hard it is to find a decent VTODO client, I realize I’m not forging new territory. The same is probably true for any published standard. It’s just that I see people attempting to reinvent the wheel a lot regarding to-do list apps, rather than even attempting to tackle it. Which is a shame if there are already iCalendar parsing libraries out there — which there are.