It’s all but impossible to find the perfect to-do list app for your own needs. You might need something simple just to keep track of the stuff that needs fixed in your house, or you might want a full-featured project manager that can keep track of your projects, tasks, due dates, and how much each task will cost. Simple to-do list apps tend to be too simple, and advanced ones are so complex they’ll take you forever to learn how to use.
So build your own to-do list app instead. No, really. In this tutorial, I’ll show you how to build your own personalized to-do list app with just the features you need, using OmniOutliner. You’ll never need a new to-do list app again.
Short of actually coding your own to-do list app—which is far too much work just to simplify your own tasks—the next best option is to use an app that’s customizable enough to let you turn it into a productivity system. That’s exactly what OmniOutliner is. It’s an outlining app with multiple columns that is so customizable, it was the basis for the original version of OmniFocus, the popular GTD to-do list app.
OmniOutliner is only available on Mac and iPad, but if you’re using a PC you can use UV Outliner which is similar enough that it’ll work almost the same as the steps in this tutorial. Alternately, you could get something similar to work in any spreadsheet app, albeit without all of OmniOutliner’s nice features, and Org mode in Emacs offers yet another more geeky option for making your own to-do list.
You can follow along with this tutorial by creating a new OmniOutliner document—I used the built-in Classic with Level Styles template as the basis for this tutorial. Or, you can download the attached Todo outline that includes all the features we’ll add in this tutorial, and then just customize it on your own. Also, I'm using OmniOutliner 4 Standard for Mac in this tutorial, but you can get the exact same results using any recent version of OmniOutliner for Mac or iPad.
Superpower an Outline
When you start a new document from a template in OmniOutliner, it'll include a few headings, sub-headings, and points as an example outline. Let's replace those with some projects, sub-projects, and tasks you need to do as the first steps towards making your own productivity system.
But first, you need to think through how detailed you'd like your to-do list. You might just want to keep track of tasks and nothing else. In that case, you'll only need one level and no project hierarchy. Or, you might want to group everything into detailed projects, sub-projects, tasks, sub-tasks, and more. For that, you could make as many levels as you want—that's the nice thing of an outline tool.
In this tutorial, I'm going to add projects (Work and Personal), sub-projects (House and Car under Personal), and then tasks under each sub-project To do that, enter your projects as the top level of the outline, then indent once and enter your sub-projects, and finally indent once under the sub-projects and enter your tasks.
Now, let's make everything look nicer. We'll give the projects and sub-projects their own unique style, leaving tasks to stand out on their own. To do that, click the i button in the top right corner of the OmniOutliner toolbar to open the inspector, and then click the blue square beside Whole Document in the styles sidebar on the left. Pick the typeface and background color, along with any other design elements you'd like for the entire document, to keep everything consistent. I kept the default Marble background color, and used the Open Sans typeface in 14 point.
We'll repeat those steps to make the project headers stand out. With the inspector window still open, click one of your projects and then click the Level 1 Rows button, and select the font size and background color you'd like. Repeat for the sub projects, by clicking in a sub-project and then selecting the Level 2 Rows button and styling it as you'd like. I used the Graphite background color and 28 point Open Sans for projects, and Orange with 20 point Open Sans for sub-projects.
Columns for Everything
Your to-do list looks nice enough to rival any project manager, but it still doesn't have enough features. That's where OmniOutliner's columns come in. You can add columns for your task due dates, completion status, tags, and more, so once again you'll need to think through what you'd like to track in your to-do list. For this tutorial, I'll add three columns to include a checkbox for task completion, a due date, and a tags drop-down list.
Let's start with the due date. Click the + icon that's second-to-right in the OmniOutliner toolbar to add a new column, and type in a title for that column in the first line. Now, open the inspector window again from the i button, select the second tab in the inspector, and pick the type of column you'd like. For the due date, we'll pick the Date column type, then choose the date format you'd like in the last option or click Custom Format... and drag-and-drop elements to make the due date look the way you'd like. Finally, there's a summary option—choose Minimum or Maximum to show the nearest or furthest away due date at the top of your projects, or choose None to only have due dates on your tasks themselves.
You can now add due dates to your tasks to make sure everything looks the way you'd like. OmniOutliner lets you type in dates in almost any format; you could type today, +2w, or December 31, 2015 for due dates of today, 2 weeks from today, or December 31, 2015, respectively. The date recognition engine is quite good, so you can easily schedule your tasks for the date you need without having to reach for a calendar. Or, you can get a calendar inside OmniOutliner by hovering over the right corner of your date box, and pick the date you want there.
Now, let's move on to tags (or categories, as they'd be called in OmniFocus). This gives you a way to list similar tasks together—say, to list all of your purchasing tasks from work and home with a shopping tag to easily find them together. To do this, add one more column, and in the inspector, this time pick Pop-up List as the type, and choose None for the summary. You can then replace the default list options with the tags you want to use; I added shopping, writing, and travel.
Adding tags to your tasks later is easy. Just start typing, and OmniOutliner will auto-suggest the correct tag. Or, you can just type a new tag in your tasks' tag box, and it'll be added to your Pop-up list for use next time.
The last column we'll add is a check box to mark our tasks as complete when they're done—and this is a great place to put the Summary to use. Just add one more column, drag it to the far left of your outline so the checkbox will appear before your tasks, and select the Checkbox type in the inspector. This time, go ahead and click the Summary list and select State as well. That will show your full project as complete when you've completed all sub-tasks, or you can just click the checkmark on your project to automatically mark all of its sub-tasks as complete.
That finishes our to-do list, but you can add extra columns if you want to include more info. Say you want to keep track of how much each shopping task will cost. Just add another column for expenses, and set the column type to Number. Then, pick the currency number style for the format, and set the summary to Total. That'll show the total cost of all of your tasks under each project, which is a great way to automatically keep better track of your project cost.
You could use those same ideas to add many more features to your to-do list, so feel free to experiment. But now, let's see how to put your to-do list to work.
Putting Your Todo List to Work
Our to-do list now looks nice enough and has the features needed to take on any to-do list app out there. It's time to stop tweaking and start getting things done with it. If you haven't already, save your to-do list somewhere safe—if you're using OmniOutliner on your Mac and iPad, save it to your OmniPresence folder—the free sync service for Omni apps—so your tasks will stay synced automatically.
There’s one more thing you’ll want to customize before you start using OmniOutliner as your to-do list app. Open the app preferences by pressing press Command-, or from the File menu, the select the Keyboard tab. Now, to make it easier to enter tasks, change the Tab settings to Go to next cell, and the Return settings to Split the current row at the insertion point. That’ll let you press tab after entering a task to add due date and tag, and will let you quickly enter new tasks by just pressing enter after typing in a task.
Now, you're read to use OmniOutliner for real work. Add your tasks in new lines under your sub-projects, and use your keyboard arrows to quickly add due dates and tags. If you want sub-tasks, just press tab to indent a task—or turn a task into a sub-project by pressing Command-[. You can even add comments and attachments to your tasks. Press Command-' or click the note button on the far left to add a note, and drag-and-drop files or folders to attach them to your task. You can even record an audio note on your tasks by clicking the microphone button in the toolbar.
You'll also need a way to sort your tasks to see what needs done next, search through them, and focus on just the tasks that apply to your current work. Sorting is easy: right-click on your Due Date column, and sort by Earliest to Latest to see the tasks that need done first. You can then repeat that and select None when you want to view your tasks in the default order again. Search is similarly easy; just tap Command-Alt-F and type anything to search through your tasks with quick-results appearing in the left sidebar. You can type a task name, tag, or even due date (Friday, for example) to find the tasks with that.
There's also the Focus tool that lets you only display tasks in one project or sub-project. Just right-click on the left of the project you'd like to focus on, and select Focus. You'll now only see that project's contents, to keep you from worrying about what you need to do at home while you're at work. Then, when you want to see everything again, right-click on the left of the project again and select Unfocus. Alternately, you can just click the triangle on the left of a project to quickly hide sub-projects and tasks while still seeing all the projects.
You also might like to take your tasks with you. There's no OmniOutliner for iPhone or Windows PCs yet, so your best option is to export your task list. The nicest option is to export as HTML (Dynamic), which lets you browse through all of your projects and tasks in a web browser with almost the same features as OmniOutliner itself (albeit without the ability to add or complete tasks). Or, you can export as PDF for much of the same functionality, or as OPML so you can view your outline on other outline apps (do note that most outlining apps don't support multiple columns, though, so you'll lose most of your features by doing that).
You've now got the perfect to-do list for your tasks that has exactly the style and features you've always wanted. You can use these tips to tweak your to-do list as much as you want and get it as minimal or as feature-filled as you'd like, and still easily find the tasks you need to work on and keep up with when everything's due.
If you have any trouble tweaking your OmniOutliner to-do list, leave a comment below and we'd be glad to help you out so you can get the to-do list app you've always wanted!