Time Off & Attendance¶
1. Purpose¶
These modules record when staff are absent and when they are present. Time Off handles leave requests, entitlements and approvals. Attendance records check-in and check-out. Timesheets record how working time was spent.
They matter to payroll: unpaid leave and attendance data can feed salary computation, and they are the evidence behind any deduction.
2. Features¶
- Leave types with configurable entitlement, and whether they are paid
- Leave allocations per employee, per type, per period
- Leave requests with manager approval, and a company-wide leave calendar
- Public holidays, excluded from leave counts
- Check-in and check-out, from the browser or a kiosk
- Attendance records with worked-hours computation
- Timesheets against projects and tasks
- Timesheet-attendance reconciliation (
hr_timesheet_attendance) - Reporting on absence, attendance and time spent
3. Where to find it¶
- Menu: Time Off; Attendances; Timesheets
- Technical names:
hr_holidays,hr_attendance,hr_timesheet,hr_timesheet_attendance - Tier: Odoo core (Community Edition)
- Available in: Odoo 17 and 18 in our stack
4. Modules used¶
| Module | Tier | Why it is needed |
|---|---|---|
hr_holidays |
Odoo core | Leave types, allocations, requests, approvals |
hr_attendance |
Odoo core | Check-in / check-out and worked hours |
hr_timesheet |
Odoo core | Time recorded against projects and tasks |
hr_timesheet_attendance |
Odoo core | Compares timesheets against attendance |
hr_payroll_community |
Third-party (Cybrosys) | Consumes leave in payslip computation |
hrms_dashboard |
Third-party (Cybrosys) | Aggregates leave, attendance and timesheet data |
hr_leave_request_aliasing |
Third-party (Cybrosys) | Leave requests submitted by email |
5. Configuration¶
- Prerequisite — employees must exist with working schedules set. Leave and attendance are both computed against the schedule.
- Create leave types — Time Off → Configuration → Time Off Types. Set whether each is paid, whether it requires allocation, and who approves.
- Allocate entitlements per employee per leave type, for the period.
- Enter public holidays — Configuration → Public Holidays. Without them, holidays consume employees' leave balances.
- Set the approval route — manager, HR officer, or both.
- Enable attendance mode — browser or kiosk, and whether a PIN or barcode is required.
- Enable timesheets and set the projects and tasks time can be booked against.
Configuration traps
- Missing public holidays silently consume leave balances. Load them each year.
- A leave type set as unpaid only affects payroll if the salary structure has a rule that reads it. Marking it unpaid alone changes nothing on the payslip.
- Working schedules drive everything. Part-time staff on a full-time schedule produce wrong leave and attendance figures.
- Attendance and timesheets are separate records and will disagree unless
hr_timesheet_attendanceis used to reconcile them.
6. How it's used¶
- Employee — Time Off → New request, selecting type and dates.
- Manager — approves or refuses. Approved leave appears on the team calendar.
- Employee — checks in and out through the browser or kiosk each day.
- Employee — books time to projects on their timesheet.
- HR Officer — reviews absence and attendance before payroll is run.
- HR Officer — confirms that unpaid leave has been captured before payslips are generated.
Screenshots needed
Save to docs/assets/time-off-attendance/: leave request form · leave type configuration ·
team leave calendar · attendance list · timesheet grid.
7. Access rights¶
| Group | Can do |
|---|---|
| Time Off / User | Request their own leave |
| Time Off / Officer | Approve leave for their team, manage allocations |
| Time Off / Administrator | Configure leave types, public holidays, all allocations |
| Attendances / User | Check in and out |
| Attendances / Administrator | Edit attendance records and configure the mode |
8. Version differences (16 / 17 / 18)¶
- Not part of our Odoo 16 line.
attrsandstatesremoved from views.- Pulled in by
hr_payroll_community,hrms_dashboardandohrms_core.
<tree>elements superseded by<list>.- Same dependency set as 17 through the OpenHRMS stack.
9. Known limitations¶
- No shift planning or rostering. Odoo Planning is Enterprise.
- No geolocated or biometric attendance in Community; kiosk with PIN or barcode is the ceiling.
- No overtime calculation rules — overtime must be handled through payroll salary rules.
- Leave accrual is basic — complex accrual policies need customisation.
- Attendance does not enforce anything. It records; it does not prevent work outside schedule or flag lateness automatically.
Needs verification on the Thalia live instance
- Which leave types exist, and which are paid or unpaid
- Whether public holidays are loaded for the current year
- Whether attendance is actually used, and in which mode
- Whether timesheets are used, and against what projects
- Whether unpaid leave feeds the payslip, and through which salary rule
- Whether
hr_leave_request_aliasingemail submission is configured