The Omni Group recently mitigated the most cited impediments1 to productivity when using Omnifocus as a task manager: the drudgery of getting complete information into the system because of a lack of automation.
Entering tasks in Omnifocus on the iOS or macOS is slow; it requires too many keystrokes (macOS) and taps (iOS). Using keyboard shortcuts and TextExpander snippets helps increase entry speed, but task entry is still more difficult than it should be.
After a recent upgrade, almost every aspect of Omnifocus (e.g., due dates, defer dates, notes, project structure) can now be automated on iOS (and only iOS)2. Automation of Omnifocus on iOS is done through URL schemes and/or TaskPaper formatted text.
If you understand URL schemes and are familiar with TaskPaper formatting, skip to the automating Omnifocus using Drafts and Workflow section.
URL schemes allow you to use a URL (the same kind you type into your web browser) to pass information into Omnifocus. Typing a URL schemes into a web browser launches applications and can also pass information to the launched app. For example, clicking on a restaurant review in the Yelp section of Apple Maps without having the Yelp application installed quickly launches Safari and pastes in the URL scheme which opens iTunes and displays the Yelp application.
Try clicking the link below on an iOS device without Yelp installed and see if you can catch being directed first to your web browser and then to iTunes:
The first part of the URL (https://itunes.apple.com/us) directs the device to open the US iTunes store. The remaining code directs the device to the target app (in this case Yelp) within the US store (app/yelp), provides a description of the target app for the user (the-best-local-food-drinks-services-more), provides the unique id for the item in the iTunes store (id284910350?), and tells the user the media type is an app (mt=8)3. This same process is used by iOS to pass information to and from apps. Alex Guyot wrote a detailed description of URL schemes on MacStories.net that is a great resource for understanding URL Schemes.
TaskPaper is a way of writing ToDo lists in plain text files using special formatting (e.g., @due, @flagged(true)). There is also an app that supports the TaskPaper method of ToDo lists. However, many other text editors such as Editorial support TaskPaper formatting4. Omnifocus has been updated to accept TaskPaper formatted text through the “paste” command in its URL scheme. TaskPaper format is simple and can be quickly typed into a text editor to create complex sets of tasks (see example below).
- Task 1 @due(tomorrow) @flagged(TRUE)
This is the note for task 1
- Task 2 @due @flagged(False)
This is the note for task 2
Combining URL schemes and TaskPaper format allows you to quickly use an app like Drafts or Workflow to enter tasks to specific projects in Omnifocus.
Automating Omnifocus Using Drafts and Workflow
Automating Omnifocus Using Drafts
Omnifocus automation requires building URL schemes with the appropriate structure. Many iOS apps like Drafts make this process easier. Using URL schemes, drafts can match the title of a note to a project in Omnifocus and use the body of the note (written in TaskPaper) as the task(s). The URL to make this happen is:
You can install this action directly in the Drafts App here.
Just like the iTunes Yelp app URL discussed earlier, this URL instructs the device to open Omnifocus (omnifocus:///) and use the (paste) command to paste into the target project (target=/task/[[title]]) using the TaskPaper text (content=[[body]]). The end code of the URL (x-success=drafts4://) instructs the device to return to the Drafts app after writing the task(s) to Omnifocus. The Omni Group wrote the paste action so you do not need to know the exact name of the project in which you would like put the task(s). Omnifocus will match the name of the project with what you type in the title of your Drafts note.
Omnifocus accepts the following TaskPaper tags (from Omnifocus blog):
- @autodone(bool) – whether the item automatically completes itself when its children are complete (true) or not (false). Named to match @done.
- @context(string) – the context to assign
*@defer(date) – defer until date, e.g. 2016-04-19 5pm or next Thursday -3d
- @done(date) – completed on date
- @due(date) – due on date
- @estimate(time span) – time estimate, e.g. 2h for 2 hours or 3w for 3 weeks.
- @flagged – present when an item is flagged
- @parallel(bool) – whether children are parallel (true) or sequential (false)
- @repeat-method(method) – the repeat method: fixed, start-after-completion, or due-after-completion
- @repeat-rule(rule) – an ICS repeat rule (see RFC244557), e.g. FREQ=WEEKLY;INTERVAL=1
TextExpander makes entering these Omnifocus tags even faster as snippets can be created for each tag and can place the cursor in between the parentheses [e.g., ddue = due()]. You can download my TaskPaper to Omnifocus snippet library here.
Automating Omnifocus Using the Workflow App
Automating Omnifocus using the Workflow app requires a basic understanding of the creation of workflows using the Workflow app5. Knowing how to create workflows in the Workflow app allows the creation of simple workflows to input task(s) to specific projects in Omnifocus. Additionally, the Workflow app enables the creation of templates (that are stored within the Workflow app).
Using The Workflow App to Get Tasks Into Omnifocus
Inserting tasks directly to the omnifocus inbox or projects field is easy with the Workflow app. It requires creating a workflow that can be accessed using the share sheet that accepts text 6.
Once the workflow is created, all that is required is to write TaskPaper formatted text in a text editor and share it using iOS’s built in share sheet.
Using The Workflow App to Make Templates for Omnifocus
There is no limit to the length of TaskPaper formatted text Workflow can pass to OmniFocus. Thus, entire projects (or multiple projects) can be stored in the Workflow app until they are needed allowing the templating of tasks, projects, or both. This means that any repeating complex tasks can be made into templates in the Workflow app that can instantly populate OmniFocus when needed. For example, as a professor, there are a number of classes that I repeatedly teach each year that require certain tasks to be completed every time the courses are taught (e.g., create syllabus and all the subtasks that apply to that project). Having these tasks templated in the Workflow means faster creation, but more importantly, less error as I am significantly less likely to forget a task.
You can also hold multiple TaskPaper formatted templates in a single workflow and have the workflow prompt you to select which one to send to Omnifocus. These workflows can get quite complex and are immensely useful.
Automating Omnifocus For the First Time
If you have never automated Omnifocus, I encourage you to try. Once you understand the basic structure of the method you are using, you can create templates and enter tasks in Omnifocus extremely quickly. The short time spent up front learning the method will result considerable time savings with repeated use.