An Air Traffic Control inspired task manager and time slot management tool.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nephros 9c485195e7 fix build on OBS 3 months ago
doc [doc] add links 3 months ago
icons add preliminary icon 4 months ago
qml [Export]: improvements: 3 months ago
rpm fix build on OBS 3 months ago
src prepare for coding 4 months ago
translations update translations 3 months ago
.gitignore prepare translations 4 months ago
LICENSE first commit 4 months ago README: update Licensing for no-code things 3 months ago fix build 4 months ago
harbour-flightstrip.desktop Expand permissions 3 months ago prepare translations 4 months ago

Flight Strip

An Air Traffic Control inspired task manager for Sailfish OS.


TL;DR We manage TODO lists and add entries on a calendar for them.

The Issue

Being a man of diverse and plentiful interests leads to several personal (and in theory also professional) projects, which lead to a collection of tasks that need doing.

Personal and professional life generates blocks of time which are allocated, and others which are yet free to be allocated.

But both task collections and time slots are bound to change at any moment, due to many reasons only some of which can be controlled.

TODO lists (such as todo.txt and others) help collecting, categorizing, and prioritizing such tasks. But they are not very good at actually scheduling them.

On the other hand calendars (such as iCalendar-driven applications) are good at scheduling one-time or repeating events. But they usually are not great when several things change schedule at the same time, and often fail at prioritizaton.

The Air Traffic Controller's Scheduling board

In good old analog times, Air Traffic Control used a simple physical object to manage dynamic changes in things to be scheduled, and ensuring proper and strict ordering, which being flexible about the managed information itself.

See: Flight Strip

(Preface: the author is in fact not in the least knowledgeable in this area, and uses the things described here purely as inspiration and illustration, with no pretense that they are accurate or even remotely true.)

Very simple: you have a slanted board, and a couple of metal or plastic slates, which are placed on this board forming a column or stack. The slates are free to slide vertically.


  • Information about the thing to be scheduled is printed on a paper strip which is attached to a slate
  • New things are added to a new slate which is placed at the top of the column
  • The "nextmost" or highest priority slate is at the bottom of the column (Programmers beware!)
  • Finished things are taken out of the stack by moving the slate sideways out of the column), causing the remaining slates to slide down
  • Gravity acts as the prioritizing agent


The application acts as "middleware" between:

  • a Todo list (tasks)
  • "free" time which is reserved to be allocated to tasks (time slots)
  • a calendar keeping the time slots

The basic workflow is:

  1. Time slots are identified and marked on the calendar (typically one or more recurring events are created).
  2. The list is placed on the board
  3. Items of the list are ordered using the Air Traffic Contoller's Scheduling board method
  4. Upon completion, the items on the list are allocated to the time slots

with the assumption that "time slots" are reserved and relatively static, and tasks are highly dynamic and may change order frequently and quickly.

The scheduling board method should help manage the sequence and content of tasks, ignoring when they are to be executed.

The time slots on the calendar ensure that there is time to do something, but do not know what the activity is going to be.

Notes on allocation

  1. Time slot marks
    • several "sets" of time slots may exist, (e.g. a single recurring calendar entry makes one set of slots).
    • slots may have a single "tag" associated
    • tasks may have one or more "tags" (e.g. the "project" and "context" entries of the todo.txt spec)
    • when allocating slots, task whose tags match the tag of the slot set are allocated to this slot set
  2. Already allocated time slots:
    • in simple implementations are overwritten with the new schedule
    • advanced implementations may do conflict resolution:
      • either by loading slots and mixing them in the list before it is placed on the board
      • or by mixing them according to priorities when saving, grouping tasks by priority
      • other, secondary factors (such as due dates or implementation-specific heuristics)


The PoC for the above ideas is implemented as an application for Sailfish OS in QML, and strives to use as many native interfaces from the OS as is feasible.



The source code and implementation of the Flight Strip application is released under the Mozilla Public License v2.0, except for the items noted below. See the file LICENSE.

Specification and Documentation

This README document, and other documents contributing to the specification of Flight Strip, as well as any Documentation are released under the CC-BY-SA license.

Other Content

The above does not include fonts included in packages of the application, which have their own licensing terms, their licenses being included along side the font files in the source distribution, or under the Operating System specific location in installed packages.

It does also not include the following third-party software: