Mark Attendances as overtime according works week employee configuration to track times done outside the theoretical work times.
At check-out time the attendance line can be split in order to help manager with employee presence reviews and compute compensatory hours.
With this module:
- Employee can visualize plan open work times The check-in/check-out button has different colors according the current state, employee is early, on time, late.
- You can configure theoretical check-in/check-out hours ranges on employee works week.
- While employee check-out following rules are applied on the closed attendance line:
- Checking rules are:
- check-in before starting ranges will create two attendances:
- The first one will be marked as overtime and stopped at the beginning of the starting range, an earlier reason will be add.
- The second will start at the end of the first one.
- check-in in the starting range will open attendance as normal
- check-after the starting range will open attendances as normal adding a late reason
- Check out rules
- Check-out before check-out hours range will marked the attendance as leave earlier
- Check-out in the given range will close the attendance as normal
- Check-out after the range will generate 2 attendance
- a normal one that terminate at the end of the range
- an overtime one that start from the end of range to the check-out time a late reason is added as well
- Auto close rules: We suggest to plan an auto close ir.cron after each work time attendance basically one between the morning and afternoon and one at the end of the day. Previous check-out rules described above will be applied with the auto-close module reason using the ir cron execution time. If no theoretical work time found for open hr attendance a fallback to the auto-close module rules are applied.
This module is used by hr_attendance_validation in order to helps manager review weeks hours and generate compensatoires hours per employee.
auto_awesome What this module does
AI-generated from the code · Odoo 14.0Marks attendance lines as overtime and splits them when employees check in or out outside their planned working hours, so managers can review presence and compensatory hours.
This module compares each check-in and check-out with the employee's working schedule and flags the result.
- On the working schedule (resource.calendar.attendance) four new time fields are added: check-in from/to and check-out from/to. They are shown in the schedule list and form, and are filled automatically from the existing work hours when the module is installed.
- When an employee checks in, a reason is added to the attendance line: earlier, on time, late, or no next work time found. When checking out, the reason is earlier, on time, late, or no previous work time found. These reasons come with ready-made messages shown on the attendance kiosk.
- If someone checks in before the planned start and stays past it, the attendance is split: the early part is marked as overtime and the rest starts at the planned time. If someone checks in on time or late and checks out after the planned end, the extra time is split off and marked as overtime.
- Attendance lines get an Overtime checkbox, visible on the attendance form and list, plus filters and a grouping option to list only overtime or only on-time records.
- The kiosk and My Attendance screen show a daily timeline of planned versus worked hours, and the check-in/check-out button changes colour depending on whether the employee is early, on time or late.
- The automatic closing of forgotten check-outs now uses the planned end of the work period.
Depends on
Required by other modules
Models and fields (5)
- hr.attendance · extends an existing modelis_overtime (Overtime)
- hr.employee.base · extends an existing model
- resource.calendar · extends an existing model
- hr.attendance.reason · extends an existing modeldescription (Description)
- resource.calendar.attendance · extends an existing modelhour_check_in_to (Work from check-in to), hour_check_out_to (Work to check-out to), hour_check_in_from (Work from check-in from), hour_check_out_from (Work to check-out from)
Text generated by AI (DeepSeek) from reading the Odoo 14.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: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 14.0
Confirmed on 2026-11-03 in branch 14.0 of OCA/hr-attendance.
terminal Installation and usage
OCA documentation · Odoo 14.0Configuration
Source · Odoo 14.0This modules depend on different configurations:
To setup ranges hours on employee work time weeks:
- Go to Settings > Technical > Resource > Working Times or from employee form Go to Employees > Employees > in employee form view > working hours.
- On the form view you can setup 4 new fields add by this module on each attendance lines
- check-in from: Check-in before will result an extra overtime line with an earlier check-in reason (
CI-E) - check-in to: Check-in after will add a late check-in reason (
CI-L) - check-out from: Check-out before will add a earlier check-out reason (
CO-E) - check-out to: Check-out after will generate an extra overtime line with a late check-out reason (
CO-L)
We have chosen to not reuse existing Work from and Work to that are used by other modules like hr_holidays with compensatoires leaves. To be able to define a bigger range that overlap that time.
You can personalize 4 kinds of reason label that are selected by code which must remains the same and uniq:
- Go to Attendances > configuration > Reason
- personalize name for following code:
CI-E: check-in earlier (checked-in occurred before check-in from)CI-L: check-in late (checked-in occurred after check-in to)CO-E: check-out earlier (checked-out occurred before check-out from)CO-L: check-out late (checked-out occurred after check-out to)
No verified information in OCA: Installation, Usage.
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.