Usage

tracklr -h or tracklr --help displays usage page.

Adding --debug option helps to debug issues during development.

tracklr ls --help or tracklr pdf --help displays help pages for available commands.

Also see Philosophy, Tracking and Calendar Setups information.

init

tracklr init {config,template} allows users to create tracklr.yml and pdf.html either in the current working directory ie. where tracklr looks for these first, or into so called user config directory eg. on Linux at ~/.config/tracklr/.

tracklr looks for tracklr.yml and pdf.html firstly in the current working directory and then in user config directory, or falls back to defaults.

By default tracklr uses its own configuration stored in Tracklr.__config__ variable.

For PDF reports tracklr uses by default its own HTML template located in tracklr.pdf.Pdf.__template__ variable.

Examples:

# init tracklr.yml in current working dir
tracklr init config

# init pdf.html in user config dir
tracklr init template --user-config-dir

ls

tracklr ls lists all events in calendar and provides total number of hours tracked in the calendar.

Example:

tracklr ls -d 2019-02-1
Tracklr - Command-line Productivity Toolset
Total hours: 2.5
Number of events: 2
+------------+------------------+------------------------------------------------------------+-------+
| Date       | Summary          | Description                                                | Hours |
+------------+------------------+------------------------------------------------------------+-------+
| 2019-02-16 | @Tracklr #v0.1.0 | Testing tracklr v0.1 with Ivan and Tomas                   |   0.5 |
| 2019-02-16 | @Tracklr #v0.2.0 | * fixed timesheet sorting                                  |   2.0 |
|            |                  | * fixed possible missing description/summary in ical feeds |       |
|            |                  | * refactored logging                                       |       |
|            |                  | * started on v0.2 ie. multi calendar support               |       |
+------------+------------------+------------------------------------------------------------+-------+

More examples:

# show only 2019 events
tracklr ls -d 2019

# show only 2019-02 events
tracklr ls -d 2019-02

# show only 2019 @tracklr events
tracklr ls -d 2019 -i @tracklr

# show only 2019 `other` calendar @project events
tracklr ls -d 2019 -k other -i @project

# show all 2019 events from `calendar` for @client's +project that matches #tag
tracklr ls -d 2019 -k calendar -i @client +project "#tag"

# show all March 2019 events without the ones matching #tags tag
tracklr ls -d 2019-03 -x "#tags"

When -g/--group argument is used then ls output will contain found matches for the given group key.

Examples:

# filter out and display $ sum from the demo calendar events
tracklr ls -d 2020-04 -g "$"
Tracklr v1.4.0

Title: Tracklr
Subtitle: Command-line Productivity Toolset
Configuration: default

Total hours: 2.0
Number of events: 2

Total sum: 200.0

+------------+-----------------------+-------------+-------+-------+
| Date       | Summary               | Description | Hours |     $ |
+------------+-----------------------+-------------+-------+-------+
| 2020-04-15 | @Tracklr #v1.4.0 $100 |             |   1.0 | 100.0 |
| 2020-04-15 | @Tracklr #v1.4.0 $100 |             |   1.0 | 100.0 |
+------------+-----------------------+-------------+-------+-------+

pdf

tracklr pdf creates PDF report which displays date, description and hours.

Example:

# generate 2019 @tracklr PDF report
tracklr pdf -d 2019 -i @tracklr

# generate 2019 @tracklr PDF report using custom html template
tracklr pdf -d 2019 -i @tracklr -e custom_report.html

# generate 2019 @tracklr PDF report using custom html template and custom output file
tracklr pdf -d 2019 -i @tracklr -e custom_report.html -f ~/Downloads/custom_report.pdf

See example file here: report.pdf.

info

tracklr info displays information about the current instance.

group

tracklr group creates accumulative reports of events of which summaries match given key pattern using the folloring regexp:

matches = re.compile(r"\{}([a-zA-Z0-9_\.]+)".format(key))

By default the key using for finding matches is #.

The default group key can be changed by specifying -g GROUP, or --group GROUP argument.

Example of default # grouping:

tracklr group -g "#"
___ ____ ____ ____ _  _ _    ____
 |  |__/ |__| |    |_/  |    |__/
 |  |  \ |  | |___ | \_ |___ |  \ v1.3.0

Title: Tracklr
Subtitle: Command-line Productivity Toolset
Configuration: default

Total hours: 47.0

+--------+-------+
| Group  | Hours |
+--------+-------+
| v0.1.0 | 4.5   |
| v0.2.0 | 3.5   |
| v0.3.0 | 2.0   |
| v0.4.0 | 2.0   |
| v0.5.0 | 2.0   |
| v0.6.0 | 2.0   |
| v0.7.0 | 6.0   |
| v0.8.0 | 2.0   |
| v0.9.0 | 1.0   |
| v0.9.1 | 0.5   |
| v0.9.2 | 1.0   |
| v0.9.3 | 2.5   |
| v0.9.4 | 1.0   |
| v0.9.5 | 2.0   |
| v1.0.0 | 4.0   |
| v1.0.1 | 2.0   |
| v1.1.0 | 2.0   |
| v1.1.1 | 2.0   |
| v1.1.2 | 1.0   |
| v1.1.3 | 2.0   |
| v1.2.0 | 2.0   |
+--------+-------+

Example of grouping by @:

tracklr group -g "@"
___ ____ ____ ____ _  _ _    ____
 |  |__/ |__| |    |_/  |    |__/
 |  |  \ |  | |___ | \_ |___ |  \ v1.3.0

Title: Tracklr
Subtitle: Command-line Productivity Toolset
Configuration: default

Total hours: 47.0

+---------+-------+
| Group   | Hours |
+---------+-------+
| Tracklr | 47.0  |
+---------+-------+