-
Notifications
You must be signed in to change notification settings - Fork 15
Time Tracking
Recording time against tickets, and switching it off if you do not want it.
Suggested in discussion #72 by dschipfel: "For internal IT departments, the focus is often on ticket resolution, documentation, and service quality rather than tracking time spent on individual tasks."
For how it works underneath, see Time tracking β Developer Guide.
Open a ticket and the time panel sits in the reading pane. Add an entry with the minutes spent and an optional note; the ticket shows a running total. Entries carry who recorded them and when, and anyone can delete their own.
That is the whole feature β there is no timesheet screen, no time report and no dashboard widget. Time in FreeITSM is a fact attached to a ticket, not a module of its own.
Tickets β Settings β Time tracking.
Not every team wants it. If your job is to resolve the ticket and write it up properly, a box asking how many minutes it took is clutter at best and a bad incentive at worst.
There are two switches, and the second one matters more than it looks:
| Switch | What it does |
|---|---|
| Record time on tickets | Shows the time panel in the ticket view, and lets people add entries |
| Serve time entries over the REST API | Whether /api/v1/tickets/{id}/time-entries still answers |
They are separate on purpose. Hiding the panel tidies your screens. Closing the API can break something somebody built β a billing export, a reporting job, an integration nobody mentioned when they set it up. Those are different decisions with different people affected, so you make them separately.
If you are switching time tracking off simply because your team does not use it, leave the API switch alone.
Turning either switch off hides things. It never removes them.
Entries already recorded stay exactly where they are, and reappear untouched the moment you switch it back on. If you try it for a month and change your mind, nothing has been lost.
Each switch can be set per company, over an install-wide default.
That matters for anyone running FreeITSM for more than one client: bill one for time, and do not for another, without arguing about it.
| Setting | Meaning |
|---|---|
| Follow the default | This company changes whenever you change the default. The normal state |
| On / Off | This company's own answer, whatever the default says |
"Follow the default" is not the same as "Off". A company that has never been given an answer follows the setting above it; that is what lets you flip the whole install and have everyone move together, and what lets you hand a company back afterwards.
Which switch applies to a ticket is decided by the company that ticket belongs to. So an analyst working across two clients will see the time panel on one client's ticket and not on the next. That is correct rather than odd β the ticket is the client's.
On a single-company installation there is no company section at all. Two switches, and nothing new to learn.
- The panel is simply absent. No greyed-out box, no "time tracking is disabled" message taking up space in the reading pane.
- A stale tab cannot still file time. If somebody had a ticket open when you switched it off, their next attempt to save an entry is refused rather than quietly accepted into a feature that is supposed to be off.
- The REST API refuses rather than returning nothing. An empty list would say "this ticket has no time recorded", which is a different and untrue statement. It answers 404 with a message naming the reason.
- Time tracking β Developer Guide β the settings layer, and how to reuse it
- Tickets β the module this belongs to
- Multi-tenancy β how companies work
- REST API: Tickets β the endpoints the second switch governs
FreeITSM β an open-source IT Service Management platform Β· github.com/edmozley/freeitsm Β· MIT licence
- Installation
- β° Scheduled tasks (cron jobs)
- Architecture
- AI Providers
- Internationalisation (i18n)
- Timezones & Time Handling
- Theming & Dark Mode
- β¨οΈ Command palette (βK)
- π Searching inside tickets
- π Attached documents
- MobileβFriendly
-
Security
- Layer 1 β which modules you can enter
- β³ π§© Module Access Control
- β³ π οΈ Module Access β Developer Guide
- Layer 2 β what you can administer
- β³ π Roles & Permissions
- β³ π οΈ Roles β Developer Guide
- β³ π€ Why capabilities are constants
- Layer 3 β the System module
- β³ π Admin Access Control
- Hardening
- β³ π Security review response 2026-08
- β³ π‘οΈ Security hardening 2026-08
- β³ π οΈ Security hardening 2026-08 β Developer Guide
- β³ π‘οΈ Round three β plain English
- β³ π οΈ Round three β Developer Guide
- Single Sign-On (SSO)
- ποΈ LDAP & Active Directory
- Browser Extension
- API Reference
-
π REST API β how it works
- β³ π« REST API: Tickets
- β³ π» REST API: Assets
- β³ π΄ REST API: Problems
- β³ π REST API: Changes
- β³ π REST API: Knowledge
- β³ β REST API: Tasks
- β³ ποΈ REST API: CMDB
- β³ π REST API: Contracts
- β³ ποΈ REST API: Calendar
- β³ πΏ REST API: Software
- β³ π¦ REST API: Service Status
- β³ βοΈ REST API: Morning Checks
- β³ π REST API: Forms
- β³ βοΈ REST API: Workflow
- β³ πΊοΈ REST API: Network Mapper
- β³ π§ Using the API docs page
- β³ π OpenAPI specification
- β³ β OpenAPI: kept correct
- β³ π οΈ Maintaining the catalogue
- Watchtower
-
Tickets
- β³ Mailbox Authentication
- β³ π€ Email send log
- β³ Basic IMAP mailboxes
- β³ Email rendering & images
- β³ SLA Management
- β³ WhatsApp channel
- β³ π¬ Web chat channel
- β³ π£ Slack channel
- β³ π Linking tickets
- β³ ποΈ Canned responses
- β³ βοΈ Limiting replies to particular senders
- β³ βοΈ Email signatures
- β³ π The public web address
- β³ π’ Ticket numbering
- β³ π Raising a ticket for someone else
- β³ π Merging tickets
- β³ β Splitting tickets
- β³ β Selecting several tickets
- β³ ποΈ The folder pane
- β³ π οΈ Snoozing tickets β Developer Guide
- β³ π₯ Collision detection
- β³ β±οΈ Time tracking
- Problem Management
- Tasks
- Assets
- Knowledge
- Change Management
- Calendar
- Morning Checks
- Reporting
- Software
- Forms
- Contracts
- Service Status
- π Notifications
- π¨ War Room
- Self-Service Portal
- LMS
- Process Mapper
- CMDB
- Network Mapper
- Workflows
- Issue trackers (Jira, Azure DevOps)
- System
-
Overview
- β³ π Progress tracker
- β³ Concepts & vocabulary
- β³ Email routing & mailboxes
- β³ Settings: global vs per-company
- β³ Users & self-service
- β³ Staff cross-company access
- β³ Worked examples
- β³ Pitfalls & gotchas
- β³ Scope: what it's for
- β³ π οΈ Developer Guide (make a module multi-company)
- β³ ποΈ Case study: CMDB (a linked graph)
- β³ π§ͺ Test harness (prove it's isolated)