Working hours plugin for Redmine
Pull request Compare This branch is 1 commit ahead, 19 commits behind sourcepole:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Working hours plugin for Redmine

The time tracker we use for our daily work at Sourcepole.

This plugin provides an additional section on your personal page for tracking your time spent on projects and tickets.


  • time tracking with ticket assignment

  • overview of worked and target hours per user

  • remaining vacation days per user

  • iCalendar view


get Redmine sourcepole branch:

git clone git://
cd redmine
git checkout -b 0.8-stable origin/0.8-stable

get working hours plugin:

cd vendor/plugins
git clone git://

install Redmine

migrate plugin DB:

rake db:migrate_plugins

Run the unit tests:

RAILS_ENV=test rake db:migrate_plugins
rake test:plugins:units


User pensum

  • set workday hours for a full pensum as WORKDAY_HOURS in app/models/holiday.rb (default 8h)

  • add custom field for user pensum

    • Administration -> Custom fields -> Users -> New custom field

      • Name: working_hours_pensum

      • Format: Float

      • Default value: 1.0

      • Required: check

    • set working_hours_pensum for each user in Administration -> Users


  • Admin users can edit holidays using the link on the Working hours page


  • create vacation issue

    • Subject: <vacation_subject>

    • Assigned to: nobody

  • Note: the shortest vacation time is half a day, i.e. set duration of vacation working hours to WORKDAY_HOURS or WORKDAY_HOURS/2

  • set vacation issue as VACATION_ISSUE_SUBJECT=<vacation_subject> in app/models/working_hours.rb

  • add custom field for user vacation days

    • Administration -> Custom fields -> Users -> New custom field

      • Name: working_hours_vacation_days

      • Format: Integer

      • Default value: 0

      • Required: check

    • set working_hours_vacation_days for each user in Administration -> Users

      • vacation days are counted as full days with WORKDAY_HOURS, e.g. if a user with pensum=1.0 has 20 days then a user with pensum=0.5 has 10 days

Workday hours snapshots

A snapshot containing used vacation days, current and target times can be created for a user. This is used if a user starts working in the middle of the year or his pensum changes. Working hours overview calculations are based on the latest user snapshot or the beginning of the year if no snapshots are found.

Time of workday change

  • issues starting before this time will be assigned to the previous workday

  • set time of workday change as WORKDAY_CHANGE_HOUR on app/models/working_hours.rb (default 5 = 5:00:00)


  • My Page

    • Personalize this page -> Add “Working Hours”

    • start issue by clicking on its link

    • clicking a new issue will stop the currently running issue

  • Vacations

    • Working hours -> Add -> Vacation

      • Select date range and save. This will create a vacation working hour for each day (weekends and holidays will be automatically filtered).

    • for half day vacations select the appropriate option when editing an existing vacation working hour


  • We collect all customer projects without Redmine project as tickets in a separate project.