Blog headline image

Apple To Dos Demystified – Part 2

July 12th, 2011 by ‐ No Comments

In my first post on Apple ToDo magic and mysteries, I described my findings how To Dos are handled in CalDAV calendars by iCal and MobileMe, and in IMAP folders by Mail.app. After four months of test-driving, here are my conclusions.

It turns out that IMAP servers may – apart from mail folders – support folder types of event (for appointments), contact (for addresses), note (for stickies), task (for To Dos) and journal (for you lab book). Apparently Mail.app uses these for storing To Dos. That’s why MobileMe can’t see them. iCal seems to be somehow in the middle in that it knows about both, CalDAV and IMAP folders.

So what about my test-driving experience? Um well, it’s mixed. Although the suggestion I made in the first post to create a complementary set of To Do folders in your IMAP account via Mail.app does yield the described results (ca create “meaningful” To Dos from mail messages), it also has some downsides. The most apparent one is that when you select the “virtual mailbox” for your To Dos, Mail.app will silently fail to sort them in any way. I prefer to have the sorted by due date (first things first). When you click on the due date column header, it will highlight and show the sorting triangle, but the To Dos appear in some random order. The other, less apparent but more severe downside is that it confuses the calendar app on your iPhone.

So I changed my mind, and I strongly advise you to not implement the “parallel schemes” recommendation I gave previously. I suggest you stick with handling your To Dos in iCal.

To make things worse, there is some magic built into Mail.app. Whenever you create a new To Do in Mail.app, it will check whether there is a task or event type IMAP folder (I didn’t confirm which type Mail.app uses), and if there isn’t, it will auto create one named “Mail To Do” for you. There is no way to prevent that. If you create a new To Do while viewing a message you received via one of your IMAP accounts, the To Do will go into the magic folder on that IMAP server. In all other situations it will go to the magic folder on your primary account. These will folders also show up in iCal. And in fact, iCal is the only way to delete these folders again since they don’t show up in Mail.app.

Now here’s my new workflow: I create To Dos exclusively in iCal. If I want a “Show in Mail…” link, I drag the email message to the URL field of the To Do.

Of course I could also create the new To Dos in Mail.app and then reassign them from the magic IMAP folder to one of the CalDAV calendars. Yes, this works. But that will break the “Show in Mail…” link in the To Do. It seems Mail.app creates links relative to the account where it creates the To Do. Here is an example link created by Mail.app:

mailitem:15470C53-6F0A-4F36-A355-EE5E176B568D?type=todo
&action=showparent&referenced_message_id=0X2i0SbwOv4n
&referenced_text_location=1 ./text()[5] 100 ./text()[5] 270

And here is a link to the same message created by dragging it to iCal:

message:<1128471785.89.1310547875065.JavaMail.ofbiz@plweb1>

By inspecting the message’s header information (View > Message > Long Headers) you will discover that iCal uses the Message-Id header field. This will always provide an unambiguous reference to the message because it is generated by a mail server with an assertion of uniqueness. Mail.app’s link involving a UUID seems to have a lesser scope and lesser assertions attached to it.

Phew, now that was some explanation.

All in all it seems to me as if the Mail.app and iCal teams are competing for the “PIM of choice” at Infinite Loop. Looks like Mail.app wants to become the new Outlook handling everything from mail, to contacts, to appointments, to notes, to tasks. But the iCal team seems to have e better stand with the MobileMe/iCloud folks since they integrate the CalDAV stuff, not the IMAP magic folders. Curious to see where iCloud and Lion will take us on this. Keep going iCal team!