I live my life through OmniFocus.
Between my iPad, iPhone and my Mac, it’s the place that I store all of my tasks and random project stuff. I subscribe to the ‘trusted system’ theory – by knowing that I won’t lose track of something if it’s in OmniFocus, I don’t stress out about my todo list rattling around in my head.
Despite the great iOS apps, I inevitably have to process a lot of tasks that begin as email. The Mac version uses the Services menu to allow you to capture text and create list items easily. Unfortunately, due to current platform limits, there’s no such convenience on iOS. That means that by default, going through my email inbox and creating OmniFocus tasks isn’t all that doable on iOS. This troubled me.
Yes, Omni does provide their ‘Send to OmniFocus’ email address – you forward your message to it and it returns it back to you with a reply that contains a URL to populate the app with that task. It’s nice that they include this but come on, let’s be honest: it’s a hack. The messages aren’t linked the same way that they are when you use the Mac service and I just generally don’t like the idea of polluting my email with these extra messages.
Since my Mac at home is running 24×7, I wondered if there was a way I could use AppleScript to create my own solution. Here’s what I’m doing now:
In iOS 5, Apple added the ability to flag a message, just as you’ve been able to do on the desktop forever. I created an AppleScript that looks for flagged messages. When it finds them, it adds them to OmniFocus and links them back to Mail.app, just like the Services action does. It then also unflags the message, resetting the state back to normal. This script runs every five minutes.
What this means is that I can now just add a flag to a message on my iPhone or iPad and know that it will be picked up by OmniFocus.
There’s one serious downside – since Google’s Exchange implementation for Gmail is seriously strange (some might say broken), it doesn’t work there. While Exchange ActiveSync supports flags, the Google implementation does not. If you decide to use ActiveSync to access your Gmail account (i.e. to get contact and calendar sync, push, etc…), this will likely not work for you.
Anyway, this script has been so useful to me that I’m sharing it here. Feel free to use / hack on this yourself as it fits your needs.
I’ve never done anything in AppleScript before so if you’re an AS expert, don’t laugh too hard.