I’m a big fan of Omnifocus. It takes a mostly GTD (Getting Things Done) approach to managing my task list. It syncs to my mac, iPhone and iPad. But it doesn’t give me all the dashboard views that I want. For example, I want to see all my overdue and current tasks based on both start dates and due dates. The Omnifocus app doesn’t offer this. And its task list sorting is limited.
I discovered that Omnifocus keeps a SQLite database that stores a cache of the actual data. Using this database, I was able to build a local website to gives me the views I want.
I’ve shared the code on Github here:
(My first GitHub project.)
Here’s more details from the the GitHub read me page.Requirements
- Local web server that support php and SQLite. I use MAMP but you could use the Apple’s pre-installed web server.
- Omnifocus I’m using Version 1, but it should work with Version 2.
- Home page view with due, starting and no date actions
- On home page, actions in on hold contexts are listed under orange heading and in italics in the Context list.
- View lists by open actions, start dates, due dates, and actions with no dates.
- Click on a table column name to sort by that field
- Click on an action to open it in Omnifocus
- Counts task in In Box, Open, By Start Dates, By Due Dates and Completed Task
- View Folders, Contexts, Projects
Omnifocus stores your data in multiple zipped XML files for quick synchronization at:
But it also stores a cache on your data in a SQLite database at:
This script reads the SQLite database and displays it on a local web browser.
If Omnifocus changes its sqlite database structure, it could break this script.Code Libraries Used
- Bootstrap CSS
- Tablesorter JS
- This version doesn’t fully support project and context hierarchy. So viewing the top level project doesn’t include sub-projects. Top level contexts show 1 level deep contexts on the context list pages.
- Download the repository
- Place the folder in your web server htdocs directory
- Configure the settings in /config.php to set the correct SQLite database path and site name