Allow to track the exact moment when a timesheet line is started (not only the day, but also the minute and second) and let users start and stop timers easily.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Track the exact start and end time of timesheet lines and start/stop timers directly from projects, tasks and timesheets. Users can start work on a project or task, and the module automatically stops any previous running timer.
This module adds precise time tracking to timesheets. Instead of only recording the date, each timesheet line now has a Start Time and an End Time, so you can see exactly when work began and ended.
You can start and stop timers from several places: - On a project form, kanban card or list, a Start work button appears if you have no running timer; if you have one, a Stop work button appears instead. - On a task form, kanban card or list, the same Start/Stop buttons are available. - On timesheet lines themselves (in list, kanban or form view), you can resume or stop work with a single click.
When you start work, a small wizard opens where you can adjust the description, start time, end time, project and task. If another timer is already running, the wizard warns you and shows how long it has been running; you can then stop the previous timer and start the new one. If the previous timer has been running for a very long time, an extra warning appears.
The module also automatically computes the End Time from the start time and the duration, and vice versa. It updates the date when you change the start time, and it ensures that the date and start time stay consistent. A menu item 'Start work' is added under the timesheet menu for quick access.
Depends on
Required by other modules
Menus it adds
Models and fields (5)
- project.task · new model
- project.project · new model
- hr.timesheet.switch · new modelname (Description), task_id (Task), date_time (Start Time), company_id (Company), project_id (Project), date_time_end (End Time), analytic_line_id (Origin line), running_timer_id (Previous timer), running_timer_start (Previous timer start), running_timer_duration (Previous timer duration)
- account.analytic.line · extends an existing modeldate_time (Start Time), date_time_end (End Time), show_time_control
- hr.timesheet.time_control.mixin · new modelshow_time_control
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 7 confirmed, 2 with no information of 9 versions.
Sources · Odoo 18.0
Confirmed on 2026-11-03 in branch 18.0 of OCA/project.
terminal Installation and usage
OCA documentation · Odoo 18.0Installation
Source · Odoo 18.0This module depends on modules found in these repositories:
- OCA/timesheet
- OCA/web
Usage
Source · Odoo 18.0You can access via timesheets:
- Go to Timesheets \> Timesheet \> All Timesheets.
- Create a new record.
- You will see now that the Date field contains also time information.
- If you don't select any "project", you will be able to select any "task", opened or not.
- Selecting a "task", the corresponding "project" is filled.
- Selecting a "project", tasks are filtered for only allow to select opened tasks for that project. Remember that an opened task is a task whose stage doesn't have "Closed" mark checked.
- At the end of the line, you will see a stop button.
- When you press this button, the difference between Date field and the current time is saved in the "Duration" field.
- You can modify the Date field for altering the computation of the duration.
- After a record is stopped, you see a Resume button, which will open a wizard that inherits all relevant values from that timesheet line and lets you duplicate it to indicate you start working in the same thing.
- If you didn't stop the timer, but still hit Resume in any other, the wizard will tell you that you have a running timer and that starting a new one will stop the other one that is running.
To access the wizard directly:
- Go to Timesheet \> Timesheet \> Start work.
- You will be able to enter a new timesheet line from scratch, but by using this wizard, you avoid problems with old or duplicate running timers.
Or via projects:
- Go to Project \> Projects.
- If a project has a running timesheet line, it will display a Stop button.
- Other projects that have enabled timesheets will display a Start button that will open the same wizard as the timesheet lines, but duplicating project's last timesheet line without a task.
- You can see the same in list and form views.
Or via tasks:
- Go to Project \> All Tasks.
- If a task has a running timesheet line, it will display a Stop button.
- Other tasks that have enabled timesheets will display a Start button that will open the same wizard as the timesheet lines, duplicating task's last timesheet line.
- You can see the same in list view.
- Click on any existing task or create a new one.
- You can see the same feature in the action buttons box.
- On the Timesheets page, you will be able to handle records the same way as you do in the above explanation (except the task selection part, which in this case doesn't appear as it's the current one).
Note: All the Start/Resume/Stop features are disabled if you don't belong to the Timesheets/User group or if you are viewing a timesheet that belongs to another user.
No verified information in OCA: Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.