The ways to use Estimated Time in OmniFocus 2 ▸ Tips & Discussion


I really enjoyed old grandpa OmniFocus 1 and being able to quickly add estimated time (tab tab tab), as well being able to use this field for sorting and grouping. Unfortunately for me, and many others, this feature even remains, is not an easy task to make a solid use of it.

Download links at the bottom.

I. My way of using Estimated Time in OmniFocus 2

1. AppleScript
I’m not a programmer with zero experience in AppleScript. Luckily some users on this forum were very helpful to kick things off. Based on trial and error I created 8 scripts assigning different times. I find it less time consuming, than having 1 script, putting the number and confirming. 8 scripts, 8 shortcuts. Press and done.
The scripts are for the estimated time of: 1h, 2h, 30m, 15m, 5m, 3h, 5h, 4h (in the order for the shortcuts).

2. Keyboard Maestro.
I assigned ⌘+1, 2, 3… shortcuts for different estimates. This way I’m able to process it quickly.

3. Using in OmniFocus
I don’t find it useful to create perspectives, which would include the estimated time field. There is a limited number of choices:

I look in the Forecast perspective for the today’s tasks, mark them all, and execute another AppleScript, which is a modified version of the one from here.
I just cut out all the unnecessary code, so I can execute the script with a shortcut and immediately see the info of how much time is planned.
This gives me a solid idea of the plan for the day/date, a need to reschedule something, add more tasks, etc.

After many different approaches, many tries and basically time wasted, I gave up on finding other or better ways, and I use this option only, for what’s mentioned above.

Hopefully it can help to someone, as well maybe someone will share something useful.

II. What does OF2 lack? What features for Estimated Time would be great to see?

Being able to:

  • see the estimates on the task, not only in the Inspector window
    • and being able to edit the estimates
  • each project showing the sum of the estimates (non-existent in OF1)
  • estimate the time in the Quick Entry box

Simple design of the idea:

Download link to some of the AppleScripts I use and the Keyboard Maestro macros for the Estimated Time script.

Shortcut for estimated time using Keyboard Maestro (and Apple Script)?
Using OmniFocus with zero or minimum contexts?

Everybody will use estimated time differently. Some may not even use it. Life is changing too quickly for anybody to accurately estimate any activity’s estimated time. The only tasks I have been able to estimate fairly accurate are repeated tasks that I do on a continuous basis. Otherwise, most tasks will be inaccurate.

For my workflow, I will put time estimates for quick actions. I assign quick tasks an estimated time of 2 minutes to 15 minutes. I leave everything else blank.

I use the short estimated times for my “quick” tasks - anything that can be done in 15 minutes or less.

Then i create a “Quickie” perspective such as this:

If I wanted, I can drop the Filter by Duration setting to 5 minutes.

Whenever i have a small window of time in between large projects and need to complete a bunch of small tasks, I will visit the Quickie perspective.

Most actions that do not have an estimated time will probably be something that will require at least 30 minutes or more to complete. I don’t put an estimated time for these tasks because it would be useless. I already know that these tasks will occupy a large block of time.

I also don’t worry about the total “estimated time” as performed by these Applescripts. I already know that a project will take up large blocks of time.

I just use the estimated time to help populate the Quickie perspective. The Quickie perspective helps me find small tasks that I can do before my next client meeting. If I have a 5-15 minute block of time before the next client, I’ll visit the Quickie perspective and find a quick task to complete.


Tracking Estimated Time can be hugely important… especially if Omnifocus is used to keep track of heterogeneous tasks, some that take 15 min but others that can take 1.5 hours.

Estimated Time is not just useful for filtering and setting Perspectives. Of course, in certain situations, you might want to see only tasks that take <15 min. For this, a quick filter or Perspective will do the trick.

The deeper use, I think, would be withe a sum of the Estimated Time. Imagine if this total Estimated Time is presented for each day in Forecast View. Right now, the color coding in Forecast view gives you a sense of how many tasks you have. But, the # of tasks is not as useful as the amount of time to complete them. Boy, this would be incredibly useful when planning and gauging your week. You could figure out very quickly if you’ve overcommitted on a particular day.

It would be pretty simple to extend this idea so that the sum of the Estimated Time is presented when looking at items in Project view, or Context view, or to display it for just the selected items.

I understand Omnifocus isn’t meant to be a planning tool. But, this is a pretty basic idea without getting into Gantt charts and Resources and Effort/Duration stuff.

For those really desperate for a solution to this, Nozbe has a nice implementation of Estimated Time and this concept of summing up Estimated Time.


The AppleScript below (which incorporates code from Jake Bowers and Rob Trew) will display the sum of estimated times of selected tasks. (Watch the line breaks.)

tell application "OmniFocus"
tell front document
	tell document window 1
		set sel to selected trees of content
		set selCount to count of sel
		if selCount > 0 then
			set minSum to 0
			repeat with i from 1 to selCount
				set aTask to value of (item i of sel)
					set taskMin to estimated minutes of aTask
					set minSum to minSum + taskMin
				end try
			end repeat
			display dialog "Please select one or more tasks before running this script."
		end if
	end tell
end tell
display dialog "Estimated total time: " & (minSum div 60) & " hours, " & (minSum mod 60) & " minutes" buttons {"OK"} default button 1

end tell


Thanks for the Applescript to Sum up Estimate Time of selected tasks.

It would be awesome if there is a way to enter the Estimated Time in QuickEntry.

