Taskpaper Sync to OmniFocus from Windows OS

I, like many other poor souls on this forum, am confined to using a Windows machine at work. However, while I’m still holding out faint hope for a web API in the future, I’ll spare everyone the feature request and offer instead a temporary solution for those who would like to batch import tasks from Windows into OmniFocus.

What’s Required

  • Windows OS
  • Dropbox
  • Editorial app for iOS
  • Workflow app for iOS (optional)
    • Allows for quick launch of syncing routine on iOS
  • OmniFocus iOS 2.16 or later (workflow relies on the newly expanded /paste URL)


How to Use

  • Open up the blank taskpaper file from Windows in a plain text editor (e.g., Notepad or Notepad++)
  • Enter your list of tasks using the format described under the “TaskPaper Format” heading in @kcase’s thread Implementation Details for OmniFocus 2.14 Automation with one significant exception:
    • Using the custom Editorial script downloaded above, you can separate tasks into different target groups using the prefix ++, for example:

++(Name of an existing project in your database)

  • Task 1 @due(tomorrow)
           Note for Task 1
           - Subtask 1.1
           - Subtask 1.2
  • Task 2

++(Name of another existing project in your database)
-Task 3

Also, if the first line of your task group ends with a colon (:), the Editorial script will identify your task group as belonging to a project and will treat the name after the ++ prefix as a Folder:

++(Name of an existing folder in your database)
Project 1:
       - Task 1
       - Task 2

Finally, if no target name is specified (or if no matching target name is found in the database), the tasks will be added to your inbox:


  • Inbox task 1
  • Inbox task 2

Note that OmniFocus performs all matching on the backend using their “SmartSync” method. From the Implementation post linked above:

@kcase: The name lookups support our usual “SmartMatch” completion matching, so if you have a project named “My Project” you’ll be able to use “omnifocus:///task/mp” to get to it (or whatever the first match for “mp” turns out to be).

  • Finally: After you’ve filled out the blank taskpaper file with your tasks from the day, simply save the file in your text editor, and then do one of two things:
    • Open up the Workflow app and launch the sync routine from there
    • Open up the Editorial app, navigate to the todo.taskpaper file, and then run the Editorial workflow from inside the Editorial app.

How This Works

The short of this is that the Workflow script points to the Editorial script, which syncs with Dropbox (where the taskpaper file is saved), then splits up the taskpaper text into different groups, as separated by the ++ header. Then each group is imported separately into OmniFocus using the new /paste URL method. At the end of the Editorial script, it will clear your taskpaper file to make it ready for the next entry (this behavior can be tweaked, as discussed below).

Custom Tweaks

As may be expected when trying to splice together so many tools, there may occasionally be hiccups along the way, due to idiosyncracies with the way each of the apps communicate with each other.

  • If you don’t want the script to automatically clear your taskpaper file at the end of running, simply remove the step at the end of the Editorial workflow called “Replace Selected Text”

  • I found that it was necessary to pause the Editorial app momentarily in between adding each task group. Default pause length is a few seconds, but you may want to adjust this on your device if you are finding that Editorial completes the script before all tasks are imported into OmniFocus. This parameter can be tweaked by changing the value in the “User Input: Pause Duration” step of the Editorial workflow.

  • I also experienced issues with Dropbox not always syncing with Editorial again at the end of the workflow. I found that restarting Dropbox each time works to get over this hump (this I do with a one-click shortcut on my Windows taskbar… If you have read this far and are curious to know the process for this, just PM me, and I will be happy to assist).

That’s it! Convoluted, maybe… but it works (most of the time)! Hope this helps someone else out there. If anyone has any thoughts for improving this workflow, I’m all ears!

Here’s to hoping this process becomes obsolete in the future with newer, shinier API tools :)


This is aaaaaaaaamazing! I’m one of the unfortunate people to use a Windows machine at work, and this fits in perfectly. I’ve been playing around with the idea of using Taskpaper as a capturing system and sending it to OmniFocus to keep everything orderly, however I couldn’t figure out how to get stuff from my work machine to my system. This works perfectly. Again, thanks a lot!

1 Like

Great to hear! Thanks for the feedback :)

There ought to be a support group for those of us OmniFocus users who are confined to Windows at work. The hoops we have to jump through to minimize the friction of capturing new tasks… (I am a recovering Mail Drop addict).

Feel free to share any thoughts you have for improvement!

Hey Bryan, there seems to be one tiny issue with the way this works occasionally, and I was wondering if this is something you ran into.

I’ll enter the information into the file fine and kick off the Workflow to sync everything up, however sometimes (not all the time, oddly enough) the Editorial script will launch OmniFocus and then the automation process will just stop. If I switch back to Editorial manually at that point, the script continues and then works fine. But about 50% of the time, something happens to cause OmniFocus to not kick back to Editorial to finish everything up on the first go-around. I don’t want to mess up the script as it is now because this honestly isn’t a deal-breaker, but it’d be nice to work that kink out. Any ideas?

I’ve come across the issue but haven’t found a reliable fix. Seems to me the new URL schemes making all this automation possible are not fail-safe and can occasionally get derailed if iOS gets busy. Not sure if this is a bug in OmniFocus or the iOS itself but I have seen it, both while using URL commands linking OmniFocus with the Editorial app and also the Drafts app.

As a non-developer, my best suggestion is to try to increase the “Pause Duration” option in the Editorial workflow, which may help iOS catch up to itself before trying to launch the URL link to OmniFocus. If enough of us notice the problem, maybe it would also be worth submitting a possible bug report.

1 Like