For All Mindkind

Posts tagged with "omnifocus"

Send Multiple Tasks To OmniFocus Mail Drop At Once With Drafts and Pythonista

Send Multiple Tasks To OmniFocus Mail Drop At Once With Drafts and Pythonista

Nice workflow by Nathan Henrie to send multiple tasks to OmniFocus at once using Mail Drop, Drafts, and Pythonista:

I’ve also recently started playing with Pythonista, and I came across a Python script written by the dev himself that creates a little SMTP server and sends email directly from Pythonista. Between the two, I found it pretty easy — even for a beginner like me — to put together a combined Drafts / Pythonista workflow that makes for a superior way to import a bunch of tasks to OmniFocus at once (aka “brain dump”).

The Python part is based on the same script I covered in November to send emails through Pythonista; Nathan added a clever Drafts integration by splitting multiple lines (from the draft) into separate email messages sent to your Mail Drop address. Make sure to check out his video to see the workflow in action; I have started using it myself and I like how fast tasks go from Drafts onto OmniFocus via email (I have configured the script with my Gmail address using 2-step verification).

I have become a big fan of OmniFocus Mail Drop. It’s been extremely fast and reliable in my experience, and it works well with Drafts’ email actions.


Speeding Up OmniFocus Sync

Speeding Up OmniFocus Sync

Some great tips by Sven Fechner on how you can speed OmniFocus sync. It involves archiving data on the Mac and resetting sync databases on your iOS devices:

The free OmniSync Server makes life a lot easier and keeps your OmniFocus world, well, in sync. If you use your own WebDAV server you have the same capabilities but without the awesome “Mail Drop” feature which allows you to email in your actions.

While the OmniSync Server is fairly reliable, it is not necessarily the fastest syncing solution on the planet. In particular when your database gets larger and more convoluted.

It’s the first time I’ve followed this procedure, and, indeed, my OmniFocus database has been slimmed down and it now takes 5-8 seconds less to sync on WiFi; the improvement is even more considerable on 3G.

I’ve used my own WebDAV server with OmniFocus for months, but the convenience (and simplicity) of the Mail Drop feature lured me back to Omni Sync Server. Mail Drop works amazingly well in conjunction with Drafts, allowing me to quickly send off a task to my OmniFocus inbox in the cloud. In moving to Omni Sync Server, I didn’t lose the ability to have the latest version of my OmniFocus database mirrored to a calendar: OmniFocus does, in fact, come with some great debug commands to change its default sync times.

As an aside, while looking forward to OmniFocus 2, The Omni Group has posted the first batch of videos from The Setup event in San Francisco a few weeks ago. You can watch them here.


Integrating OmniFocus and Reminders On OS X

Integrating OmniFocus and Reminders On OS X

Daniel Jalkut and Sean Korzdorfer have been working on two aspects of the same problem: bridging the gap between OmniFocus and Reminders on OS X.

Sean put together a series of AppleScripts to send tasks from OmniFocus to Apple’s Reminders app for Mac. Daniel created (and open-sourced) an app to check Reminders for newly added items, transfer them to OmniFocus while keeping due dates, and deleting them from their original location in Reminders.

I love OmniFocus for both Mac and iOS, but it turns out that because I lean so heavily on using Siri to add items, I tend not to open OmniFocus while I’m on the go. When I come home and get to work on my Mac, I notice that OmniFocus doesn’t contain any of my recently added items, so I have to go through the cumbersome steps of opening my iPhone and launching OmniFocus just to get this theoretically time-saving trick to work right.

I have tried to get into using OmniFocus’ iCloud capture feature on iOS, but because I don’t use Siri on a daily basis, that didn’t turn into a habit. I know many rely on OmniFocus-Reminders integration, and I think these are nice solutions for the desktop.

I, however, have become a big fan of The Omni Group’s Mail Drop service. Using Drafts, I can write down a task, send it to Mail Drop, and have it in my OmniFocus inbox after a few minutes; if I want to save a link to a webpage, I can use a bookmarklet that sends a website to Drafts and then to Mail Drop. Rather than further integrating OmniFocus and Reminders, I’d like to open OmniFocus on iOS and find it already synced with all other copies of the app and Mail Drop. Right now developers have to resort to location-tricks to update information in the background, and I wish Apple will allow more background options in the future.


OmniFocus Mail Drop Beta

OmniFocus Mail Drop Beta

