Things to The Hit List converter
things2thl is a program for migrating data from Things to The Hit List. Both are awesome task management programs for the Mac. If you have been using Things and want to try THL, things2thl allows you to transfer all your areas, project, tasks and tags, so that you can use THL with real data.
Installation
You need Things 1.1.1 or later, since things2thl requires Applescript support. things2thl has been tested with Things 1.1.2 and The Hit List 0.9.3.13beta. Please note that some issues have been reported with later versions, and which will not be fixed for the moment. YMMV.
You can install things2thl as a gem package by running the following command in the terminal:
$ sudo gem install zzamboni-things2thl --source http://gems.github.com/
Note: things2thl needs the rb-appscript and hpricot libraries. If you don't have them already, they will be automatically installed by gem.
If you have a version of THL prior to 0.9.3.22beta, please use things2thl 0.8.4, since there were some changes in the names of the classes used internally by THL.
Usage
things2thl is a command-line program.
$ things2thl -h Usage: things2thl[options] Modes of operation (required): -L, --projects-as-lists Convert projects in Things to lists in THL -T, --projects-as-tasks Convert projects in Things to tasks in THL -B, --projects-areas-as-tasks Convert both projects and areas in Things to lists in THL. This implies that projects are not nested inside areas. -I, --inbox Transfer only Inbox tasks. Options: --[no-]areas Transfer areas from Things (default: yes) --areas-as-tags Transfer areas as tags in THL. --areas-as-contexts Transfer areas as contexts in THL. --[no-]time-tags Consider tags of the form Xmin/Xsec/Xhr as time estimates, set them in THL accordingly (default: no). --[no-]context-tags [REGEX] Regular expression to identify tags that should be interpreted as contexts. (default: ^@). Use with no- to disable this feature. --sync Only transfer new items (default: no) --top-level-folder FOLDER Do the import inside the named folders, instead of the top level (Inbox, etc. will also be created there instead of their corresponding places) --projects-top-level FOLDER The named folder will be created to contain all projects when --projects-as-lists is used (otherwise they will be in the top folders group). If --projects-as-tasks is used, a 'Projects' list is always created, but this option can be used to specify its name. --areas-top-level FOLDER The named folder will be created to contain all areas. -c, --completed Transfer also completed/canceled tasks and projects (default: no) --[no-]archive-completed If transferring completed/canceled tasks, also mark them as archived (default: yes) -q, --quiet Do not print items as they are processed. Twice: do not print stats at the end. -h, --help Shows this help message -v, --version Shows version Options you should seldom need: --things THINGSAPP Location of the Things application (default: /Applications/Things.app) --thl THLAPP Location of the The Hit List application (default: /Applications/The Hit List.app)
Missing functionality
- Handling delegation ("People" feature in Things)
Not sure how to transfer this to THL. Ideas are welcome.
Maybe create a graphical interface around it?
Improve performance
Known issues
- None of these issues will be addresses for the time being, since for the moment I do not have the ability to continue development on this tool.
- It has been reported that transferring notes fails on later versions of the applications, in particular Things 1.4.7 and THL 1.04.
- Cancellation/completion dates are not transferred, because THL handles those attributes as read-only. So if you choose to transfer completed/canceled tasks, they will all appear in your "completed today" view.
- One-time tasks in the Things "Scheduled" focus are transferred, but repeating tasks are not. The Things Applescript interface does not provide access to repeating tasks.
- The format of time estimate tags is fixed for the moment. May add customization if I get any requests for it.
Feedback
If you have any feedback, please open a new issue on GitHub
License
This code is made available under the BSD license.
Author
Diego Zamboni
(diego@zzamboni.org)
You should follow me on
Twitter (@zzamboni)
Download
You can download the source code for this project from the links at the top of the page.
You can also clone the project with Git by running:
$ git clone git://github.com/zzamboni/things2thl