Skip to main content

TreeTime is a to-do list manager, test report tool, project manager, family ancestry editor,mind-mapping tool, etc. Using TreeTime you can categorise and organise any data in tree structures.You can define several trees, each with a different structure, on the same data. You can use functions(sums, ratios and means) recursively up the branches of a tree.

Project description

logo       TreeTime

Note: If your looking for the phylogenetics software of the same name, you can find it here:

TreeTime is a general data organisation, management and analysis tool using linked trees instead of flat lists of tables. A tree is a hierarchical structure that arranges your data into units and sub-units. Mathematical functions (sum, difference, mean, ratio) can be calculated recursively. Linked trees are distinct trees that share data between them. In TreeTime, a data object is part of several trees at the same time. TreeTime is a time planner, a to-do list manager, a test report tool, a project planner, a family ancestry editor, a mind-mapping tool, and similar.

Table of Contents


Table of Contents

What is a Tree?

A "tree" is a data structure, much like a table or a list. Using a tree you can naturally package your information into boxes and sub-boxes and sub-sub-boxes. Some examples:

If you want to organise your work tasks you could sort them into work packages, that are part of projects, that are part of products. Alternatively, if you plan a larger project, you can sort all tasks by responsible persons, who are part of teams, that are part of departments, that are part of branches. You can also make a time plan, where a year consists of quarters, that consist of weeks, that contain a number of tasks. You can have an address book where you have a hierarchy of friends / colleagues / aquaintances, or you can sort knowledge about animals into kingdom / class / family / species.

The nice thing about trees is that you can define mathematical functions on them. Planned hours can be summed up per work package and project, or per person and team, or per week and month. A mean priority can be shown per work package and project.

The concept of hierarchical categorisation can be applied to all sorts of data and will feel a lot more natural and easier to use than organising the same data in spread sheets.

What are linked Trees?

The core concept of TreeTime are linked trees. Linked trees are separate trees that share the same data. One piece of data (a node) can be in several trees at the same time, but in different place of the tree. A tree is much like a way of sorting, and linked trees sort the same data in different ways. Screenshot 1 Node E is right at the bottom of Tree 1, as a child of A and B, and in Tree 2 it is a child of C. Node D is a child of A and B in Tree 1, and a child of C and B in Tree 2.

If you, for instance, organise information about animals, you might want to see the animal's taxonomy (kingdom/class/family/species), but also their habitat (continent/country/area), and switch between both views. If you organise tasks, you could switch between a year/quarter/week/day breakdown, a company/department/team/person tree, and a product/project/package/task overview.

In TreeTime, the structure of your data (whether you store priority, hours, and a description for a task, or expected life span, habitat and number of legs for an animal), the trees themselves, and the calculated values within the trees are completely user defined. Data is stored in text files, changes are saved on the fly, and when opening TreeTime, the software is automatically connected to the last used file.

Basic Use

Table of Contents

Start the software (see 'Execute' from the section Installation). In the main dialog, go to "File" / "New from Template", select "Simple-Task-List.trt" and in the next dialog give a file name for the new file. An example file with a simple project task list structure will open. The GUI consists of three parts:

  • A button box on the left. Execute tree structure operations from here.
  • An editing grid in the middle, showing the contents of the selected data item. Edit single data items here.
  • A tab view with tress spanning the center-right. View and analyse your data here.

Screenshot 1 Access each single tree by clicking a tab on the main tree-view widget (the picture above shows the tree Time Plan, the picture below the tree Projects). Screenshot 2 Branches and children can be sorted, branches can be folded and unfolded. Data content is shown via analytic fields that are defined per tree. In the example project you will see a sum, a percentage, and text display.

Add, move and remove single nodes and complete branches by using the buttons on the left. Change the name of a node by selecting the node and editing the name in the top of the edit grid in the middle. Change all other values (numbers or text) by clicking into the field and start typing.

The parents of an item are listed underneath the item name. Each tree has a separate line. Change the position of a node within a tree by clicking on any of the parent buttons. Screenshot 2 In this example a new node in the tree Time Plan has just been created, and is now added to the tree Projects.

TreeTime lets you select different themes and will try to use the default colours that are defined with your operating system.

Screenshot 2

<dif id='id-file-syntax'/>

Data Files

