OmniFocus Task Creation Alfred Workflow (live project & tag filters, autocompletion, copy task link or reveal in OF)

Featuring live project & tag filters, autocompletion, and modifier actions (copy task link or reveal in OF)

I’ve created (or better yet, resurrected—credits at the end) this OmniFocus Task Creation workflow for Alfred. It features:

• 🔍 Live project and tag filtering with autocomplete

• 🧠 Natural language task input (project, tag, defer/due, duration, note)

• ⌨️ Modifier options to copy a task link to the clipboard or reveal it in OmniFocus

This is one of my first workflows, so while I hope it’s useful to others, I’m also posting in hopes that someone more capable than me might improve it or give feedback so I can.




⚡ Quick Input Reference

Feature Trigger
Add Task Type task name
🚩 Flag Task Task!
💼 Assign Project ||Project
🏷️ Assign Tag ::Tag
Defer Date #Date
⌛️ Due Date #Date
⏱️ Duration ~120m
📝 Add Note //Note
Copy Task Link ⇧↩
Reveal in OF ⌥↩

🚀 Usage

  1. Run the workflow with the keyword todo or assign a hotkey.

(I use ⌃⌥⇧⌘T myself.)

  1. Begin typing your task, then use the symbols below to extend it with metadata:
🚩!   ||💼     ::🏷️   #⏳   #⌛️   ~⏱️      //📝
flag! ||project ::tag #defer #due ~duration //note

You can mix and match any of the above in a single line.

Book train tickets! ||Travel ::Planning #Monday #Friday ~30m //Check Eurostar vs. LNER
  • To simply add a task to Inbox, just type the task and press enter.
  • To mark the task as flagged follow the task name with an exclamation mark. - Task!
  • To assign a project to the task, type || followed by the project name. - ||Project
  • To assign a tag to the task, type :: followed by the tag name. - ::Tag
  • To set a defer date, type # followed by a date or natural language. - #Friday
  • To set a due date, type # followed by a date or natural language. - #Tomorrow
  • To set estimated duration type ~ followed by a number followed by m without space. - ~120m
  • To add a note type // followed by desired text. - //Note

🧠 Notes

• # is parsed as defer unless you include two; then the second is due.

• Autocomplete kicks in automatically when typing || or ::.

• Duration must be in minutes (~90m, ~15m, etc).

• Notes support multiline input after //.

🛠️ Modifier Keys

⇧⏎: Copies a direct task link (e.g., omnifocus:///task/…) to clipboard

(AppleScript is used to fetch the most recent task)

⌥⏎: Opens the newly created task in OmniFocus directly

🙌 Credits

This workflow is based on:

David Verhasselt’s Alfred Workflow: dv/alfred-omnifocus-workflow — originally built for Alfred 2 and OmniFocus 2. It’s ~10 years old and didn’t run on my setup, but it inspired this reboot.

OmniFocus Collection Workflow by Otto Automator (The Omni Group): Helped me adapt the project/tag filtering mechanism.

✨ Feedback welcome!

1 Like

Thanks for this workflow! I just installed it, and while using it, I noticed that it seems to have a bug. I entered “Sample task! ||” and then started typing the name of a project. The autocompletion dialogue came up, and I selected the correct project, then entered a defer date and a comment.

The project name was “Teach History 305, S25”, which is in a folder called “Teaching,” but when I hit return, the new task was created in a new top-level project called “Teach” (the first word of the project name). When I tried with a top-level project, “Get to know OmniFocus 4 for Mac”, I got the same result: the new task was created in a new project called “Get”.

It seems like Alfred is correctly reading the list of projects from OmniFocus, but the workflow is not passing the full project name back to OF.

I’m using Alfred 5.6 and OmniFocus 4.5.3 (v180.6.0) on a 2023 14-inch MacBook Pro running MacOS Sonoma 14.7.2 (23H311).

Hey Brian.
Thanks for bringing this to my attention.
I will have a look at this over the weekend when I have some free time and see if I can find the solution.

Greetings! Excellent work — way to go.

FYI, here’s the link to the documentation on Transport Text Parsing in OmniFocus which converts written commands into tasks and be executed by Omni Automation as well. Enjoy!

1 Like

Very nice :D just multitags is not working :D I open an issue GitHub · Where software is built.

Thank you again using every day :D