Get a Free Demo

Redmineflux MCP is live - connect any AI agent to Redmine.Explore More →

Informational

Redmine Time Tracking: Complete Guide for Billable Teams

Redmine time tracking gives every hour worked a specific address in the project record. A time entry is not just a note in the project log. It links to an…

Redmine time tracking gives every hour worked a specific address in the project record.

A time entry is not just a note in the project log. It links to an issue, carries an activity type, and appears in every time report the project generates. Well-structured Redmine time tracking lets your team answer three questions at a glance. How long did this issue take, who worked on it, and are those hours ready to bill?

This guide covers the full picture native time logging built into every Redmine installation, the Redmineflux Timesheet Plugin for approval workflows, and the Redmineflux Time Tracker Plugin for real-time desktop capture. Use it to understand your options before deciding which layer your team needs.

What Is Redmine Time Tracking?

Redmine time tracking records hours against specific issues and projects. Each entry includes the date, duration, activity type, and an optional comment. Native tracking is included in every Redmine installation at no cost. The Redmineflux Timesheet Plugin adds approval workflows and billing exports. The Redmineflux Time Tracker Plugin adds a real-time browser-based timer for accurate daily capture.

The Three Layers of Redmine Time Tracking

Not every team needs the same depth of time tracking. The three layers below build on each other. Start with what you need and add the next layer when the current one reaches its limit.

Layer 1 — Native Redmine time entry. Included in every installation at no cost. Covers daily logging against issues, configurable activity types, and basic CSV export. Sufficient for small teams with no external billing requirement.

Layer 2 — Redmineflux Timesheet Plugin. Adds weekly timesheet submission, multi-level manager approval, billing categories, project budget alerts, and structured billing exports. Required for any team that invoices clients or runs a formal timesheet review process.

Layer 3 — Redmineflux Time Tracker Plugin. Adds a real-time browser-based timer for logging hours against Redmine issues at the point of work. Hours are recorded when work happens, not reconstructed from memory at the end of the day.

Most billable teams run all three layers together. The Timesheet Plugin and Time Tracker Plugin work independently install either one without the other, and both integrate with native Redmine time entries.

Layer 1: Native Redmine Time Entry

Every Redmine issue has a “Log time” button. A user clicks it, enters hours, selects an activity, adds a comment, and saves. The entry immediately appears in the project’s spent time report.

What native logging provides:

  • Time entries linked to specific issues, not just project-level totals
  • Activity types configurable by an administrator (Development, Testing, Support, etc.)
  • Per-project and cross-project time reports with filter controls
  • Basic CSV export from the spent time screen
  • User-level filtering to see individual contribution

Where native logging stops:

  • No submission step entries are live the moment they are saved
  • No approval or review workflow before hours reach a billing export
  • No billing category separation (billable vs. non-billable)
  • No project budget threshold alerts
  • No desktop timer or real-time capture

Native logging is the right choice for teams under 15 people working on internal projects with no client billing. For anything more structured, the next layer adds what is missing.

Setup note: Configure activity types under Administration → Enumerations → Activities before anyone starts logging. A defined list of 6–8 activities prevents the inconsistency that makes reports unreliable. For the full habits framework including daily logging norms and weekly review practice see the Redmine Time Tracking Best Practices guide.

Layer 2: Approval Workflows and Billing Exports

The Redmineflux Timesheet Plugin adds a structured review layer on top of Redmine’s native time entries.

Hours logged against issues flow into a weekly timesheet. Each developer reviews and submits their timesheet at the end of the week. A manager reviews, approves, or returns it with a comment. Approved timesheets lock and export in billing-ready format. Client invoices go out from reviewed data not raw logged entries.

What the Timesheet Plugin adds:

  • Weekly timesheet view per user — all hours across all projects in one summary, covering any period
  • Submission and approval workflow — developers submit; managers approve or return with a comment explaining what needs correction
  • Multi-level approval chains — configure one or more approval steps per project or role
  • Billing categories — tag entries as billable, non-billable, or internal from the activity level
  • Project budget tracking — set hour budgets per project and receive alerts at configurable thresholds
  • Audit trail — every approval action records who acted, at what time, and on which period
  • Structured billing exports — export by project, by user, or by activity type in PDF, CSV, or JSON format
  • Submission status dashboard — see at a glance which team members have submitted, who is approved, and who has not yet submitted for any period

The approval step is the outcome that changes billing cycles. A billing dispute on an invoice becomes rare when every hour on that invoice was confirmed by a manager before it left the system.

MCP support: MCP support is in active development for this plugin.

For the full setup walkthrough timesheet periods, approver assignment, notification triggers, and billing export configuration see theRedmine Time Tracking for Client Billing and Approvals guide.

Layer 3: Real-Time Browser Timer

The Redmineflux Time Tracker Plugin captures time at the point of work, directly from the browser.

A developer selects an issue in Redmine and starts the timer. The timer runs against that issue. When they stop, the logged hours go directly into the Redmine time entry. The entry is accurate because it was measured, not recalled.

What the Time Tracker Plugin adds:

  • Real-time browser-based timer — start and stop directly against any Redmine issue from within Redmine
  • Weekly timesheet view per user — review all hours for the week in a consolidated view
  • Cross-project time tracking — the timer dashboard aggregates hours across all accessible projects
  • CSV and PDF export — export time data as a CSV report or PDF
  • Excel/XLSX export — available as a .xlsx file (underlying format is CSV)

The Time Tracker Plugin addresses a specific accuracy problem. Developers who log time from memory at the end of the day underreport consistently. The browser timer removes the reconstruction step. Hours are recorded against the issue when work happens not estimated from a calendar view on Friday afternoon.

