Time estimation and tracking


This plugin supports time tracking by adding the following to Trac:

  • A Tasks !admin panel, where tasks can be created and assigned a time estimate.
  • A Log !admin panel, where users can log the time they spend on these tasks.
  • A new permission TIME_TRACKING that is required to use these panels.
  • Two new database tables (to store these tasks and log entries).

Trac's reporting module can be used to define various reports that summarize these tasks and log entries. For reporting purposes tasks can be grouped into projects and categories, and log entries can record a location.

Tasks are created and estimated per year.

(There is no formal connection between tasks and tickets. Informally wiki-links to tickets can be entered in the task or log descriptions.)


  • Charts of burned up hours and activity per day using Chart.js.
  • WeekPlanPlugin integration for calendar view of log entries.


The tasks and estimation panel (rows link to Edit Task mode):
Example screenshot of the ''Tasks'' panel

The time logging panel (rows link to Edit Log Entry mode):
Example screenshot of the ''Log'' panel

One of many possible reports:
Example screenshot of a report

The charts macro:
Example sceenshot of the chart macro


Optionally you can change some configuration options in trac.ini to hide or rename certain fields. The defaults are:

year = True
location = True
location.label = Location
category.label = Category
project.label = Project


Example: [[TimeTrackingChart(year=2014,user=pinky|brain)]]


  • width: Width of the chart. (Defaults to 1200.)
  • height: Height of the chart. (Defaults to 600.)
  • user: |-separated list of users. (Defaults to all users.)
  • category: |-separated list of categories. (Defaults to all categories.)
  • project: |-separated list of projects. (Defaults to all projects.)
  • task: |-separated list of tasks. (Defaults to all tasks.)
  • year: |-separated list of years. (Defaults to all years.)
  • mode: cumulative or activity. (Defaults to cumulative.)


Enable and register the TimeTrackingWeekPlanEventProvider in trac.ini under [weekplan] event_providers, and use the WeekPlanPlugin to display log entries. Specify the plan as log:username.

Example: [[WeekPlan(plan=log:pinky|log:brain)]]

Bugs/Feature Requests

Existing bugs and feature requests for TimeTrackingPlugin are here.

If you have any issues, create a new ticket.


Download the zipped source from here.


You can check out TimeTrackingPlugin from here using Subversion, or browse the source with Trac.


Installation of the plugin requires the usual step, e.g. easy_install and enable it in Trac's plugin !admin page or by adding timetracking.* = enabled to the [components] section in trac.ini.

A database upgrade will be required as usual (trac-admin path-to-your-trac-environment upgrade).

Assign the new TIME_TRACKING and TIME_TRACKING_ADMIN permissions to the appropriate Trac groups / users (e.g. in Trac's permission !admin page).

Create reports under View Tickets. You can copy from the example reports.

Recent Changes

[14176] by lucid on 2014-09-25 22:10:11
TimeTrackingPlugin: Add TimeTrackingChart()? macro, WeekPlan event provider for integration with WeekPlanPlugin, and upgrade DB.

Upgrade DB to version 3 to be consistent with this new date handling where there is no UTC conversion as there are no times involved, just dates.

[14095] by lucid on 2014-08-16 22:20:14
TimeTrackingPlugin: First release
[14094] by lucid on 2014-08-16 21:16:35
New hack TimeTrackingPlugin, created by lucid


Author: lucid
Maintainer: lucid

Last modified 3 months ago Last modified on Sep 25, 2014, 11:02:31 PM

Attachments (4)

Download all attachments as: .zip