OmniFocus: Day Projects

Posted by on 29th Dec 2015

With OmniFocus and a normal calendar I was usually lacking some kind of easy filing system for small one-off items, until I came up with Day Projects. I'm using Day Projects for over 2 years now. And it's still one of the best things that I've invented. Right next to Priorities. Apparently I never wrote about it though.

Essentially I was thinking about the problem that some information is only really relevant, important, and available at a specific point in time. What's even more important is that many of the things that I want to do, do not require a new project. They are just one-off items. Like on Wednesday when I'm supposed to call that one person for something. The task itself is easy to handle. Pick up the phone, call the dude, talk, hang up, mark as done. These tasks might require a bigger "project", with bigger planning, but only afterwards. Most of the time though, as it turns out, simple things are just simple things.

Day Projects is a script solution for OmniFocus. It takes the current day and creates 7,6, or 5, depending on your prefernces, projects, which have their due date set on the day of the project. For example there's a project for Monday. Its defer date is 10am on that day. The due date is at 11:59pm, the same day. So the entire project is only "active" during that day.

They look liks so:

Mon: 28. 12. 2015
Tue: 29. 12. 2015
Wed: 30. 12. 2015
Thu: 31. 12. 2015
Fri: 01. 01. 2016
Sat: 02. 01. 2016
Sun: 03. 01. 2016
Mon: 04. 01. 2016

I find it really really comfortable to work that way. When I start my day, I can move tasks into that day's project and everything else is handled automatically. For example:

  • My calendar is subscribed to the OmniFocus calendar, which means that the uncompleted tasks will show up in the calendar app (with a direct URL back to OmniFocus).
  • The tasks themselves will automatically get a defer and due date assigned. This is because their parent project has a defer and due date set already.
  • It's easy to find the right project because the script uses the weekday's day name and its date too. So when you search for Tue: you'll easily find the Tuesday project. But you can also search for 28 to find the "28th of February" project.
  • Review is easy. You can select the folder that contains all Day Projects to a) see all remaining tasks, b) move them around, and c) mark projects as completed.[^tricktocomplete]
  • Any deviations from this norm can still be set manually.
  • When you archive old tasks (File → Move Old Data to Archive) all the tasks stay with their projects. They are not just "somewhere" in the Inbox.

The only downside that I find using this is that I sometimes have 10 really tiny rectangles in my calendar right next to each other.

I run Day Project using Keyboard Maestro. launchctl should work too. I've been experimenting with different days to run the script and right now, it's executed at Sunday night, to create 7 of these Day Projects in advance. Note that the week starts on Monday in Europe. Americans, please adjust accordingly.
If you wonder, I found it really helpful to have 7 days in advance, because this way you can defer "stuff" a little bit longer. "Yes, I'll get to that in a week or so". Once you move a task yet another week, you have a candidate for riddance or a bigger project. You can see useful information on the right hand side under the Dates section. Added is the thing you need to look out for.

Since I've been using this for such a long time, it seemed reasonable to think my methodology over. Why not switch to Week Projects instead? All the small projects would each contain the tasks that I want to do for that specific week. The script was relatively easy to write, but as it turns out, that's just not my cup of tea. The big advantage of Day Projects is that they get their defer dates assigned automatically. This is so useful. Let's assume you're filing tasks from the Inbox. Click the project field, type "tue", and OmniFocus automatically pulls up the right project. I found this to be so much faster than other filing methods. Only take care when writing "mon" because OmniFocus usually brings up the Monday project from this week, not the next.

You find both of these scripts on GitHub. I do maintain them, but probably won't be able to fix your specific bugs because this is, let's face it, so specialized that only few people are going to find useful. That said, now that I feel comfortable with JXA a major rewrite may come sooner rather later.

[^tricktocomplete]: Here's a little trick. I typically find that I can "mark" completed projects the next day. When I do that I click the Completed field, then type yes. This will set the completion date to "yesterday", and it also makes me feel really proud of myself. (Yes, you can write an all-caps YES too, in case you want to go for that little bit of extra oomph.)