Overview
The Time Off module (hr_holidays) in Odoo 19 manages employee leave requests, allocations, and approval workflows. It supports multiple leave types (vacation, sick, personal), fixed and accrual-based allocations, multi-level approvals, and company-wide mandatory days. Odoo 19 adds homeworking-holiday integration.
Prerequisites
- Odoo 19 with the Time Off module installed
- Employee records configured with departments and managers
- HR Officer or Administrator access
Step 1: Configure Leave Types
Navigate to Time Off > Configuration > Leave Types and create your leave categories:
- Name — e.g., "Paid Vacation", "Sick Leave", "Personal Day", "Parental Leave"
- Approval — No Validation, HR Officer Approval, or Manager Approval
- Allocation Type — Fixed (manual allocation) or No Allocation Needed (unlimited)
- Allow Negative Cap — Whether employees can request more leave than allocated
- Include in Reports — Whether this type appears in leave balance reports
- Company — For multi-company environments
Step 2: Create Leave Allocations
Navigate to Time Off > Managers > Allocations:
Fixed Allocations
- Select the employee(s) and leave type
- Set the number of days allocated
- Set the validity period (optional — e.g., January 1 to December 31)
- Approve the allocation
Accrual Allocations
For leave that accrues over time:
- Create an allocation with Accrual Plan selected
- Configure the accrual plan with:
- Accrual frequency — Daily, Weekly, Twice a Month, Monthly, etc.
- Rate — Number of days accrued per period (e.g., 1.67 days per month for 20 days annually)
- Cap — Maximum accrual limit
- Carryover policy — How unused days roll over to the next period
Step 3: Configure Approval Workflow
Leave approvals follow the employee's reporting chain:
- Manager Approval — The employee's direct manager approves the request
- HR Officer Approval — HR must also approve (two-level approval)
- No Validation — Requests are auto-approved
The manager is determined from the employee record's Manager field.
Step 4: Set Up Mandatory Days
Navigate to Time Off > Configuration > Mandatory Days. Create company-wide closures:
- Name — e.g., "Christmas", "Independence Day", "Company Retreat"
- Start Date / End Date — The mandatory day period
- Company — For company-specific holidays
Mandatory days are automatically deducted from working days when calculating leave duration.
Step 5: Configure Stress Days
Stress days highlight peak business periods when leave should be discouraged:
- Mark specific dates or periods as stress days
- A warning appears when employees request leave on stress days
- Stress days do not block leave requests but provide visibility
Step 6: Employee Self-Service
Employees manage their leave through the Time Off dashboard:
- Time Off > Dashboard — View leave balances and upcoming requests
- My Time Off — Submit new leave requests
- The calendar view shows team availability
Step 7: Manager Dashboard
Managers view their team's leave status:
- Time Off > Managers — Approve or refuse pending requests
- Calendar view shows which team members are on leave
- Balance overview for all direct reports
Best Practices
- Create separate leave types for paid and unpaid time off
- Use accrual plans for annual leave to distribute entitlements evenly
- Set carryover limits to prevent excessive leave accumulation
- Configure mandatory days before each fiscal year starts
- Train employees to submit requests at least 2 weeks in advance for planned leave