Sync OmniFocus with todo.txt
How I synchronize Omnifocus with Todo.Txt to have access to my tasks on my Android devices.
History
I have recently started using OmniFocus to manage my various list of tasks and projects. The only issue that I have with OmniFocus is that my current smart phone is not an iOS device, so when I'm out and about I cannot easily access these lists.
I did some research and found that a number of people have this problem - each seemed to solve it in their own way, none of which seemed like they would work for me.
This weekend, I had a particularly long list of tasks that I wanted to accomplish and I knew that I would not be around the computer most of the time, so I looked for an alternative way to keep up with my list.
Enter todo.txt.
Todo.txt has a nice android application and the format was simple enough that I thought it would work for me, so I did a simple copy/paste from OmniFocus into my todo.txt (which I'm storing in Dropbox) and my lists magically appeared on my phone!
As I went thru the weekend, it was a hassle to remember to mark things as done in OmniFocus - I began to think about a way to sync between OmniFocus and my todo.txt file.
The solution that I came up with is this AppleScript script.
Overview
This script will read the and parse lines in the todo.txt file.
OmniFocus tasks whose name matches a completed task in todo.txt will be marked as complete in OmniFocus.
A task will be created in OmniFocus for each task in todo.txt for which a matching task is not found in OmniFocus.
The contents of the todo.txt file will be replaced with an export from the "ActiveExport" perspective.
If growl is available, a message will be displayed informing the user when the process finishes.
This expects to have a perspective setup in OmniFocus called "ActiveExport" which is an uncategorized list of all tasks that you would like to "sync" to todo.txt
Here's how my perspective is setup: It appears to work well enough for my use, although I suspect it's rather fragile given how I'm doing some of the parsing of the todo.txt file. It also has some issues like it does not sync contexts and projects as I would like (not at all in one direction), so it has a way to go before it's finished, but I wanted to put it up and let some folks have a chance to pick it apart.
Download
Script file Sync_with_todo-txt.scpt
Saved as text Sync_with_todo-txt.txt
Saved as text, zipped Sync_with_todo-txt.zip
You will need to edit the script and give it the absolute path to your todo.txt file and optionally update the name of the OmniFocus perspective used to export to todo.txt.
Use this script as you wish - if you make improvements to it, please let me know about them.
Update
January 2013: Based on some feedback from Jake, I've made some improvements to how this script works. It is now more complete, handling flagged tasks, cleaner matching of tasks from todo.txt to OF, etc.
Other Solutions
Other people have solved this problem in different ways. Someone who came across this page contacted me with a solution he uses to sync his OmniFocus reminders to a cloud calendar which is then available on his Android device. Here's a link to his write-up if you're interested in the details: http://experimentandoando.blogspot.com/2013/05/sync-omnifocus-mac-to-android-calendar.html.