timewarrior/doc/intro.txt
2016-03-19 17:32:32 -04:00

129 lines
3.4 KiB
Text

Introduction
============
Timewarrior is a time tracking application, which allows you to record your
time spent on activities. At its simplest, you tell it to start and stop
tracking time:
$ timew start
...
$ timew stop
This will record a block of time as active, between the two timestamps that
were recorded when the 'start' and 'stop' commands were run.
By using tags, you can label the blocks of active time:
$ timew start Home Cleaning
...
$ timew stop
This tags the block of time with the two tags 'Home' and 'Cleaning'. The tags
allow you to identify how you spent that time, and is used by the reporting
system to summarize time.
You can also record time retroactively. If you forgot to start recording this
morning, you can do this:
$ timew start 8:30am Home Cleaning
Or if you forgot a whole activity:
$ timew track 8:00am - 8:30am Exercise
$ timew start 8:30am Home Cleaning
More sophisticated use is possible if you have defined your work week:
$ timew define week mon-fri
$ timew define day start 8:30am
$ timew define day end 1730
$ timew track yesterday Home Painting
Once the work week is recorded, vague terms like 'yesterday' can be resolved
into actual start/stop timestamps. If you define holidays, then it knows not to
track time on those days:
$ timew define holidays eng-USA
Furthermore, Timewarrior can fill in gaps. For example:
$ timew track last tuesday :fill Research
There is a :backfill and :fill hint that tells Timewarrior how to fill the time,
for example:
$ timew track yesetrday 8am - 10am Meeting
$ timew track yesterday 3pm - 17:00:00 Training
$ timew track yesterday 2pm ProjectA :backfill
$ timew track yesterday ProjectB :fill
And the 'ProjectB' tagged interval will range from 2pm - 3pm.
Tags can have their own metadata, for example you can make a tag valid for a
given time range:
$ timew define tag ProjectA end 2016-06-30
$ timew define tag ProjectA budget 400 hours total
This is managed by a rules system that can impose constraints.
To see the currently active interval:
$ timew
(TBD)
Reporting tracked time can be done with a simple report:
$ timew report today
$ timew report week Home
$ timew report summary last week
Some early report mockups:
http://picpaste.com/week-zWdSp3UI.png
http://picpaste.com/day-kAqffFmZ.png
Or the data can be exported in JSON:
$ timew export last month > February.json
Some or all of the reports are written using an extension mechanism, and
will be examples of how to write other reports. Report extensions can be shared
and enhanced by the community. It should be possible to implement any kind of
report using the extension mechanism.
There is an 'undo' command for reversing changes, and a 'clear' command to
free up a slot:
$ timew clear yesterday
$ timew clear 8am - 11am
You can start, stop and resume tracking:
$ timew start Training
...
$ timew stop
...
$ timew continue
There is also a rules system that can impose constraints on the data, such as
automatically shutting off tracking after 40 hours is tracked per week, warnings
about overtime, and more.
There is built-in configuration support, logging, and assorted tools to help
you enact policy.
The data will be stored as plain text, and there will a way to merge data from
multiple sources.
--- Raw Notes ---
- add more report mockups
- demo 'config' command
- demo 'tags' command
- demo 'gaps' command
- demo interval adjustment, corrections