Migrate database from Things to OmniFocus

[UPDATE. Spoiler alert: a script that works quite well is on GitHub.]

Hey everybody. Newbie here. Sorry if this is a frequent question: I’ve poked around on the web and here and I cannot find anything up to date (ie for OmniFocus 2).

I am fairly convinced I want to make the move from Cultured Code’s Things to OmniFocus Pro.

But I have hundreds of projects and tasks in Things. Is there any way to convert everything to OmniFocus? (Even if it’s not “simple,” as long as it’s accurate and comprehensive.)

(In this thread, for instance, the suggestions are “copy and paste,” and a script that looks like it’s written for OmniFocus 1.)

If Things can export to OPML, you can import it into OmniOutliner, save as OO, and then use

File>Import OmniOutliner document

to import all your data into OmniFocus.

If you don’t own OmniOutliner, you can download OPML2OF, an AppleScript droplet that will convert OPML into an OmniFocus document that you can then drag/drop or cut/paste into your main database.

Hope that helps!

Thanks for the quick reply! I’m bouncing back and forth between googling and staring at the SQLite structure of ThingsLibrary.db. Hmph. Thanks, though.

Looking around, I found an AppleScript that may work (I haven’t tried it), taken from the old Omni Forums. It was written for OmniFocus 1, but I don’t think much has changed in OmniFocus 2 with regard to AppleScript. If it doesn’t work, you might also try running the script first with OmniFocus 1 and importing that database into OmniFocus 2.

Good luck!

If you’re willing to go into applescript territory, it’s actually quite simple. Getting tasks out of Things is a lot easier than getting them out of Omnifocus due to the low hiearachy on Things side. Here’s a screenshot of the script editor reference for Things:

You can go over the application to lists / areas / projects which then contain a list of to-dos that you can read and stuff into OmniFocus.

What I found better though is to start from scratch. OmniFocus and Things have a different approach on managing tasks and it’s good to embrace either system with a fresh mindset. Think how you want to represent your projects / areas / etc in OmniFocus and start from there. Also a good practice to throw out all the things that are not up to date anymore.

(Also a big fan of the application but got frustrated with the slow updates and close to no communication on their side)

Thanks so much, @nostodnayr! I’ll look at it more closely!

Thanks for the detailed reply, @dvcrn!

Yes, I’m thinking one silver lining of the huge friction of converting is just to do a big push (and a big purge!) out of Things.

But I will look more closely at the script you reference.

Outside AppleScript comfort zone, outside GTD comfort zone. We’ll see which path I take. :-)

Turns out somebody wrote that script—actually, took an old script and modified it a bit. (Thanks to Aaron, Omni Support Human!)

I am happy to say that it works quite well going between Things 2.8.7 and OmniFocus 2.6.2.

I can tell you from experience, though, that it’s best to do a conversion from one platform to another AFTER a merciless purge of the lists on the old platform. Like a big healthy dose of bran.

Thanks again, everybody!

1 Like

Hi James,

Can you share your modified script, i tried the basic script but not all projects and area’s exported well to Omnifocus

Kind Regards,

Sorry, Dimitry. That link I shared above worked for me, I didn’t modify it.

I should say the import was not perfect, but it was good enough for my needs.

Sooo, here I am, eager to switch back to OmniFocus from Things. I tried to run the modified script but its not working for me. Sadly, I have no idea how to interpret the error. Running the script causes an immediate failure sheet which states “Script Error: Things3 got an error: Cannot get list “Next”.”

So. is it possible that my version of things was changed in such a way which would make it incompatible with the script?

Things: 3.4
OmniFocus: 2.11.2
macOS 10.13.3

Thank you for sharing the script and I hope I am a small modification away from it working. When I first ran the script, Things crashed before it seemed to start working.

1 Like

Hey all,

I just made the switch from Things 3 to Omnifocus 2. It was pretty easy, using Drag & Drop, and a bit of copying and pasting. I actually enjoyed taking the opportunity to review my tasks, improve my contexts a bit, and start afresh.

I documented my experience, and included step-by-step instructions on how to do it on my blog here:

Hope it helps :)