If you want to set your goal, tracking time and record your life, you may want to try this :)
Apps you need: Omnifocus 2, Fantastical 2 and Tyme
###Preparation
Set up projects in all 3 apps. (Set projects as separate calendars in Fantastical)
Put the “omni_tyme” script in Omnifocus 2 script folder
Put the “tyme_applescript_hooks.scpt” in ~/Library/Application Scripts/de.nulldesign.tyme.osx/ (You may need to create this directory)
Create a button in Omnifocus toolbar
[Alternative] If you have Alfred, there is an modified version of Omnifocus Create workflow made by me available below which will let you create last through Alfred and directly add the task to Tyme
P.S. You may need to install these package through ‘’‘gem install XXX’’’ in terminal before using the workflow. bundler, plist, alfred-workflow, rb-appscript
###Workflow
Create a task in Omnifocus with Estimated time, due date and a specific project
Select the task and click the script button. The task will be created automatically in Tyme with estimated time, due date and project
When you start to deal with the task, start Tyme for tracking time
When you complete the task, stop time tracking and a new calendar entry will be automatically be created in Fantastical 2.
[If you are using alfred and the workflow above to input task, the step 2 can be ignored]
Hope you guys enjoy it!
Link (sorry…new users can only put 2 links in the post…)
tell application “OmniFocus”
tell front window
set my_sel to selected trees of content
set my_selection to value of item 1 of my_sel
set tsk to name of my_selection
set due to due date of my_selection
set esti to (estimated minutes of my_selection) * 60 as real
set proj to name of containing project of my_selection
tell application “Tyme”
set judge to false
repeat with someproj in every project
if ((name of someproj) is proj) then set judge to true
end repeat
if (judge is false) then make new project with properties {name:proj}
end tell
tell application “Tyme” to make new task of (project proj) of application “Tyme” with properties {name:tsk, plannedDurationHours:esti, dueDate:due}
tell application “Tyme” to make new taskTag of task tsk of (project proj) of application “Tyme” with properties {name:“Incomplete”}
end tell
end tell
Hi, think you for this very useful post. How is it possible to mark a task as completed in Omnifocus when the task is marked as completed in Tyme and vice versa?
I really want to implement that function, however unfortunately I have no idea how to realize it. I hope someone more capable in scripting can do this in the future.