Project Timeline Template in Excel: Build a Milestone Timeline That Updates Itself
How to build a project timeline template in Excel: a milestone table, a scatter chart with stems and labels, phases as colored bands, a today marker and status colors, plus when to use a timeline instead of a Gantt chart.
A project timeline template in Excel shows the key dates of a project on a single horizontal line: milestones, deadlines and phase boundaries, each labelled and placed at its date. It is built from a small table and a scatter chart, so when a date moves in the table, the timeline redraws itself. A timeline answers “what happens when?” at a glance, which makes it the right picture for a client update, a board slide or a kickoff meeting. This guide walks through the table, the chart, and the finishing touches: phase bands, a “today” marker and status colors.
Timeline or Gantt chart?
| Use a timeline when… | Use a Gantt chart when… |
|---|---|
| You need to show a handful of key dates and phases | You manage dozens of tasks with owners and durations |
| The audience wants the big picture | The team needs to see overlaps and dependencies |
| It goes in a presentation or report | It is used daily to run the work |
Many projects use both: the Gantt chart in Excel for the team, and a timeline built from the same dates for everyone else.
Step 1: the milestone table
Create a table (Insert > Table) with these columns:
| Column | Example | Purpose |
|---|---|---|
| Milestone | Design approved | Label shown on the chart |
| Date | 14-Mar | Horizontal position |
| Height | 2, −2, 3, −3… | Vertical position, alternating above and below the line so labels do not overlap |
| Status | Done, On track, At risk, Late | Color of the marker |
| Owner | Maria | Optional, for the table view |
If the milestones come from a project plan, pull the dates with XLOOKUP from the project management template instead of typing them twice. A repeating height pattern can be generated with =CHOOSE(MOD(ROW()-2,4)+1,2,-2,3,-3).
Step 2: the scatter chart
- Select the Date and Height columns and insert a Scatter chart (markers only).
- Format the horizontal axis: set the minimum and maximum to the project start and end dates, and the number format to a short date such as
d-mmm. - Hide the vertical axis and the gridlines; the timeline line will be the horizontal axis itself.
- Add error bars to the series: vertical, minus direction, 100% percentage. Each marker now has a stem that drops to the axis.
- Add data labels, choose “Value From Cells” and select the Milestone column; clear the Y value option so only the names appear. Position labels above for positive heights and below for negative ones.
Excel 2013 and later support labels from cells. Keep milestone names short, ideally three or four words, so the timeline stays readable.
Step 3: phases as colored bands
Phases (Discovery, Design, Build, Launch) read better as bands than as points. Add a second small table with each phase’s start date and duration in days, then add it to the chart as a stacked bar series on a secondary axis, or simply draw it as a separate horizontal stacked bar chart aligned underneath. For quick results, many people place a thin stacked bar chart directly below the milestone chart with the same date range.
Step 4: a “today” marker
Add a series with a single point: X = =TODAY() and Y = 0, plus a vertical error bar of fixed length in both directions. Format it as a dashed red line. Every time the file opens, the marker moves, so it is obvious which milestones are past and which are coming.
Step 5: status colors
Scatter charts color by series, not by cell, so the trick is one helper column per status:
=IF([@Status]="Late",[@Height],NA())
Repeat for each status, add each helper column as its own series with its own marker color, and the chart colors milestones automatically. NA() values are not plotted.
Calculate a simple “Late” status with =IF(AND([@Date]<TODAY(),[@Status]<>"Done"),"Late",[@Status]) in another helper column so missed milestones turn red without anyone updating them.
Example: website relaunch
| Milestone | Date | Height | Status |
|---|---|---|---|
| Kickoff | 3 Feb | 2 | Done |
| Sitemap approved | 17 Feb | −2 | Done |
| Design approved | 14 Mar | 3 | On track |
| Content complete | 4 Apr | −3 | At risk |
| Testing done | 25 Apr | 2 | On track |
| Launch | 5 May | −2 | On track |
On the chart, the “Content complete” marker shows in amber, which prompts the right conversation in the next client meeting: what is needed to bring content back on track before testing starts. Risks behind amber milestones belong in the risk register.
In Google Sheets
Google Sheets can build the same scatter chart, although error bars and labels from cells are more limited. For task-level timelines, its built-in timeline view (Insert > Timeline) turns a table with start and end dates into a scrollable timeline, which works well for team planning.
Tips for a clean timeline
- Show 6 to 12 milestones; more belongs in a Gantt chart.
- Use the same date range as the project, with a little padding at each end.
- Put the update date in the chart title, for example “Status at 10 March”.
- Copy the chart into slides as a linked object so presentations update with the file.
Related templates
For goals that span several projects, see the OKR template; for the week-to-week task list, the to-do list template. All guides are in Project Management.
Frequently asked questions
How do I make a timeline in Excel without SmartArt?
Use a scatter chart: dates on the horizontal axis, alternating heights on the vertical axis, error bars as stems and data labels from the milestone column. Unlike SmartArt, it updates when dates change.
Can the timeline show durations?
Yes, add phases as a stacked bar series or a separate bar chart aligned below the milestones. For many tasks with durations, a Gantt chart is clearer.
How do I stop labels from overlapping?
Alternate heights above and below the axis and vary them (2, −2, 3, −3). Shorten labels and move crowded ones manually if needed.
Which Excel version do I need?
Excel 2013 or later for labels from cells; the rest works in any recent version.