My GTD Journey

I have been using Things for Mac and IOS for the past couple of years, and have on the whole really enjoyed it. It’s interface is really smooth and easy to understand and use, it integrates really nicely with all services on MacOS and IOS, and feels like a quality-built piece of software.

Prior to using Things, I’ve worked my way through a stack of task management tools, including Remember the Milk, Todoist, Doit, AnyDo and a bunch more I can’t even remember. It’s been an interesting ride, but I feel like I’ve finally found the right tool for me – OmniFocus.

I first stumbled across OmniFocus when I read David Allen’s “How to Get Things Done”, which formed my introduction to the GTD methodology of task management way back in around 2005. Omni had just built this tool based on GTD, and it was probably the best tool for the job back then. My problem, however, was that I was working on Windows and used Mac only for personal use, so it wasn’t possible or logical to use OmniFocus back then.

Anyway, since finally finding my way back to OmniFocus, I was faced with the daunting task of migrating hundreds of tasks from Things to OmniFocus. I looked at it as an opportunity to clean up house a little, while at the same time familiarising myself with this new tool by doing it all manually. I’m glad I did – it wasn’t nearly as painful as I thought it might be, and it gave me the chance to consider my workflow in more detail and implement some improvements which have proved really useful. I also cleaned out a bunch of stale old tasks, and felt like I’d really made a fresh new start when the migration was complete.

I won’t go into how I manage my tasks here (I can do this in a separate post if you’re interested – please say so in the comments and I’ll happily write a post if it’ll be useful to anyone). I will, however, outline exactly how I did the migration from Things to OmniFocus:

Why use Drag & Drop

  • Works really well to migrate tasks quickly and easily
  • Use this as an opportunity to clean up your tasks list, be innovative with your contexts, and do a full audit of the state of your task load at this moment
  • Provides time to get used to OmniFocus – keyboard shortcuts, differences to Things, quirks, etc
  • You have full control of what gets migrated and how – no relying on an automated tool, and having to go back and retroactively tidy things up afterwards

Checklists/ Sub-Tasks vs Sub-Actions

The way that sub-tasks are handled in OmniFocus is very different to Things.

  • In Things, sub-tasks are simple checklist items stored within a task. They are basic text only, and have only 2 options: their title, and whether they are complete or not.
  • In OmniFocus, sub-tasks are much more powerful. They are basically action items in their own right, and as such can be assigned any attribute an action item can be assigned (due date, context, notes, etc). To make an action item into a sub-task, simply embed it under an action item – this will make the sub-items collapsible via the little triangle to the left of the action item name, and keep them together. Keep in mind that this makes working with sub-tasks in OmniFocus much more complex than in Things, and has been one of the most difficult changes for me to get a handle on.

Tips for Drag & Drop Migration Process

  • When dragging tasks, you must drag to a project – OmniFocus won’t accept tasks dropped in a context
  • Contexts are not populated when dragging tasks to a project
  • Ctrl-Z is your friend – when things don’t work as expected, undo and try again slightly differently
  • Use a temporary project to copy tasks across, then move them to a more relevant project, then in the project move individual actions to their correct contexts
  • Temporary project must have at least 1 action in it before OmniFocus will accept the drag and drop actions. I recommend creating a temp action and just leave it there. I found that sometimes OmniFocus will accept dragged tasks without a task in the target project, but it will create projects for each task dragged, instead of actions under the project
  • Sub-tasks will copy over automatically with their parent task from Things to OmniFocus, only if the parent task from Things is dragged over to OmniFocus on its own. If it’s dragged over along with other tasks, the sub-tasks will not come across. See below for steps on how to copy sub-tasks over manually in this case.
  • Also be aware that any sub-tasks marked as complete in Things will not be copied across to OmniFocus at all. If you would like all your sub-tasks to be moved over, uncheck them before moving the task, then check them again (in OmniFocus, and Things if you care about it there) once migrated.
  • Migrate one project at a time from Things, this way you don’t have to do everything in one go – do the important stuff first (or whatever you need in the short-term) and come back for the rest another day. This also makes it easier to move tasks to their correct projects in OmniFocus
  • I found that Things crashed A LOT while I was doing the migration – it doesn’t appear to like having its tasks dragged out. Perhaps it knows it’s being ditched for another product?
  • Migration of archived items is possible but a little tricky. I have not yet done this, so have not documented how to do it. Let me know in comments if you’d like me to include this and I’ll update the post.

