Task Masters (or, Why the Crap Can’t I Sync my Task List?)

Screenshot of Wunderlist. The only task listed is "Fix Task Management"Let me be up-front about this: I’m obsessed with task management. I can’t get enough of it. The first thing I look at when I get to work is my task list, and the last thing I look at when I leave for the day is my task list. Given the choice between coffee and my task list, I will pick the task list one hundred percent of the time. I. Love. Task. Management.

I love it so much that I use three task management apps concurrently. At work, I use Things because it’s deceptively powerful but still knows when to get out of my way. (I sync it with other computers by way of Dropbox.) At home, I use Wunderlist because it’s simple and free, and because it’s cross-platform and syncs with a web app. On the go, I use the task manager that’s built into WebOS because it notifies me when I have things to do, and keeps those notifications visible until the tasks are done.

This is insane. I realize that. But I have a very good reason for this wackiness: nothing syncs with anything else! I can’t view my Wunderlist tasks on my WebOS task manager, or view my Things tasks in Wunderlist. Without Dropbox as an intermediary, I can’t even sync one desktop copy of Things with another.

It’s like the bad old days of POP email, when your messages lived primarily on your local computer. The IMAP protocol allowed you to keep all your messages on a central server, and sync all your actions with the server, but it wasn’t until Google rolled out Gmail that IMAP email was available for free. Similarly, it wasn’t very long ago that it was nearly impossible to sync various calendar applications with one another. Before Mac OS Leopard, iCal calendars were only available on Macs and iPhones.

This has changed partly because more and more companies have bought Microsoft ActiveSync licenses so that they can sync with Exchange, but something more significant happened a few years ago: Apple developed a calendar sharing protocol called CalDAV. Based on the WebDAV collaboration protocol, CalDAV allows calendar applications like Google Calendar, MobileMe, iCal, Mozilla Sunbird, and many other applications to communicate with one another. It’s an honest-to-goodness open standard, with an Internet Engineering Task Force memo and everything, and unlike ActiveSync, it’s free to use, so even little developers can use it. Having the same calendar on my phone, my home computer, and my work computer has changed how I work – and kept me from missing more than a few meetings.

Not so Fast

So why don’t we have a standard protocol – call it TaskDAV – for collaborating on tasks? Well, for starters, different task management apps consider tasks very differently. Google’s bare-bones task manager is basically a list of words, with no data about due dates, projects, and the like. Apple Mail’s task list has due dates and alarms but not much else.

Conversely, Things can organize tasks into projects and areas, and it can tag them by category. Tasks in Things can be scheduled to be done on a given date, even if they’re not due until later. You can indicate priority by creating a tag with a name like “High” or “Low.” Oh, and also there’s a robust repeating tasks system, so you can have a task that occurs on the first Tuesday and third Friday of each month.

Wunderlist behaves kind of like the poor man’s Things. You can “star” a task to indicate high priority, but there’s no way to indicate low priority. You can organize tasks into lists, but you can’t organize those lists in any way. A task can have only one date associated with it. Tasks can’t be scheduled or repeat in any way.

By the way, in our imaginary protocol, all applications must talk with each other seamlessly, handle conflicts automatically, and never lose data.

Sync IconCultured Code’s infamously long development time for Things cloud sync starts to make a little more sense now. It’s hard enough to sync different applications when they are each talking about the same thing, but how to you synchronize applications that have radically different conceptions of just what a task is?

Let’s Talk It Out

One option might be to consider an XML-based format for describing tasks, kind of like the RSS news syndication format or the XSPF playlist format. Tasks would contain elements like dates and completion status. There would be a set of widely agreed-upon tags, and vendors could propose new tags as needed. Vendors would be discouraged from coming up with different names for the same thing. Applications could refuse to display content that they don’t support, but they would need to leave that content intact when syncing.

In my dream world, all the big web-based task managers – Wunderlist, Remember the Milk, Toodledo, even the anemic Google Tasks – would all speak the same language. Not all of the would envision tasks in exactly the same way, but they’d degrade gracefully whenever they encountered something that they couldn’t handle.

Is this a lot to ask of developers? Sure. Would it require coordination? Tons. Is it a really dorky, low-level thing that vendors couldn’t possibly get excited about investing in? Arguably. But so was CalDAV.

4 Comments on “Task Masters (or, Why the Crap Can’t I Sync my Task List?)”

  • Hi Ryan,

    do you happen to know whether anything has happened regarding ‘TaskDAV’ or similar initiatives since you wrote this?


  • Hi Markus,

    I haven’t seen a lot on of progress open standards for task data. Wunderlist was rewritten from the ground up, and cloud sync for Things finally came out of beta, but neither has an open API. Apple came out with Reminders, which is yet another simple, elegant, and closed task manager.

    There is a library called TaskDAV that lets applications interact with tasks over CalDAV: https://github.com/davidfraser/taskdav It sounds like it’s in pretty early stages, though, and I don’t know whether it can do anything beyond the simple task lists that Google Tasks and Apple’s Calendar app can do.

    Looking back on this post, I wonder whether a simple JSON format might be a better fit for something like this. To-do lists are relatively simple data. WebDAV and CalDAV are relatively complicated, partly because they can handle complicated file structures and many users modifying lots of data at the same time. When I use collaboration tools like Basecamp and Lighthouse, our team’s needs are rarely that complicated.

    If I built a simple JSON task format and a proof-of-concept app to go with it, what would you use it for? How do you currently use your task lists? What sorts of things do you want to do in the future? Are you working around limitations in your current task manager? If so, how?


  • Hi Ryan,

    Thanks for the instant reply!

    I sense a need for an open protocol for tasks, just like you did in your initial post. When I interact with clients, I often run into compatibility issues because they do not use the same task software as I do (OmniFocus and Basecamp). Thus, we cannot exchange tasks, have no mutual transparency because we cannot look at other people’s task lists etc. Therefore I often stop using a task manager for professional needs because I cannot communicate tasks with my clients. For private reasons I use OmniFocus.

    I am not a software developer but I spent a couple of years doing some research on how to set standards. I am also connected with a few people who have experience in setting global software standards (most notably for video formats like H.264). So perhaps we can do something together?

    Let’s take this conversation private. My email is: markus.burger (at) fu-berlin.de

    All the best,

  • Well, the VTODO object in iCalendar should address this, doesn’t? And it’s RFC, too.


Hi, Stranger! Leave Your Comment...

Name (required)
Email (required)