One way to do this is to enter it in the name of the task. For example, “this is my task [20 m]”. Then, once in a while, execute an Applescript that reads through active tasks and converts any task with the text “[xx m/h]” into the appropriate estimated time.

Not an ideal solution, but it could work.

Now, does that AppleScript exist out there?


@midas, that would be additional work I think for you to implement this in the workflow. I don’t think this apple script exists.

That would make more sense, if AppleScript would read every task added, and it would change the name automatically. For example:

  1. *Entering a QuickEntry item and at the end hitting the shortcut ⌘⌥1, which ads the text “#1h” (hashtag to avoid potential conflicts in the future).
  2. After confirming, the AppleScript
  • checks if there is any text with “#”
  • deletes the “word” which starts with “#”
  • converts it to appropriate measure of time, by pasting that information without the “#” into the EstimatedTime field.*

What do you think?

Hopefully there is a brain here, which could help with this.


@kamil, what you propose is, of course, better in that the script would run in the background and the user wouldn’t have to take extra steps to process recently added tasks. But, I’m guessing (but glad to be proven wrong) that having a script like that just running the in the background all the time wouldn’t be kosher implementation. Perhaps, it is a script that runs every X min. That’s fine too. The “meat” of what is being proposed, I guess, is an AppleScript that:

  1. reads recently-modified tasks (not just recently-added tasks)
  2. searches for a #zzz string in the task name,
  3. converts zzz into an appropriate Estimated Time where ‘m’ stands for minutes and ‘h’ for hours and the numbers that preceded ‘m’ or ‘h’ indicate the duration in those units.

Hope someone out there has this! That would be really cool :)


I will pay $20 for that script. PayPal.

Are there any websites where I could ask smart people, who are too kind to be bored, to help with the script?
With the payment or not?



I see that Omni has enabled a crude column-view of tasks where one could now include estimated time as one of the columns. Now, you could tab over and include an estimated time for tasks. Definitely progress, and much appreciated. Along with the above AppleScript to sum up Est Times for selected tasks, it provides the rudiments of being able to utilize Est Time more effectively.

The column view isn’t exactly nice to look at. But, it is a workable, temporary fix.

Thanks, Omni!


The “Download link …” link that you posted now leads to an empty folder. Could you post the scripts you mentioned and provide a link? Would be much appreciated.

Also, @eurobubba I tried your “sum of estimated time” scripts and got an error message. Does it work for you?

Thanks to all!!


Yes, I use it all the time. What error message are you getting?


@MKV Thanks for pointing this out.

Here is the updated link with AppleScript files and KeyboardMaestro macros for OF:

Reminders - importing OmniFocus tasks to Reminders?

Thanks @kamil

Some Useful Scripts there. The Keyboard Maestro Library/Macros to trigger them is great.

For others wishing to use them - here is how…

Getting the Scripts into OmniFocus

  • Download the scripts and unzip
    • Review the scripts so you get an idea of what they will do. (Always a good idea with scripts downloaded from the internet)
  • In OmniFocus open the script folder (Help Menu --> Open Scripts Folder)
  • Drag across those scripts you want to have access to in OmniFocus. There are several here that I don’t need for my own workflows, your requirements might be very different to mine.

At this point, you could cmd-click the menubar and add the scripts as buttons, however keyboard maestro makes life easier by giving quick keyboard shortcuts to trigger the scripts like cmd-4 to put 15 minutes into the estimated duration field of the selected action.

The keyboard maestro library file needs to be edited so that it contains the path to your scripts BEFORE it is imported into keyboard maestro (or you can do all 13 manually after importing if you want to)

Updating and Importing the Keyboard Maestro Library file

  • Download the keyboard maestro library file.
  • In finder, right mouse click and select ‘Open With’ and select your chosen text editor (Text Edit works fine).
  • search and replace ‘kamilpapiez’ (without the quotes) with the short version of your user name.
    • If you don’t know this you can find it out by switching to the OmniFocus scripts window again and from the View Menu showing the path bar. Your short name is between ‘Users’ and ‘Library’.
  • Save the file making sure that the extension isn’t changed
  • In Keyboard Maestro choose File --> Import to Macro Library
  • Once imported you can remove any Macros that call scripts that you have chosen not to add at the moment. (Or leave them there but add a comment to say ‘Script file not installed in OmniFocus yet’)

Test the keystrokes/scripts by selecting an action and using a keyboard shortcut (e.g. Cmd-4) to update a estimated duration field.


Sorry if that had already been asked, but I’m completely new to the OmniWorld and just bought OF2 and OmniOutliner (with OmniPlan to come).
Is it possible to create a perspective that includes e.g. <15 min tasks = 15 and/or 10 and/or 5 min)? So this whole group of tasks would be displayed that I could e.g. call “quick tasks”.
Best, Michael


Despite appearances, if you set the filter to “15 minutes” you will see items that are 15 minutes or less and also of no set duration.


Thanks a lot, that works perfectly!


THANK YOU @kamil - huge help!


Hi, this folder is no longer up. Can you please restore it?



Either because I am useless at estimating the time it takes to do something or because something unanticipated comes and blows the (guess)timate to pieces.



I don’t put estimated times on every task. That’s just too much overhead for me. I usually put it on routine, repeating tasks.

If it is a task that I am unfamiliar with, I’ll take a guesstimate and double it. It takes time for me to get the unknown factors out of the way. As I become familiar and comfortable with performing a task, I’ll shrink down the estimated duration down to realistic ranges.