Some considerations for migrating items with sub-tasks

  1. If no checklist items are marked as complete in Things, the task will come across perfectly (as an Action Group), and each checklist item will result in an Action Item underneath the Action Group in OmniFocus. This is the quickest and easiest way to migrate them across, but only works when a single task is dragged from Things to OmniFocus – dragging multiple tasks across will not include checklist items.
  2. If the first checklist item in Things is marked complete, it will become an action, and all the next checklist items copied over will be nested underneath that one. It may be best to uncheck items before migrating, then checking again as required.
  3. If some checklist items in Things are marked complete and others not, the complete ones will not copy over – only the incomplete ones will.
  4. If you create the parent action in OmniFocus first, and add a temporary child action underneath it, you can drag tasks and put them directly under the parent. This can be useful to create groups of tasks that you don’t wish to be full projects.

Drag & Drop Migration Process

  • Create your temporary project in OmniFocus, and a temporary action within that project

Tip: You can mark your temporary item as completed, that way it’ll be easy to see which task not to move in future steps

  • Highlight a bunch of tasks in Things (all for a specific project for example), then drag them to your temporary project in OmniFocus and drop them on the project name. You will see the project name highlighted and a caret appear showing you where the tasks will get added.
Drag tasks from Things to OmniFocus

Result after dragging and dropping tasks:

Result after dragging and dropping tasks

Note: Sometimes this will only work if OmniFocus is the currently active application in MacOS. If it’s not, you won’t see the project name become highlighted, or the green plus icon appear.
The solution is to first highlight the tasks you’d like to migrate in Things, then click on the OmniFocus window somewhere to make it active, then drag the tasks from Things to OmniFocus.

  • Tidy up contents of each task:
    • Copy and paste the contents of all notes from Things to OmniFocus – unfortunately this is a manual process
    • Set due dates correctly (remove from task name, and assign as a deferred date or due date in OmniFocus)
  • For tasks that had sub-tasks in Things that did not come across (this will happen when multiple tasks are dragged across in a group, or if there were sub-tasks that were marked as complete in Things), you’ll need to manually copy sub-tasks from Things over to actions in OmniFocus. To do this:
    1. Open the task in Things, and highlight all its sub-tasks by clicking at the start of the first sub-task’s text, then holding down shift and clicking on the last sub-task in the list
    2. Copy (Cmd-C) the sub-tasks from Things and paste (Cmd-V) them onto an action in OmniFocus (click on the action in OmniFocus, and paste).
    3. The sub-tasks from Things will appear as actions under the selected action in OmniFocus, and should be selected.
    4. To embed the sub-tasks under the selected action, with the tasks still selected (select them if they’re not already), press Cmd-]. 
    5. You should now have sub-actions appearing under the parent action item.
  • Once dragged over and actions are created, assign a temporary context (I used “MIGRATING”) and assign that context to every task to be sorted by highlighting, opening the inspector (“I” icon in top right) and selecting the temporary context in the dropdown in the “Action” area
Set temporary context for all newly migrated tasks
  • Navigate to the Contexts section in OmniFocus, and assign correct contexts to tasks via Drag & Drop:
Assign correct contexts to tasks via Drag & Drop
  • You’re now ready to move the next batch of tasks from Things to OmniFocus. Repeat this process as many times as you need to, to move everything over.


I hope this post has been helpful to you. The process of migrating over is not that hard really, and is actually kind of fun and presents a great opportunity to review your tasks, your contexts, and how you work with them all.

Post any questions you have in the comments and I’ll try my best to answer them. Also if there’s anything you feel is missing from this post, let me know and I’ll try to update the post.

Thanks for reading, and have a happy and productive day (with the help of your new GTD tool – OmniFocus).

Disclaimer: I was provided with a coupon for the iOS app by Omni, however I paid full price for the desktop app. This did not affect any opinions expressed in this post.


I’m Greg. I like to write about stuff, and I’m a web developer – seems logical that I should have a blog.

This is it. I hope you like it. Say hi in the comments, I’d love to hear from you.

View all posts by Greg

Leave a Reply

Your email address will not be published. Required fields are marked *