All posts
Integrator9 min read

Project milestones, Gantt view, and task dependencies in Odoo Project

How to configure Odoo Project milestones, enable the Gantt view for timeline planning, set task dependencies, and use the resource management view for capacity planning.

Odoo Project's Gantt view and milestone system make it a capable project planning tool when configured correctly. This guide covers milestones, task dependencies, the Gantt timeline, and resource management.

Prerequisites#

The Gantt view and task dependencies require Odoo Enterprise. In the Community edition, only the Kanban, List, and Calendar views are available.

Enable the features in Project → Configuration → Settings:

  • Milestones - adds the Milestone field to tasks and projects
  • Task Dependencies - adds a Depends On field to tasks, enabling predecessor linking
  • Gantt View - appears automatically when Enterprise is active

Creating and managing milestones#

A milestone is a key deliverable or checkpoint in a project. Navigate to your project, click the Milestones button in the top-right corner (or open Project → Project → Milestones from the main menu), then click New.

Fields on a milestone:

  • Name: the deliverable label (e.g., "MVP Accepted", "Go-Live", "Phase 1 Complete")
  • Deadline: date the milestone must be achieved
  • Reached: checkbox to mark it done

On each task, you can assign a Milestone to indicate which deliverable that task contributes to. In the Gantt view, milestones appear as diamond shapes on the timeline.

Milestone progress#

Odoo computes milestone progress automatically as the percentage of tasks assigned to that milestone that are in a done state. The Milestone dashboard (Project → Milestones) shows:

  • Milestones in progress
  • Overdue milestones (deadline passed, not reached)
  • Completed milestones

Task dependencies#

Enable in settings, then open a task. The Depends On field allows linking tasks that must complete before this one can start. The Gantt view renders dependency arrows between tasks.

When a predecessor task's deadline changes, Odoo warns if the change would push the dependent task's start date into conflict. It does not automatically reschedule - you drag the dependent task manually in the Gantt or update the deadline fields.

Dependency types#

Odoo Project supports Finish-to-Start dependency only (the predecessor must be done before the successor can start). Start-to-Start, Start-to-Finish, and Finish-to-Finish are not supported natively.

For complex multi-dependency networks (e.g., a task depends on two parallel predecessors both completing), add multiple entries in the Depends On field - the task waits until all predecessors are marked done.

Gantt view#

Open a project and switch to the Gantt view using the view selector. The timeline shows:

  • Tasks as horizontal bars sized by deadline range (start date → deadline)
  • Milestone diamonds at their deadline date
  • Dependency arrows between linked tasks
  • Today's date as a vertical marker

Scaling the timeline#

Use the zoom selector (Day / Week / Month / Quarter / Year) to set the timeline granularity. Week view is best for active sprint planning; Month or Quarter view for roadmap reviews with stakeholders.

Editing tasks in Gantt#

  • Drag: move a task's start/end dates
  • Resize: extend or shorten the task bar to adjust the deadline
  • Click: open the task form

Changes made in the Gantt view immediately update the task's Planned Date (start) and Deadline fields.

Grouping in Gantt#

Group the Gantt by Assignee, Stage, or Milestone using the Group By selector. Grouping by Assignee is useful for resource conflict analysis - you can visually see which team member is overloaded in a given week.

Resource planning and utilization#

Project → Reporting → Resource Utilization (Enterprise only) shows a heat-map of task hours per employee per week. Red indicates overallocation (more hours planned than the employee's work calendar allows). This report helps identify weeks where you need to either redistribute tasks or negotiate deadline extensions.

Each task must have Planned Hours set to appear in the utilization report. Set planned hours on the task form in the Hours Planned field.

Setting work calendars#

The utilization calculation uses the assignee's Work Hours calendar. Set this on the employee record (Employees → Employee → Work Information → Working Hours). A 40-hour-week calendar is the default; adjust for part-time or shift workers.

Recurring tasks and task templates#

For repeat deliverables in a project (weekly status reports, monthly billing, etc.), enable recurring tasks in settings and set Recurrence on a task. Configure frequency, end date or count, and whether to reuse the same task record or create new ones each period.

Task templates are saved tasks with no project assigned. Create a template task, then apply it to a new project to pre-populate common tasks (e.g., a standard project checklist). Templates are accessible from Project → Configuration → Templates.

Subtasks for work breakdown#

Tasks support unlimited subtask depth. Open a task and click Add a sub-task in the Subtasks tab. Subtasks inherit the project but can have different assignees and deadlines.

In the Gantt view, parent tasks display as summary bars that span from the earliest subtask start to the latest subtask deadline. The parent task's completion percentage reflects subtask completion.

Common pitfalls#

  • Gantt bars not showing: Tasks need both a Planned Date (start) and a Deadline. A task with only a Deadline shows as a single-day block on that date.
  • Dependency arrows missing: Confirm Task Dependencies is enabled in settings. Also confirm both linked tasks are in the same project - cross-project dependencies don't render in Gantt.
  • Milestone not appearing in Gantt: Milestones appear only if at least one task is assigned to them. An empty milestone is hidden from the Gantt timeline.
  • Resource utilization empty: Ensure tasks have Planned Hours set and the assignee has a Work Hours calendar on their employee record.

Use ERPeek to ask questions about your project portfolio: "Which projects have milestones due this month that are less than 50% complete?" or "Which team members are overallocated in the next two weeks?" - queried against your live Odoo data.

Try ERPeek on your own Odoo module - ask questions, scaffold tests, and explore your codebase in plain language.

Get started free