Entries captured via the Time Tracker Plugin appear as standard Redmine time entries. If your team uses the Timesheet Plugin, the full submission and approval workflow applies to Time Tracker entries exactly as it does to manually logged hours.

MCP support: MCP support is in active development for this plugin.

How They Compare

CapabilityNative RedmineTimesheet PluginTime Tracker Plugin
Log time against issues
Configurable activity types
Cross-project time report
Weekly timesheet view per user
Submission and approval workflow
Multi-level approval chains
Billing category separation
CSV exportBasic CSV only
PDF export
Excel/XLSX export⚠️ CSV file, .xlsx format⚠️ CSV file, .xlsx format
Submission status dashboard
Audit trail of approvals
Real-time timer (browser-based)
System tray app
Offline sync
Idle time detection
PriceFree (built-in)Paid — one-timePaid — one-time

Which Approach Is Right for Your Team?

Native logging only — your team is under 15 people, all work is internal, nobody bills clients for hours, and a basic CSV export is enough for any reporting you need.

Timesheet Plugin — your team bills clients for time, a manager must review and confirm hours before any invoice is sent, or your process includes a formal weekly or monthly sign-off step.

Time Tracker Plugin — your team context-switches frequently between tasks, end-of-day time reconstruction produces inaccurate data, or you want a one-click browser timer that logs hours directly without manual end-of-day entry.

All three layers — the most common setup for agencies, development consultancies, and IT service teams. Native logging handles the database layer. The Time Tracker improves capture accuracy at the point of work. The Timesheet Plugin controls what leaves the system for client billing.

The Redmineflux Time Tracking Setup Process

For a team moving from ad-hoc logging to a structured time tracking system, use this five-step sequence.

Step 1 — Configure activity types before anyone logs a single hour. In Redmine, go to Administration → Enumerations → Activities. Create a list of 6–8 activity types that map to how your team actually works. A standard set for development teams: Development, Design, Testing, Project Management, Client Communication, Internal, Support. Disable defaults that do not match. Consistency here determines whether your reports are usable later.

Step 2 — Set time tracking permissions per project. Each project’s settings control which roles can log time and which can view the time report. Configure these before asking anyone to start logging. Most developers need log access but not full report access. Project managers and delivery leads need both.

Step 3 — Install and configure the Timesheet Plugin. Define your submission period (weekly for most billing teams), assign approvers by project or role, and configure notification triggers for submission, approval, rejection, and late submission reminders. Set billing categories at the activity level. Define hour budgets on any project where cost is actively tracked.

Step 4 — Install the Time Tracker Plugin and verify browser timer entries appear in Redmine. Install the plugin on your Redmine instance. No additional software is required on team member machines the timer runs in the browser directly from Redmine. Confirm that test entries from the Time Tracker appear correctly in the Redmine time log before rolling out to the full team.

Step 5 — Run a two-week pilot before making submission mandatory. Before enforcing timesheet submission deadlines, run native logging and plugin-based logging in parallel for two weeks. Compare the data. Identify team members who need help with the submission flow. A low-stakes pilot catches process problems before they hit a billing cycle.

How Redmine Time Tracking Connects to the Rest of Redmineflux

Time tracking does not stand alone. The hours your team logs connect directly to capacity planning, invoicing, and project visibility across the Redmineflux platform.

Workload Plugin — compare approved hours against scheduled allocation. The gap between planned capacity and actual logged hours shows where estimates are consistently wrong before those errors affect delivery.

Invoice Plugin — generate client invoices from approved time entry data. Hours approved in the Timesheet Plugin flow directly into invoice line items without manual re-entry or reformatting.

Custom Dashboard Plugin — surface time budget status as a live project widget. A project manager sees hours remaining against budget on the project dashboard without opening a separate report.

Managed Cloud — all three layers of Redmine time tracking pre-configured on a hosted Redmine instance. No installation, server maintenance, or plugin version management required.

The Redmineflux progression model for time tracking:

Native logging → Timesheet Plugin → Time Tracker Plugin → Invoice Plugin → Managed Cloud

Each step adds governance without changing how the team works in Redmine day to day.

FAQ

Does Redmine have built-in time tracking?

Yes. Every Redmine installation includes time logging on issues and projects. Users log hours against any issue directly from the issue view, selecting an activity type and adding an optional comment. Native tracking supports configurable activity types, cross-project time reports, and CSV export. It does not include approval workflows, billing categories, or a real-time timer those require the Redmineflux Timesheet Plugin and Time Tracker Plugin respectively.

What is the difference between Redmine time entries and a timesheet?

Redmine time entries are the raw log individual hours recorded against specific issues as work happens. A timesheet is a structured, period-based summary of those entries with a submission and approval workflow attached. Redmine provides time entries natively at no cost. The Redmineflux Timesheet Plugin groups those entries into weekly timesheets, adds manager review, and produces billing-ready exports from approved data only.

Can the Timesheet Plugin and Time Tracker Plugin run together?

Yes. The two plugins operate at different layers and do not conflict with each other. The Time Tracker Plugin captures hours using a real-time browser-based timer. Those hours appear as standard Redmine time entries in the project log. The Timesheet Plugin’s submission and approval workflow applies to all time entries in the system whether logged manually, captured via the Time Tracker, or submitted through the Redmine API.

Which Redmine versions do the plugins support?

Both the Redmineflux Timesheet Plugin and the Redmineflux Time Tracker Plugin support Redmine 5.x and 6.x. Confirm the exact compatibility matrix on each plugin’s product page before purchase. Every purchase includes one year of updates, covering compatibility with new Redmine releases during that period. Teams on Redmine 4.x should contact support to confirm compatibility before purchasing.

Related Reading

Get a Free Demo → Explore Managed Cloud →