I’ve been slightly side-tracked from my quest to host my own blog by the search for a good calendar and todo list application. It is still sort of relevant, because I’d like to embed my calendar in my blog. It’s really useful to point family members to a web calendar and say, “You pick a free night for us to have dinner.”
My current setup is just not working. I’ve been keeping my todo list and events in a plain text file in a git repository. I usually only check the file when I’m adding a new task or event. This means I’m suddenly faced with the
mountain of undone tasks during a (usually) stressful moment. It’s no wonder I’ve slowly started avoiding looking at that file at all. I need something pretty that I can bear to look at every morning.
I’d like to have a nice GUI to display my calendar and todo list, and a way to do offline edits for both. A way to publish my calendar on the web and keep some events private is a must.
I’ve found a partial solution with Google Calendar + Sunbird + GCalDaemon + Remember the Milk. As of today, I can view and edit my Google Calendar with Sunbird, and I can view my Remember the Milk (RTM) todo lists in Sunbird. The only thing lacking is the support to edit my RTM todo lists in Sunbird, both online and offline.
Screenshots of the integrated goodness:
I’ve ranted about Google Calendar before. What changed
since then?
I stopped using my iPAQ, so my syncing issues aren’t relevant anymore. The replacement for my iPAQ, my Nokia e70, has some icky proprietary Windows software to sync the phone’s calendar. I could do some reverse engineering to pull out the magic strings to allow OpenSync to work with it, but it hasn’t been high on my todo list. (Or it’s never gotten on my todo list; this is part of my disorganization problem.)
Google calendar finally writes reoccurring events in a sane way, although I’m not sure if it allows for exceptions. It also allows you to mark events as public or private. Private events will be shown as “busy” blocks on your public HTML calendar, with no details. This is a big bonus because I have work events that I don’t want people to see. I’m not entirely comfortable with giving Google all this data. But other big companies have paid Google to manage their corporate email and calendars, and Google just published an application to sync your Google Calendar and your Outlook Calendar. Google can’t be too evil, right?
Desktop Calendar: Sunbird
Sunbird is a calendar application from the Mozilla folks. It can be integrated with the Thunderbird mail client, and is called Lightning when used that way. It’s still very beta (0.7 since last June). I haven’t explored the interface too much, but it seems fairly sane and simple. It was *very* slow on my quad core at work, but I think that was because of proxy issues and misconfiguration on
my part.
Syncing: GCalDaemon
Sunbird has a plugin for two-way syncing with a Google Calendar. Unfortunately, the plugin doesn’t handle syncing reoccurring events, doesn’t handle proxies, and it only allows editing while you’re online. Total loss. If I was online, I’d just edit my Google calendar through the web front-end!
It’s not surprising that the first Google search result for “sunbird google calendar sync” is not the official plugin. The first search result is GCalDaemon, a simple Java app that keeps a local copy of your Google Calendar and syncs it when you have network access. Sunbird thinks it’s syncing with an iCalendar file on the network, but it’s really only talking to GCalDaemon through localhost:9090. The GCalDaemon website has pretty pictures of how it works:
Todo Lists: Remember the Milk
Remember the Milk, affectionately known as RTM, was started because Google Calendar didn’t have a task list. It has a very good web interface, IMHO:
Remaining improvements
The only thing that is less than ideal in this entire setup is not being able to edit my task list in Sunbird. GCalDaemon has an open syncing API, and Remember the Milk has an open web API. The only thing that needs to be done is put the two together. People have been talking about this since January 2008, but no one has done it, as far as I can tell. Fixing this involves Java and web API, which is the only reason I’m not jumping right into hacking
it together.
I’ll try the RTM web interface and see how awful it is to use two programs to edit my tasks. I might even try the Gnome-based RTM editor (as long as I don’t have to switch to Gnome from KDE). I’ll let you know how it works out in a
couple weeks. Hopefully this combination of software will make me more productive, and less likely to worry about my todo list.