TreeTime's data is stored in .trt files. These are plain editable text files. Please have a look at the file Simple-Task-List.trt to understand the syntax. A detailed description will follow later. (Sorry...)


Table of Contents

Using pre-compiled Binaries

  • Windows, Linux: Go to and download a zipped package for Windows 10, 64 bit, or for Linux 64 bit from there. Unzip it into your program directory and run TreeTime or TreeTime.exe from the new folder. Unzip the data package too. Add the program folder to your path.

    Executable bundles have been created with pyinstaller (

  • Mac: Mac users please use the Python code (see below). There is no executable for Mac. (If anybody can help building an executable for other platforms I'd be delighted.)

Using a PyPi package in Python

  1. If you don't have it yet, install python3
  2. Install PyQt5 -- on an elevated command prompt (Windows), or on the standard command line (Mac, Linux), type:
    pip install pyqt5
  3. Install TreeTime -- on an elevated command prompt (Windows), or on the standard command line (Mac, Linux), type: pip install treetime

Using script code with Python

  1. If you don't have it yet, install python3
  2. Install PyQt5 -- on an elevated command prompt (Windows), or on the standard command line (Mac, Linux), type: pip install pyqt5
  3. Download this project from GitHub as a zip file ( and unzip
  4. Install TreeTime: in the command line, cd into the main directory, then type:
    • Linux:
      python3 build
      sudo python3 install
    • Windows:
      py build
      py install


  • Windows: Hit the Windows key and type "TreeTime", then click the "run command treetime" that comes up.
  • Linux, Mac: On the command line, type "TreeTime". You can also start this any other way your operating system supports. Plus, there's a .desktop file (for KDE and Gnome) in the data directory to create desktop or menu link.


Table of Contents

I deliberately didn't give any time estimates for this. I'm using the software myself to organise my own data, so I'm interested in keeping this going. Nevertheless I cannot promise any specific release dates. If you have any suggestions or would like me to implement some feature sooner than I suggested here, please just drop me an email.


  • Done February 2016: Implement selection (the same item gets selected in all trees, changing a tab shows the same item)
  • Done March 2016: Implement remaining local functionality (Copy Branch as Sibling, Copy Children to Siblings, Remove from this Tree, Delete Item)
  • Done August 2016: Created installable python package
  • Done May 2017: Implemented new field type text
  • Done June 2017: Create deployable packages for Linux and Windows
  • Done June 2017: Made pre-release v0.0 available
  • Done October 2017: Implemented new field type node-path, re-wrote the way nodes move to new parents
  • Done November 2017: Uploaded package to, TreeTime can now be installed using pip
  • Done October 2018: Re-implemented the parent selection mechanism. The old cascaded menus have been replaced with single drop down lists.
  • Done October 2018: Re-furbished the GUI and removed a couple of bugs. Slighty changed the data file format. Implemented theme selection. Tested pyqtdeploy for deployment instead of pyinstaller. Updated the description.
  • Done November 2018: Released version 2018-10


  • Running: Bugfixing
  • Running: Write documentation on and create example more example and template data files


  • Near Future: Implement search function
  • Near Future: Implement more data item field types (URLs, timers, date/time/time-span)
  • Near Future: Release next version
  • Mid Future: Implement global functions (Linearise Tree, Level-Swap, Merge identical Siblings, Merge Identical Parents/Children, Remove all Orphans, Insert all Orphans as Children)
  • Mid Future: Bugfixing
  • Mid Future: Release next version
  • Mid Future: Implement more tree field types (standard deviation, min, max, string concatenation,
  • Mid Future: Bugfixing
  • Mid Future: Release next version
  • Far Future: Implement tree field editing with graphical dialog (add, remove, change tree fields)
  • Far Future: Implement data item field editing with graphical dialog (add, remove, change data item fields)
  • Far Future: Bugfixing
  • Far Future: Release next version
  • Far Future: Implement tree export to PDF, txt, and/or CSV
  • Far Future: Implement safe usage by multiple simultaneous users
  • Far Future: Implement a database backend instead of text file storage
  • Far Future: Implement a web server
  • Far Future: A whole lot of other fancy things that will probably never get done


Table of Contents

TreeTime depends on Python 3, Qt5, and PyQt5.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for TreeTime, version 2018.10
Filename, size File type Python version Upload date Hashes
Filename, size TreeTime-2018.10.tar.gz (23.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page