Odoo Planning: Resource Scheduling & Shift Management Guide
Workforce scheduling errors cost businesses an average of $7,200 per manager per year in overtime alone, according to the Workforce Institute. When you factor in understaffing losses, overstaffing waste, compliance penalties, and employee turnover from poor scheduling, the true cost reaches $14,000-$22,000 annually per location. Odoo 19 Enterprise Planning module eliminates these losses by providing visual shift scheduling, employee availability management, conflict detection, open shift publishing, and mobile access that keeps your entire workforce aligned. Organizations using structured planning tools report 35% reduction in overtime costs and 20% improvement in employee satisfaction scores.
This guide covers the complete setup and optimization of resource scheduling in Odoo 19, from configuring your first shift template through advanced multi-department planning with automated compliance checks.
Key Takeaways
- Build shift templates that standardize scheduling across departments and roles
- Publish open shifts that employees can claim via self-service portal or mobile app
- Configure employee availability and time-off integration to prevent scheduling conflicts
- Detect and resolve conflicts automatically (double-bookings, overtime violations, rest period violations)
- Copy and paste weekly schedules with one-click repeat functionality
- Enable mobile scheduling so managers and employees manage shifts from any device
- Integrate Planning with Projects, Timesheets, and HR for complete workforce visibility
- Build utilization dashboards that optimize staffing levels and reduce labor waste
Planning Module Architecture
Core Concepts
Odoo Planning operates on a straightforward model:
| Concept | Definition | Example |
|---|---|---|
| Shift | A scheduled work period for one employee | Monday 8:00-16:00 for John |
| Role | A job function that shifts require | Cashier, Warehouse Operator, Nurse |
| Template | A reusable shift pattern | "Morning Shift: 6:00-14:00" |
| Open Shift | An unassigned shift available for claiming | "Need 1 Cashier on Saturday 10:00-18:00" |
| Resource | An employee or equipment being scheduled | Person, machine, room, vehicle |
| Planning Period | The scheduling time window | Weekly, bi-weekly, monthly |
Initial Configuration
Navigate to Planning > Configuration > Settings and enable key features:
| Setting | Purpose | Recommendation |
|---|---|---|
| Allow Shift Trading | Employees swap shifts with peer approval | Enable |
| Open Shifts | Unassigned shifts employees can claim | Enable |
| Shift Templates | Reusable shift patterns | Enable |
| Planning by Role | Schedule by role before assigning employees | Enable |
| Copy Previous Week | Repeat schedule with one click | Enable |
| Employee Self-Service | Employees manage availability and claims | Enable |
Role Configuration
Define roles that map to your organizational structure under Planning > Configuration > Roles:
| Role | Department | Typical Shifts | Minimum Staffing |
|---|---|---|---|
| Cashier | Retail | Morning, Afternoon, Evening | 2 per shift |
| Warehouse Operator | Logistics | Day, Night | 4 per shift |
| Customer Service | Support | Morning, Afternoon | 3 per shift |
| Team Lead | All | Day | 1 per department |
| Technician | Maintenance | Day, On-Call | 2 per shift |
Assign roles to employees under their HR record. Employees can have multiple roles, enabling flexible scheduling — a trained employee might fill both "Cashier" and "Customer Service" roles as needed.
Shift Template Design
Creating Templates
Navigate to Planning > Configuration > Shift Templates and create templates for recurring shift patterns:
| Template | Start | End | Duration | Break | Role |
|---|---|---|---|---|---|
| Morning Shift | 06:00 | 14:00 | 8 hours | 30 min at 10:00 | Variable |
| Day Shift | 08:00 | 16:30 | 8 hours | 30 min at 12:00 | Variable |
| Afternoon Shift | 14:00 | 22:00 | 8 hours | 30 min at 18:00 | Variable |
| Night Shift | 22:00 | 06:00 | 8 hours | 30 min at 02:00 | Variable |
| Split Shift | 07:00-11:00, 16:00-20:00 | — | 8 hours | 5 hours between | Variable |
| Half Day AM | 08:00 | 12:00 | 4 hours | None | Variable |
| Half Day PM | 13:00 | 17:00 | 4 hours | None | Variable |
Template Attributes
Each template can include:
- Color coding: Assign colors for visual identification on the planning board
- Location: If your business operates across multiple locations, tie templates to specific sites
- Notes: Standard instructions for the shift (opening procedures, closing checklist, special duties)
- Required skills: Skills needed beyond the basic role (e.g., forklift certification for certain warehouse shifts)
- Minimum/maximum employees: Staffing requirements that trigger alerts if not met
Recurring Templates
For businesses with stable weekly patterns, create a "master week" using templates. Then use the "Copy Previous Week" function to replicate the schedule indefinitely. This approach works well for: retail stores with fixed operating hours, manufacturing plants with stable production schedules, healthcare facilities with predictable ward staffing, and hospitality businesses with seasonal patterns.
Building the Weekly Schedule
Gantt View Scheduling
The primary scheduling interface is the Gantt chart view under Planning > Schedule. This view shows:
- Employees listed vertically
- Days/hours along the horizontal axis
- Colored blocks representing assigned shifts
- Gaps showing unscheduled time
Creating shifts: Click and drag on the Gantt chart to create a new shift. Select the shift template, assign an employee, and confirm. The shift appears as a colored block with the employee name, role, and time.
Adjusting shifts: Drag shifts to change their time, resize to adjust duration, or drag between employees to reassign. All changes check for conflicts in real-time.
Bulk scheduling: Select multiple time slots and apply a template to all of them simultaneously. This is the fastest way to schedule an entire department for the week — select all 5 weekday slots for the "Morning Shift" template and assign employees in one operation.
Calendar View
Switch to Calendar view for a traditional calendar perspective. Each shift appears as a calendar event with employee name, role, and time. This view is preferred by employees who want to see their personal schedule alongside their personal calendar events.
List View for Bulk Operations
The List view shows all shifts in a sortable, filterable table. Use this view for bulk operations: filter by department, select all shifts, and apply a change (time adjustment, location change, note addition) to the entire selection at once.
Open Shifts and Employee Self-Service
Publishing Open Shifts
Open shifts are unassigned shifts that employees can claim voluntarily. This is essential for:
- Covering call-outs: When someone calls in sick, publish an open shift for their time slot
- Demand spikes: When you need extra staff for a busy period
- Fair distribution: Let employees choose extra shifts rather than assigning mandatory overtime
- Part-time flexibility: Part-time employees pick up additional hours as their schedule allows
Create an open shift by leaving the employee field empty on a scheduled shift. Click "Publish" to make it visible to eligible employees. Eligibility is determined by role assignment, availability, and overtime limits.
Employee Claiming Process
Employees see open shifts in three places:
- Planning portal: Web-based self-service under My Account > My Schedule > Open Shifts
- Mobile app: Odoo mobile app shows open shifts with push notification for new postings
- Email notification: Automated email when a new open shift is published for their role
To claim a shift, the employee clicks "I am interested." The manager receives the claim for approval (or auto-approval can be configured). If multiple employees claim the same shift, the manager selects the preferred assignee based on skills, overtime balance, or seniority.
Shift Trading
Enable shift trading so employees can swap shifts with peers:
- Employee A offers their Tuesday Morning shift for trade
- Employee B sees the trade offer and proposes their Wednesday Afternoon shift
- Both employees confirm the swap
- Manager receives notification and approves (or auto-approve if within policy)
- Schedule updates automatically
Shift trading dramatically reduces manager workload for schedule adjustments while giving employees more control over their work-life balance.
Availability and Conflict Management
Employee Availability Configuration
Employees set their availability under My Account > My Availability:
| Availability Type | Purpose | Example |
|---|---|---|
| Working Hours | Standard availability | Mon-Fri 8:00-18:00 |
| Preferred Shifts | Shifts they prefer | Morning shifts only |
| Unavailable | Dates they cannot work | Every Tuesday (class), Dec 24-26 |
| Maximum Hours | Weekly hour cap | 40 hours/week, 8 hours/day |
| On-Call | Available but not scheduled | Weekend on-call rotation |
Time-Off Integration
Odoo Planning integrates directly with the Time Off module. When an employee's time-off request is approved:
- Their existing shifts for the approved period are flagged with a warning
- The manager receives a notification to reassign or publish as open shifts
- The employee's availability is blocked for the time-off period
- Future scheduling attempts during the time-off period show a conflict alert
Conflict Detection
Odoo detects and alerts on several conflict types:
| Conflict Type | Detection | Resolution |
|---|---|---|
| Double-booking | Same employee scheduled twice at overlapping times | Auto-flag, manager resolves |
| Overtime violation | Employee exceeds maximum weekly hours | Warning before save |
| Rest period violation | Insufficient gap between shifts (e.g., <11 hours) | Blocked or warned |
| Skill mismatch | Employee assigned to role they are not qualified for | Warning before save |
| Time-off conflict | Shift scheduled during approved time-off | Auto-flag, suggest alternatives |
| Availability conflict | Shift outside employee's declared availability | Warning before save |
Configure conflict severity levels: "Block" prevents saving the conflicting shift, "Warning" allows saving with an alert, and "Info" logs the conflict without interrupting.
Compliance Rules
For industries with strict labor regulations, configure compliance rules:
- Maximum consecutive days: Prevent scheduling more than 6 consecutive work days
- Minimum rest period: Enforce 11-hour minimum between shifts (EU Working Time Directive)
- Maximum shift length: Prevent shifts longer than 12 hours
- Break requirements: Enforce minimum break duration for shifts exceeding 6 hours
- Minor work restrictions: Block scheduling employees under 18 for night shifts or overtime
Copy, Paste, and Schedule Repetition
Copy Previous Week
The most common scheduling workflow for stable operations:
- Build a perfect week schedule with all shifts, roles, and employee assignments
- Navigate to the next week
- Click "Copy Previous" to replicate the entire schedule
- Adjust for known changes (time-off, special events, demand variations)
- Publish to notify employees
This approach maintains scheduling consistency while allowing week-by-week adjustments. Most managers spend 15-20 minutes per week on scheduling adjustments instead of building from scratch.
Schedule Templates
For businesses with rotating patterns (e.g., 2-week rotation for manufacturing), save the entire multi-week pattern as a reusable template. Apply the template to generate schedules months in advance, then fine-tune as needed.
Auto-Schedule
Odoo 19 Enterprise includes an auto-scheduling feature that generates schedules based on:
- Required staffing levels per role per time slot
- Employee availability and preferences
- Overtime balance and fairness distribution
- Skill requirements and certifications
- Seniority and priority rules
The auto-scheduler generates a draft schedule that the manager reviews and adjusts before publishing. This is particularly useful for large teams where manual scheduling would take hours.
Mobile App for Planning
Manager Mobile Features
- View schedule: See the full team schedule in Gantt or List view
- Create shifts: Tap to create new shifts or open shifts
- Approve claims: Review and approve open shift claims with one tap
- Handle conflicts: Receive push notifications for conflicts and resolve on the go
- Communicate: Send messages to shift teams or individual employees
Employee Mobile Features
- View schedule: See personal schedule with shift details, location, and notes
- Claim open shifts: Browse and claim available shifts
- Request time-off: Submit time-off requests that automatically check schedule impact
- Set availability: Update availability preferences
- Trade shifts: Offer shifts for trade and accept trade offers
- Clock in/out: If attendance tracking is enabled, clock in from the planning shift directly
Push Notifications
Configure push notifications for:
- New schedule published (to all affected employees)
- Open shift posted (to eligible employees)
- Shift change (to affected employee)
- Upcoming shift reminder (configurable: 1 hour, 4 hours, 1 day before)
- Shift claim approval/rejection (to claiming employee)
Integration with Other Odoo Modules
Planning + Projects
Link planning shifts to project tasks. When a project task requires a specific resource for a time period, create a planning shift tied to the task. This dual visibility ensures that project managers and operations managers are aligned on resource allocation.
Planning + Timesheets
Employees can log timesheets directly from their planning shifts. The planned hours serve as a baseline, and actual timesheet entries capture reality. Compare planned versus actual to identify scheduling accuracy and improve future estimates.
Planning + HR
- Employee records: Pull employee details, skills, and certifications into planning
- Time off: Automatic integration prevents scheduling during approved leave
- Attendance: Compare planned shifts to actual clock-in/out times
- Payroll: Planned and actual hours feed into payroll calculations with shift differentials
Planning + Manufacturing
Schedule manufacturing resources (machines, workstations, operators) using the Planning module. Each manufacturing order generates resource requirements that appear on the planning board. This ensures that operators, machines, and materials align for production without conflicts.
Utilization Dashboards
Key Metrics
Build planning analytics dashboards with these metrics:
| Metric | Formula | Target |
|---|---|---|
| Utilization Rate | Scheduled hours / Available hours | 85-95% |
| Overtime Ratio | Overtime hours / Total hours | <5% |
| Open Shift Fill Rate | Claimed shifts / Published shifts | >90% |
| Schedule Accuracy | Actual hours / Planned hours | 95-100% |
| No-Show Rate | Unworked shifts / Scheduled shifts | <2% |
| Last-Minute Changes | Changes within 48h / Total shifts | <10% |
Forecasting
Use historical scheduling data to forecast future staffing needs:
- Demand patterns: Identify weekly, monthly, and seasonal staffing patterns
- Growth projections: Model staffing needs as business grows
- Attrition planning: Account for expected turnover in advance
- Training schedules: Plan new hire training slots without impacting operations
Frequently Asked Questions
Can Odoo Planning handle scheduling for multiple locations?
Yes. Create separate planning views filtered by location/department. Employees can be assigned to shifts at any location they are qualified for. The availability calendar prevents double-booking across locations — an employee scheduled at Location A cannot also be scheduled at Location B for overlapping times.
How far in advance can I create schedules?
There is no technical limit. You can create schedules months or even a year in advance. Practically, most organizations schedule 2-4 weeks ahead for operational staff and use longer horizons for project-based resources. Auto-scheduling can generate draft schedules for extended periods.
Can employees request specific shifts or days off through the system?
Yes. Employees set availability preferences (preferred days, preferred shift types) in their profile. They can also submit time-off requests through the Time Off module. The planning system considers both availability preferences and approved time-off when generating schedules or suggesting auto-assignments.
How does Odoo handle split shifts or non-contiguous work periods?
Create two shift entries for the same employee on the same day. For example, 7:00-11:00 and 16:00-20:00. Both shifts appear on the Gantt chart and calendar. The total hours are summed correctly for payroll and overtime calculations. Create a "Split Shift" template for recurring split patterns.
Can managers schedule equipment and rooms alongside employees?
Yes. Odoo Planning can schedule any type of resource. Create "equipment" or "room" resources alongside employee resources. Schedule them on the same planning board to ensure alignment — for example, a training room and a trainer are both scheduled for the same period.
How does the planning module handle union rules and labor agreements?
Configure compliance rules that match your union or labor agreement requirements: minimum rest periods, maximum consecutive days, overtime thresholds, seniority-based scheduling priority, and shift preference rights. Odoo enforces these rules as "Block" or "Warning" constraints during scheduling.
Can I generate reports on scheduling fairness across employees?
Yes. The planning reports show hours distribution per employee over any time period. Use this to ensure fair distribution of desirable shifts (day shifts, weekends off) and undesirable shifts (night shifts, holidays). The auto-scheduler includes a fairness algorithm that balances shift types across employees over time.
Optimize Your Workforce Scheduling with ECOSIRE
Effective scheduling is the intersection of employee satisfaction and operational efficiency. Under-scheduling leads to missed revenue and customer service failures. Over-scheduling leads to labor waste and budget overruns. The right schedule achieves both employee work-life balance and business performance targets.
ECOSIRE's Odoo implementation team has deployed Planning for retail chains, manufacturing plants, healthcare facilities, hospitality groups, and service organizations. Our implementation includes role and shift design, compliance rule configuration, availability workflow setup, mobile deployment, and manager training.
Contact ECOSIRE for a workforce scheduling assessment, or explore our Odoo support and maintenance services for ongoing planning optimization.
Related reading:
Written by
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
Related Articles
AI-Powered Customer Segmentation: From RFM to Predictive Clustering
Learn how AI transforms customer segmentation from static RFM analysis to dynamic predictive clustering. Implementation guide with Python, Odoo, and real ROI data.
AI for Supply Chain Optimization: Visibility, Prediction & Automation
Transform supply chain operations with AI: demand sensing, supplier risk scoring, route optimization, warehouse automation, and disruption prediction. 2026 guide.
B2B E-commerce Strategy: Build a Wholesale Online Business in 2026
Master B2B e-commerce with strategies for wholesale pricing, account management, credit terms, punchout catalogs, and Odoo B2B portal configuration.