Sadly due to work commitments, I have neglected my blog over the past 2 years. I plan to reinvigorate things again, starting with this post that I wrote back in August 2014, but never actually pressed the ‘Publish’ button.
I have recently switched from my existing Mac-based task management software Things, to a new product called Omnifocus. Without getting into the details that have lead to this switch, suffice it to say that Things development moves at a slower pace than I am satisfied with. I have been trialling Omnifocus for about a month, and while it does have some extra features over Things, it of course has limitations.
Understandably, creating task management software that will yield to the demands of a diverse user base is nigh impossible. Omnifocus is no exception. One demand of the software that I have is to be able to better plan/schedule my projects and tasks into a calendar. Omnifocus includes what is called a Forecast Perspective on your projects and tasks. It is a way to see in a somewhat calendar type view when tasks are scheduled to begin (deferred), and when they are due, along-side my daily appointments as gleened from my Mac OSX Calendar.
This I thought was wonderful as I could then plan out my days and weeks according to what was in my calendar in terms of appointments, and what tasks I had to complete. But then a problem arose that was unforeseen, and that afflicted more than just myself as explained in this forum post excerpt on the Omnigroup discussion forums:
I’m going to submit this as a feature as well, but I figure I’ll post it here to see whether it can get more traction. My issue is this: If I have Deferred something to a start date in the future, odds are I probably think it’s pretty important that it starts on that day. However, what happens if that day comes and goes and I didn’t start the item? In Forecast, the item disappears. That doesn’t make any sense to me. Forecast shouldn’t only be showing me the “past due” things I assigned dates to, but things I didn’t touch that I was supposed to.
If a deferred task is not done on the day it was deferred to, the following day it would simply disappear from the forecast view altogether. Not very helpful when forecasting. The discussion thread continues with contributors arguing the merits of changing the software to overcome this limitation, along with a swathe of work-arounds, none of which I found particularly satisfactory to my needs and context. This got me thinking… what if each morning, there was a way that I could select all tasks that were incomplete and had a defer date earlier than today? I could then update the defer date on all these tasks to be today, and voila, they reappear in my Forecast Perspective.
But how would I do this? Omnifocus makes use of the OSX Applescript frameworks which provide a high-level scripting language that can be used to customise behaviour and automate tasks to make things work in ways not originally conceived by software creators. A handful of applescript contributors exist that have created some very useful Applescripts for Omnifocus. One such contributor Curt Clifton has created a script that identifies projects where there is no next action to perform, suggesting that the project may have stalled. The significance of this script is that I have been able to adapt it to solve my problem with deferred tasks disappearing from the Forecast view when they are not completed on the defer date.
If you are frustrated with this limitation of Omnifocus, and you don’t mind losing your originally specified defer date for your tasks, then my DeferOldToNow Applescript might be of use to you. What the script does is, recursively traverse all of your active projects, looking for incomplete tasks that have a defer date that is older than the present date. On finding each task, it then sets the defer date to the present. If you are interested in the Applescript code, or would like to contribute updates, the source is available on github.
When the script completes, visiting your Forecast Perspective will once again reveal all tasks that were past their deferred date, and incomplete. They appear under “today”. Once they reappear here, you can then defer them again to some time in the future if you need to, but at least they are visible and you are reminded that they haven’t been done. I hope this Applescript proves useful to other users of Omnifocus. If it does, give me a shout out in the comments section. Happy Omnifocussing!