As noted by Sven Fechner, a post by The Omni Group on the company’s forums publicly describes a new feature of Omni Sync Server: Mail Drop. An enhancement to OmniFocus’ existing support for, Mail Drop is a proper way to email tasks directly to your OmniFocus inbox.

We call this new feature the “OmniFocus Mail Drop”. Unlike previous mail-processing features, we wanted a method that wouldn’t require any of your devices to be present in order to add items to OmniFocus, we wanted to add the much-requested better attachment support, and we wanted to reduce the amount of extra work you had to do in order to get your items into OmniFocus as much as possible.

To this end, we implemented the feature as part of the Omni Sync Server. Accounts on the server can now have a special email address generated. Any message forwarded or sent to that address will be processed (including attachments) and added to your OmniFocus database right there on the server. (If a spammer gets ahold of your Mail Drop address, we give you a way to generate a new one.)

I have been testing Mail Drop for the past few days, and, indeed, it works as advertised. Once generated in your Omni Sync Server’s account page, you’ll get a unique email address you can send tasks to. Unlike previous solutions, this is a real “cloud capture” tool: you don’t need a Mac to be always running to turn emails into tasks, as everything will be processed server-side by Omni Sync Server.

Right now, Mail Drop doesn’t seem to support OmniFocus’ email syntax for adding tasks, but it’s really fast. In my tests, tasks sent via email using Mail Drop were added in seconds to my Omni Sync Server account.

Personally, I think this is the right path to follow. As our devices become increasingly interconnected and “always-on”, it doesn’t make sense anymore to make task management – arguably a fundamental part of many’s workflows – simply “local”. People have been asking for a real web-based OmniFocus for years, and Mail Drop is a good start. I have been running my own OmniFocus server using Drafts’ email actions to quickly add tasks, but I welcome the user-friendliness of Mail Drop as a promising indication of OmniFocus’ cloud future.


Automatically Save An OmniFocus Project As iThoughts Mind Map

Automatically Save An OmniFocus Project As iThoughts Mind Map

After I posted about my OmniFocus > iThoughts mind-mapping workflow, several readers asked whether it’d be possible to only convert a specific section of OmniFocus to iThoughts format (as well as plain text and OPML). As Robin Trew, creator of the script, explains in the Help section:

Specify a sub-tree by the OmniFocus id of its root node. Defaults to None.

You can, in fact, slightly modify the script  by adding an -a switch and the ID of a particular project to restrict the query to that project and its subtree. This will work if you only want to export a specific Project to mind-map; Contexts have a different subtree structure in OmniFocus’ database.

For instance, I only wanted to create a mind map for my MacStories project. To do so, I control-clicked on the project in the app’s sidebar, and selected “Copy As Link”; this will give you an OmniFocus URL like omnifocus:///task/oREye1BBxdg. The ID is the alphanumeric string after /task/.

Follow my tutorial, and add the -a switch as an additional filter:

python $HOME/ --output=$HOME/Dropbox/Maps/MacStories -m map.itm -c '0' --format=itmz -a oREye1BBxdg

Make sure to check out Robin’s script, as it’s much improved since the original release. You can also visit Robin’s website (and follow him on Twitter) for several AppleScript-related custom scripts and resources.


Send Selected OmniFocus Task to Plain Text File

I save a lot of stuff into OmniFocus: bits of text, URLs, emails. I used to save favorite tweets into it, too. The app’s Quick Entry panel is so easy to invoke and so well-integrated with core parts of OS X  that, most of the time, I find myself clipping information that shouldn’t be into OmniFocus at all. However, I also find the process of manually going through that information beneficial to my workflow: it allows me to mentally and practically separate actionable items (tasks) from things to read and things to write (Instapaper material and my future articles, essentially).

I have created a simple AppleScript to send the selected OmniFocus task to a text file. The script is meant for how I use OmniFocus; hopefully you’ll find it useful as well. Feel free to modify it.

Typically, when I decide to go through my OmniFocus inbox, I find a lot of tasks that are actually ideas of things I want to do or write. Ideas don’t go into OmniFocus. Until those ideas become actionable items, I send them to a text file so I can elaborate on them and see if they can evolve. Like I said, most of the time those ideas are for new articles.

I store all my notes in a single Apps/ directory on my Dropbox. Based off the same AppleScript, I have created a Keyboard Maestro macro to create a new text file for each processed task; this is for ideas I know will turn out to be single, standalone articles. For ideas I’m not so sure about, I prefer to append them as text to an Ideas.txt file I keep in Dropbox as an “everything bucket” for inspiration. Read more

