OCA human resources modules for Odoo
Employees, contracts, attendance, time off, expenses, payroll and shifts. Modules that complete people management in Odoo Community. The catalogue has 167 modules in this area, 20 of them confirmed in Odoo 19.0 (reviewed on 2026-11-03).
Confirmed modules per version
OCA repositories in this area
Other areas
- Accounting and finance
- Sales
- CRM and marketing
- Purchases
- Inventory and logistics
- Manufacturing and maintenance
- Products and catalogue
- Projects and timesheets
- Field service and customer support
- Point of sale
- Website and e-commerce
- Country localisations
- Contracts and documents
- Integrations, EDI and connectors
- Industries and verticals
- Technical tools and administration
Modules in this area
- HR Employee First Name and Two Last NamesOdoo 12, 13, 14, 15, 16hr_employee_lastnames
Adds separate First Name, Last Name and Second Last Name fields to employee records, automatically combining them into the full name and keeping contact details in sync.
- Employee Medical ExaminationOdoo 12, 13, 14, 15, 16, 17, 18, 19hr_employee_medical_examination
Track employee medical examinations in Odoo: record each exam with its date, result and status, and generate exams in bulk for a department or job. Employees see only their own exams; HR managers see and manage all of them.
- Employee external PartnerOdoo 12, 13, 14, 15, 16, 17, 18, 19hr_employee_partner_external
Adds two fields to the employee form: a checkbox marking an employee as external and a link to the partner company that manages them. The partner field only appears and is required when the employee is marked external.
- Employee Phone ExtensionOdoo 12, 13, 14, 15, 16, 18hr_employee_phone_extension
Adds two extra phone fields to employee records: an internal number and a short number, shown in a new 'Internal Contact' section on the employee form.
- Employee Phone PINOdoo 16hr_employee_phone_pin
Store the PIN and PUK codes of an employee's corporate mobile phone directly on the employee record, with access controlled by two new user groups.
- Personal Protective Equipment (PPE) ManagementOdoo 12, 13, 14, 16, 17, 18hr_employee_ppe
Manage Personal Protective Equipment (PPE) given to employees: mark products as PPE, set expiry rules, print a signed receipt, and let Odoo automatically flag expired equipment.
- HR Employee RelativesOdoo 12, 13, 14, 15, 16, 17, 18, 19hr_employee_relative
Store an employee's family members directly on the employee record, with relation type, contact details, birth date and automatically calculated age.
- HR Employee First Name and Two Last NamesOdoo 17, 18, 19hr_employee_second_lastname
Adds a 'Second last name' field to employee records, so you can store first name, father's last name and mother's last name separately. The full name is built automatically from these three parts.
- HR Employee ServiceOdoo 12, 13, 14, 15, 16, 18hr_employee_service
Adds Hire Date, Start Date and Termination Date fields to employee records and automatically calculates how long each employee has been with the company, shown in years, months and days.
- HR Employee Service from ContractsOdoo 12, 13, 14, 15, 16, 18hr_employee_service_contract
Automatically fills in each employee's first and last contract, plus their service start and termination dates, based on the employee's contracts.
- Employee Social MediaOdoo 12hr_employee_social_media
Lets you record the social media accounts (Skype, Twitter, Whatsapp, etc.) of each employee directly on the employee form, and lets HR managers maintain the list of social media platforms in the configuration settings.
- HR Employee SINOdoo 12, 13, 14, 15, 16, 17, 18hr_employee_ssn
Adds the employee Social Insurance Number (SIN) field to the employee form, so HR users can view and edit it directly in Odoo.
- Employee Advance and ClearingOdoo 12, 13, 14, 15, 16, 17, 18hr_expense_advance_clearing
Lets companies pay employees an advance before they spend, then clear that advance against real expense reports. Employees can request advances, submit clearing reports, and either receive extra reimbursement or return unused money.
- Hr Expense Advance Clearing ConsolidationOdoo 12, 14hr_expense_advance_clearing_consolidation
Lets accountants merge several open employee advances into one new consolidated advance equal to the sum of their remaining balances, and marks the originals as consolidated.
- HR Expense Advance Clearing SequenceOdoo 12, 13, 14, 15, 16, 17, 18hr_expense_advance_clearing_sequence
Automatically gives employee advance expense reports their own reference number, starting with AV, instead of the standard expense report numbering.
- hr_expense_advance_overdue_reminder
Track overdue employee expense advances and send reminders by email or printed letter, with a counter of how many reminders were already sent.
- hr_expense_analytic_distribution
Lets employees split an expense report across several analytic accounts by setting a percentage for each. When the report is posted, each expense line is divided into separate accounting entries per analytic account.
- HR Expense Analytic RequireOdoo 12hr_expense_analytic_require
Makes the analytic account mandatory on employee expenses and lets you set a default analytic account for expenses at company level, so every expense is always linked to an analytic account.
- Hr expense cancelOdoo 12, 13, 14, 15, 16, 17, 18hr_expense_cancel
Adds a "Cancel all related operations" button on expense sheets so accountants can undo a posted or paid expense, removing its journal entries, payments and reconciliations and returning the sheet to Submitted.
- HR Expense Cancel ConfirmOdoo 15hr_expense_cancel_confirm
Adds a confirmation step when cancelling an expense sheet, asking for an optional reason before the cancellation is applied.
- HR Expense Due DateOdoo 14hr_expense_due_date
Lets you set a specific due date or payment terms on an expense sheet, so the accounting entry created from the expenses uses that date instead of the default.
- Expense Employee Analytic DefaultOdoo 15, 17hr_expense_employee_analytic_default
Lets expense analytic distributions be chosen based on the employee's own contact/address, so employee-specific analytic distribution models apply automatically to their expenses.
- Expense ExceptionOdoo 14, 15, 18hr_expense_exception
Adds customizable exception rules to expense reports and expenses, so you can block or flag reports that break your own rules and review them before submitting.
- hr_expense_excluded_tax
This module lets you record expenses with excluded (purchase) taxes and automatically calculates the untaxed amount when the expense product has a cost.
- Supplier invoices on HR expensesOdoo 12, 13, 14, 15, 16, 17, 18hr_expense_invoice
Link supplier invoices to employee expense lines so the company can reimburse the employee and settle the vendor debt. Create a vendor bill directly from an expense report or attach an existing posted bill to an expense.
- Select Expense JournalOdoo 12, 14, 15, 16, 17hr_expense_journal
Lets you pick the payment method (credit card or bank journal) used to pay an expense, so the expense report and its accounting entry use the correct journal.
- HR Expense - Pay To VendorOdoo 14, 15, 16hr_expense_pay_to_vendor
Lets employees request that the company pays a vendor directly through an expense, instead of reimbursing the employee. When the expense is paid by company, you can pick the vendor who should receive the money.
- HR Expense PaymentOdoo 14, 15, 16, 17, 18hr_expense_payment
Links expense sheets to their payments, so you can see which payments paid which expense reports directly in Odoo.
- Payment Difference on HR expensesOdoo 12, 13hr_expense_payment_difference
When you register a payment for an expense report, this module lets you enter an amount that differs from the total and decide how to handle the difference: keep the report open or mark it fully paid with a write-off account.
- HR Expense Payment Widget AmountOdoo 14, 15hr_expense_payment_widget_amount
Shows a payment widget on expense reports so users can see the payments already linked to a report and remove a wrong outstanding payment directly from the form.
- Petty CashOdoo 12, 13, 14, 15, 18hr_expense_petty_cash
Lets you track petty cash held by employees: register cash holders with a limit and balance, refill them through vendor bills, and pay expense reports from petty cash with automatic balance checks.
- HR Expense Petty Cash SequenceOdoo 12, 13hr_expense_petty_cash_sequence
Automatically gives expense reports paid by petty cash their own reference number, starting with EXPC, instead of the standard sequence.
- HR Expense PortalOdoo 12, 13, 15hr_expense_portal
Adds a "My Expense" section to the customer portal so portal users can see the expenses linked to their sale orders, with a list, sorting, paging and a detail page including attachments and messages.
- HR Expense Receipt RequireOdoo 12hr_expense_receipt_require
Mark expense products as requiring a receipt, so employees cannot submit an expense (or an expense report) without attaching one. A special permission lets selected users bypass this rule.
- HR expense sequenceOdoo 12, 13, 14, 15, 16, 17, 18hr_expense_sequence
Adds an automatic reference number to expense reports, generated from a configurable sequence (e.g. EX0001), shown on the report form, list, search and printed report.
- Expense Sequence OptionOdoo 14, 15, 16, 17, 18hr_expense_sequence_option
Lets you choose between several numbering sequences for expense reports (hr.expense.sheet), so different expense reports can get different reference numbers based on rules you define.
- hr_expense_sheet_payment_state
Shows the payment status of each expense report (not paid, partially paid, in payment, paid or reversed) directly on the expense report list and form, so you can see at a glance whether employees have been reimbursed.
- Expense Report Sub StateOdoo 14, 15hr_expense_substate
Adds a secondary status (sub state) to expense reports, so you can track extra steps like "To Verify" or "Checked" inside the normal expense report workflow.
- Expense Tax AdjustmentOdoo 14, 15hr_expense_tax_adjust
Lets users correct the tax amount on an expense so the accounting entries match the real tax, useful when rounding differences appear. A new editable tax field appears on the expense form.
- Hr Expense TypeOdoo 12hr_expense_type
Lets you create your own list of expense types and tag each expense with one, so you can classify and group expenses by their nature.
- Hr Expense - Vendor ReceiptOdoo 18hr_expense_vendor_receipt
When an expense sheet uses a receipt journal, this module creates a vendor receipt instead of a vendor bill, and lets you reverse those receipts back to draft.
- HR Expense one2many widgetOdoo 14, 15hr_expense_widget_o2m
Lets users add expense lines directly inside an expense report instead of choosing them from a pop-up selection window. It is turned on or off with a setting in the Expenses configuration.
- Expense Work AcceptanceOdoo 14, 16hr_expense_work_acceptance
Lets you create Work Acceptances directly from an expense report, track how much of each expense line has been accepted, and optionally block posting the expense journal entries until the Work Acceptance is fully accepted.
- Experience ManagementOdoo 12hr_experience
Lets you record an employee's academic background, professional experience and certifications, either from the employee form or from a dedicated Experiences menu in Human Resources.
- Advanced Accrual AllocationOdoo 12hr_holidays_accrual_advanced
Extends Odoo leave allocations with advanced accrual rules: choose how leave days build up over time, cap accruals, carry-over and total balance, see a full accruement history and simulate the balance at a future date.
- Hr Holidays Auto ExtendOdoo 14, 16hr_holidays_auto_extend
Automatically extends validated leaves when their end date is reached, based on a leave type configuration. If another leave overlaps, the extension is stopped and an activity is scheduled for the manager.
- hr_holidays_calendar_event_privacy
Lets you choose the privacy level (Public, Private, or Only internal users) for calendar events created from each Time Off type, so leave events are not always visible to everyone.
- Holidays calendar nameOdoo 14hr_holidays_calendar_name
Lets HR officers define a custom name template for calendar events created from employee leave requests, using placeholders like employee name, duration, and leave type.
- hr_holidays_calendar_planning
Makes time-off requests respect each employee's planned working calendar and flexible hours, so leave durations are calculated correctly when schedules change over time.
- Leave CreditOdoo 12, 13, 14hr_holidays_credit
Lets HR officers mark certain leave types as allowing credit, so selected employees can request leave even when their allocated balance is insufficient, and shows credit usage in the leave type name.
- Leave Management in hoursOdoo 12hr_holidays_hour
Shows leave allocations, requests and balances in hours instead of days. The employee form and the leave summary report display durations in hours, matching leave types configured in hours.
- Auto Approve LeavesOdoo 12, 13, 14, 16hr_holidays_leave_auto_approve
Adds an option on each leave type to automatically validate leave requests, either by HR only or by everyone, so employees no longer wait for manual approval.
- HR Holidays leave repeatedOdoo 12, 13, 14, 18hr_holidays_leave_repeated
Lets you create a leave request that automatically repeats on a schedule (every workday, week, two weeks or four weeks) either a set number of times or until an end date.
- HR Holidays Overview - Report Calendar Type filterOdoo 17, 18, 19hr_holidays_leave_report_calendar_type
Adds a leave type filter to the Time Off Overview calendar, so users can show only certain types of leave (for example holidays, sick leave) in the calendar and in the search bar.
- Leave Request WizardOdoo 12hr_holidays_leave_request_wizard
Adds a guided wizard to create leave requests day by day or hour by hour, showing how much time is available and how much is being requested before submitting.
- Self Approve LeavesOdoo 15hr_holidays_leave_self_approve
Lets employees approve or refuse their own time off requests when they are set as their own time off approver, instead of being blocked by Odoo's normal rule.
- Leaves: length validationOdoo 12hr_holidays_length_validation
Adds a 'Validate Length' action on leave requests that checks whether the stored number of days still matches the employee's working calendar, and blocks validation when it is outdated.
- Holidays natural periodOdoo 13, 14, 15, 16, 17, 18, 19hr_holidays_natural_period
Adds two new leave request units, Natural day and Natural day (Half Day), to time-off types and allocations, so employees can request leave counted in calendar days instead of working days.
- hr_holidays_natural_period_public
Lets you choose whether public holidays are counted or skipped when a leave type is requested in natural (calendar) days. It connects the public holidays and natural period leave features in Odoo.
- hr_holidays_notify_employee_manager
Adds a company setting so that, when an employee creates a leave request, their manager is automatically added as a follower and notified by email.