What milestones do in Odoo#
A milestone in Odoo Projects is a named deadline marker within a project. Tasks can be linked to a milestone, and the milestone has a target date. When all tasks linked to a milestone are completed, the milestone turns green in the project view.
Milestones serve two purposes:
- Progress tracking - the milestone board gives managers a quick view of where each phase of a project stands
- Billing triggers - milestones can be linked to invoiceable events for milestone-based billing
Enabling milestones and Gantt#
Milestones and the Gantt view are available in Odoo Enterprise. In Community edition, these features are not included.
Enable milestones per project:
- Open the project (Kanban or list view → three-dot menu → Edit)
- In the Settings tab, check Milestones
- The milestone panel appears in the project header
Enable the Gantt view globally at Project → Configuration → Settings → Advanced → Gantt Chart.
Creating milestones#
From an open project, click the Milestones option in the project sub-menu.
Click New to create a milestone:
- Milestone Name: a clear phase or deliverable name (e.g., "Alpha Release", "User Acceptance Testing", "Final Delivery")
- Deadline: the target completion date
- Reached: check when the milestone is complete (or it auto-checks when all linked tasks are done)
Create one milestone per major project phase. Avoid creating more than 10–12 milestones per project.
Linking tasks to milestones#
Open any task within the project. In the task form, the Milestone field appears when milestones are enabled. Select the appropriate milestone.
A task can be linked to only one milestone. When the task is marked done, it counts toward the milestone's completion progress.
The Gantt view#
Switch to Gantt view using the chart icon in the top-right of the project task list. The Gantt chart shows tasks as horizontal bars on a timeline.
Navigation#
- Zoom levels: Day, Week, Month, Quarter - switch using the toolbar buttons
- Resize bars: drag the right edge of a task bar to extend or shorten its duration
- Move bars: drag the entire bar left or right to reschedule a task
Setting task dates in Gantt#
For tasks to appear correctly in Gantt, they need a Start Date and a Deadline. Tasks without start dates appear as single-day markers. Tasks without deadlines cannot be resized.
Dependencies#
With task dependencies enabled (Project → Configuration → Settings → Task Dependencies), you can link tasks so that one cannot start until another finishes. In Gantt view, drag from the right side of a task bar to the next task to create a dependency arrow.
Moving an upstream task in Gantt will prompt you to also move downstream tasks.
Deadline tracking#
Each task deadline appears as a vertical line in the Gantt chart. Tasks with deadlines in the past that are not yet done appear in red.
Use Project → My Tasks → Filters → Overdue to see all overdue tasks across projects.
Milestone deadlines appear as diamond markers on the Gantt timeline, making it easy to see whether task timelines align with milestone targets.
Milestone-based billing#
For service businesses billing by project phase:
- On the sales order line, set Create on Order to "Task" and link the line to the project
- In the project task, select the milestone the task belongs to
- Enable Milestone Billing in the project settings
- From the project, click Invoice Milestones to generate an invoice for all reached milestones not yet invoiced
This gives clients a clear invoice that corresponds to a delivered project phase.
Practical tips#
Keep milestone names outcome-focused: "Wireframes Approved" is better than "Design Phase" - it makes it clear what constitutes completion.
Review the milestone board weekly: Project → All Projects → Milestones gives a cross-project milestone status view.
Use deadline as a commitment: Milestones that slide repeatedly undermine client trust. If scope changes, update the milestone date formally and communicate the reason.
Combine Gantt with the Burndown chart: The Gantt shows schedule; the Burndown (Project → Reporting → Burndown Chart) shows whether the team is on pace to complete all tasks. Use both together for a complete picture.