Change Default Sync Times of OmniFocus For Mac and iOS

Change Default Sync Times of OmniFocus For Mac and iOS

In my post about OmniFocus and flagged messages, I wrote that there’s no way to tell the app to sync every few minutes. I was wrong. As reader Bill Pallmer told me, there are two settings to change the default sync behavior of OmniFocus for Mac. In Terminal, you can use these commands to change how often OmniFocus will start a new sync and sync after an edit, respectively:

defaults write com.omnigroup.OmniFocus MaximumTimeBetweenSync -float 30
defaults write com.omnigroup.OmniFocus TimeFromFirstEditToSync -float 2

The numeric value after the -float flag indicates time in seconds. As explained by Ken Case on The Omni Group forums, you’ll have to quit and restart the app after using these in Terminal; you also can’t go lower than 2 seconds for TimeFromFirstEditToSync and 15 seconds for MaximumTimeBetweenSync.

There are two hidden preferences which control the timing of automatic synchronization, MaximumTimeBetweenSync and TimeFromFirstEditToSync. Both are specified in seconds. MaximumTimeBetweenSync is how often OmniFocus looks for changes on the server when no changes have been made locally; it defaults to 3600 seconds (one hour). TimeFromFirstEditToSync is how soon OmniFocus will sync after you’ve made an edit, and it defaults to 60 seconds (one minute).

If you have the Mac App Store version of OmniFocus, change the first part of the command to com.omnigroup.OmniFocus.MacAppStore.

The great thing about these commands is that they also work on iOS in debug mode. They share the same name and settings, but a different URL:



To activate the iOS settings, choose the value you want, and paste the URL into Safari: OmniFocus will open and tell you that you’re enabling a debug option, as pictured above. The app will quit; restart, and it’ll now sync more often according to how you changed the default setting. Obviously, remember that you’ll be consuming 3G data for sync, so don’t set it to refresh too often, unless you don’t have a problem with that.

To revert to factory settings on iOS, use:


This is a great tweak, because I run my own OmniFocus sync server for a variety of reasons, and I always want to make sure I have the latest version of my database. Thanks Bill.


Send Flagged Mail Messages To OmniFocus Automatically

Send Flagged Mail Messages To OmniFocus Automatically

Sven Fechner pointed today to an AppleScript published in late 2011 by Hunter Hillegas to send flagged messages to OmniFocus’ inbox on the Mac.

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, just like the Services action does. It then also unflags the message, resetting the state back to normal. This script runs every five minutes.

In iOS 6’s, it’s now even easier to mark a message as flagged. I have tried the script, and it works as advertised. I would modify it to include only the latest message of a thread in the task note, but I see the appeal of having an entire conversation saved in OmniFocus for reference.

Obviously, the script is best enjoyed if executed on a Mac that’s running all the time. In this way, you can set a message as flagged on iOS, wait a few seconds, and find it in OmniFocus right away.

Personally, I run my own OmniFocus sync (every minute) so that I always have up-to-date sync that I can control. To implement this script in my workflow, I just had to create a new Keyboard Maestro macro (pictured above) that runs the AppleScript every minute if I’m logged in. In the way the script is designed, flagged messages are processed, then set back to “unflagged” so they won’t be added again in the future (unless you flag them manually).

You can find the AppleScript here.


Visualize OmniFocus As iThoughts Map, OPML, Or Plain Text

iThoughts for OmniFocus

iThoughts for OmniFocus

A few weeks ago, Michael Schechter found a way to export an OmniFocus for Mac database to OPML to visualize it in mind-mapping apps like iThoughts and MindNode. In the post, he wrote that, however, he was reaching to the Mac community to see if anyone would be able to build a more powerful and reliable solution with filters, color options, and more control on the exported data. RobTrew picked up the task and, on the OmniGroup Forums, released an initial script to export from OmniFocus to OPML.

Then, yesterday, Rob released a new version of the script which adds native iThoughts support and plain text exporting options, as well as settings for colors, templates, and filters.

I tested Rob’s script with my OmniFocus database, and after several improvements he made to the script, I feel comfortable enough with linking to it here. Unlike other solutions, Rob’s script looks directly into the SQL OmniFocus database cache to get its data – quite a feat on its own. But there’s so much more the script can do if you start customizing it. Read more