If you schedule anything in Odoo — shifts, service visits, project work — you live in the Gantt view. It is the timeline where plans become assignments, and in Odoo 20 it receives attention at two levels at once. The Gantt view itself gains new interaction tricks that apply across the platform, and the Planning app, which is built on that view, becomes considerably more powerful because the discontinued Field Service app has moved in. Here is what changed, and what it means if your business runs on schedules.
The platform-wide Gantt upgrades
Three improvements in Odoo 20's General release notes apply to Gantt views wherever they appear:
- Row and column selection. Clicking on a row or a column of a Gantt view now selects all the corresponding cells. Selecting a whole resource's row, or a whole day's column, becomes a single click instead of a drag operation — handy when you want to act on everything one employee, machine, or day contains.
- Start and end buffers. You can define starting and ending buffers that are displayed in the Gantt view. Buffers make breathing room visible on the timeline: the padding before work can truly begin, or after it must end, is shown rather than existing only in the planner's head.
- Studio scheduling with a side panel. The “Scheduling” option of a Gantt view can be enabled via Studio, after which records can be dragged and dropped to and from the side panel to schedule or unschedule them. Unscheduled work sits in the panel; placing it is a drag onto the timeline.
A sibling change lands in the calendar view: when scheduling is enabled there, records can be unscheduled by dragging and dropping them into the side panel. The pattern is consistent — Odoo 20 treats the side panel as the holding area for work that exists but has not yet been placed in time.
None of these three changes is glamorous on its own, but they target the two motions planners repeat all day: grabbing a meaningful set of cells at once, and moving work between “not yet placed” and “placed” without opening a single form. Multiplied across every Gantt in every app — planning, projects, manufacturing — that is where the time saving hides.
Planning's Gantt: the working schedule
In the Planning app, the schedule is displayed in the Gantt view, and per the Odoo 20.0 documentation it is a working surface, not a picture. Without opening individual records, planners can reassign, reschedule, resize, split, and duplicate shifts directly on the timeline. Shifts can be dragged to a different employee and day, extended over several days by dragging their edge, or split at a day boundary.
The view also carries a visual language worth knowing:
- Full colour means a shift is planned and published.
- Diagonal stripes mean it is planned but not yet published.
- A greyed-out background marks employees who are on time off.
- A progress bar appears on currently ongoing shifts that have timesheets linked to them.
On top of that foundation, Odoo 20 layers the release's biggest scheduling story.
Field Service moves into Planning
The standalone Field Service app has been discontinued in Odoo 20; its features now live in Planning. For planning purposes, that means the Gantt timeline is no longer just about who works when — it is also about where the work is and how technicians get there. The Field Service additions listed in the Planning section of the release notes include:
- Live map. Track technicians' locations on a live map.
- Map view. See both shift locations and technician availability in the map view.
- Routing preferences. Routing in the map view offers an ordered mode, which calculates the route respecting the order of the addresses, and an optimized mode, which calculates the shortest path between them.
- Travel times in the Gantt view. Connect to the Mapbox integrator to display travel times in the Gantt view, so schedules can be built with realistic transit between jobs.
- Travel fees. Invoice customers for distance-based travel fees or a fixed travel-time fee.
- Worksheets. Worksheet templates now use property fields instead of Studio fields, and worksheets can be added to shift templates.
- Products by barcode. Add products to a shift by scanning their barcodes.
- Customer equipment and history. Track whether customer equipment is covered by a maintenance contract via Subscriptions, open equipment documentation directly from a shift, and follow the customer's equipment and intervention history.
- Ratings and confirmations. Track customer satisfaction for onsite interventions, and optionally send customers an automatic confirmation email when a shift is published.
- Website intake. Collect service requests through a website form instead of letting customers book services directly.
For businesses that ran Field Service, the upgrade conversation changes: instead of asking whether the new Field Service is better, the question becomes whether your team is ready to plan field work inside Planning's Gantt — with maps, routing, and travel times attached to the same timeline as regular shifts.
Auto Plan gets smarter inputs
Planning's Auto Plan feature assigns open shifts — shifts with no resource yet — and creates and assigns shifts linked to sales orders or project tasks. The 20.0 documentation describes the constraints it respects: roles (open shifts go only to resources with the matching role, and employees with no role cannot be auto-planned), default roles (which take priority), conflicts (nobody gets two shifts at the same time), time off and public holidays, working hours, and contracts (no assignments outside an employee's contract period).
Odoo 20 adds two more inputs on top. Customer locations are now taken into account for automatic shift planning, which is what makes Auto Plan meaningful for the former Field Service workload — proximity matters when the shift happens at a customer's site. And shifts can carry priorities: when Auto Plan runs, higher-priority shifts are scheduled first.
Day-to-day scheduling conveniences
Several smaller Planning changes round out the release:
- Schedule from the side panel. Shifts can be scheduled by dragging and dropping them from the side panel into the calendar or Gantt view — the same unscheduled-work pattern as the platform Gantt change.
- Multiple resources per shift. More than one resource can be assigned to the same shift.
- Employee-specific materials. Materials can be assigned to employees, and when an employee is assigned to a shift, their materials are automatically added to the shift's resources — the van, the ladder, and the specialist tool arrive on the plan with the person.
- Shifts linked to tasks. A specific project task can be assigned to a shift, tightening the connection between the schedule and the project plan.
- Schedules by WhatsApp. Employees can be sent their schedules via WhatsApp, in addition to the usual publication flow.
Ripples beyond Planning
Two related changes deserve a mention. In Project, a task schedule can now be printed from the Gantt view — a small feature that field supervisors and clients who still like paper will appreciate. And one removal to plan around: work entries and the Planning–Payroll integration have been removed in Odoo 20, with work entry types merged into time off types. If your payroll process consumed planned shifts through that integration, the upgrade needs a replacement workflow, not just a version bump.
The bottom line
Taken together, Odoo 20 turns the Gantt view into a more deliberate planning tool: faster selection, visible buffers, and a side panel for unscheduled work across the platform — while Planning absorbs an entire field service operation, complete with live maps, routing choices, Mapbox travel times, travel fees, and worksheets. If your company schedules people for a living, this is one of the most substantive areas of the release, and the one most worth rehearsing in a test database before the upgrade weekend.
Further reading
- Odoo 20 Release Notes — see “Gantt view” in the General section and the full Planning section.
- Planning — Odoo 20.0 documentation — schedules, shift management in the Gantt view, and how Auto Plan assigns open shifts.
