For years, one of the most common support headaches in Odoo’s HR stack traced back to a single empty field. The working schedule on an employee record was optional, and plenty of companies left it blank — especially for salaried staff who didn’t clock in or out. The problem was that payroll, time off accrual, and attendance tracking all relied on that field to do math. No schedule meant no baseline, and no baseline meant wrong numbers. Odoo 20 finally closes that gap by making the working schedule a required field, and it’s not the only HR change landing this week.
Every Employee Now Needs a Schedule — No Exceptions
Starting with version 20, the Working Schedule field on the employee form can no longer be saved empty. Try to create or update an employee record without one and the system blocks you. This sounds like a small constraint, but the downstream effects are significant. Payroll calculations that divide salary across working days now always have a denominator. Time off accrual rules that count hours per period have a reference to count against. Attendance reports that flag “missing hours” know what “expected hours” actually means.
For companies with non-standard arrangements — freelancers on retainer, part-time consultants, employees with variable shifts — Odoo expects you to create a Flexible Schedule. This is a named schedule configuration that can define a range of hours rather than fixed blocks, and it satisfies the requirement without pretending everyone works nine to five. The key insight here is that “flexible” is still a defined schedule; it’s just one with wider parameters. That distinction matters when the system needs to calculate overtime thresholds or generate payslip line items.
The Recruitment Dashboard Gets a Visual Refresh
Open the Recruitment module in Odoo 20 and the first thing you’ll notice is that the main dashboard looks different. The icons have been updated across the board — part of a platform-wide migration to Google’s Material Symbols that’s been rolling through every module this quarter. But it’s not just cosmetic. Button labels throughout the recruitment pipeline have been rewritten for clarity. Actions that used to require a moment of interpretation now say exactly what they do.
The pipeline view itself carries the new visual language more consistently. Stage cards, candidate counts, and action buttons all share the same icon set and typographic weight, which makes the interface feel less like a collection of features added over time and more like something designed as a single piece. For hiring managers who live in this view during busy seasons, the reduced cognitive friction adds up across hundreds of daily interactions.
Jordan Payroll Drops Two Deprecated Allowance Fields
If you’re running Odoo’s Jordan localization for payroll, two fields have quietly disappeared from the Allowances section of the Payroll tab on employee records. These fields no longer map to anything in the current Jordanian payroll calculation engine, and keeping them around was creating confusion — particularly for new implementations where consultants would fill them in expecting them to feed into the payslip, only to discover they were vestigial.
The removal is clean. No migration script, no data loss — the fields simply aren’t rendered anymore. If your existing employee records had values in those fields, the data remains in the database but no longer surfaces in the interface. For companies setting up Jordan payroll from scratch, the form now shows only the fields that actually participate in calculations, which is exactly how localization-specific interfaces should work.
A Quiet Note on Expense Cards and Apple Wallet
One more change worth flagging, even though it’s less of a feature and more of a clarification: Odoo expense cards do not work with Apple Wallet. This wasn’t documented before, and the gap was causing real confusion — automated assistants were telling users the integration existed when it didn’t. The platform now states the limitation explicitly in the expense card setup flow.
It’s a small addition, but it reflects a broader trend in how Odoo is handling feature boundaries. Rather than letting users discover limitations through trial and error (or through bad advice from third-party tools), the platform is starting to document what it doesn’t do alongside what it does. That kind of honesty saves more support hours than most feature launches.
The Compound Effect of Small HR Fixes
None of these changes will make a headline on their own. A required field, some updated icons, two removed fields, and a documentation note — individually, they’re minor. But taken together, they represent the kind of platform hygiene that separates mature enterprise software from tools that just ship features. The working schedule requirement alone will prevent thousands of payroll errors across Odoo’s install base. The recruitment refresh makes the hiring experience feel current rather than inherited from three versions ago. And the Jordan payroll cleanup means one fewer country localization where the interface lies about what it does.
These are the kinds of changes that existing Odoo users will appreciate quietly and new users will never notice — which is exactly the point. The best infrastructure work is invisible.