Step-by-step guide
How to Create a Gantt Chart in Excel
There are two ways to make a Gantt chart in Excel. You can bend a stacked bar chart into the shape of one, or you can open a template that already is one. This guide does the second, start to finish, on a real project — and it takes about ten minutes.
Download the free template Start at step 1
- 4.9/5 · 144 reviews
- Windows & Mac
- Nothing to install
How to make a Gantt chart in Excel
The short version, for anyone who wants the answer before the detail. The full tutorial follows underneath. Each step is one dialog or one keystroke, and the schedule maintains itself from there.
- Open the template Download the Gantt chart Excel template and click Enable Content so the macros run.
- Create the chart Gantt Excel → Add New Gantt Chart. Name the project and choose Days or Hours.
- Type your tasks Type into the placeholder row. Dates, duration and the WBS number fill themselves in.
- Shape the plan Indent tasks into phases, drop in milestones, and link what waits on what.
- Choose your view Seven timeline views, from hours to years. Add people, working days and holidays.
You already have what you need If you have Microsoft Excel, you already have everything you need. The template is an ordinary workbook — nothing to install, no account, and it works on Windows and Mac.
The worked example
We will build one real project: Oakfield Villa
Generic screenshots teach nothing, so every step on this page builds the same plan — a house build run by Amara Whitfield, from the client brief through to handover. It is the same project used throughout the Gantt Excel documentation, so you can carry on into the Getting Started guide without starting again.
This is what you end up with. This is the result.
Open the template and let the macros run
Download the Gantt chart Excel template and open it. Excel shows a yellow bar under the ribbon reading Macros have been disabled. Click Enable Content. The workbook reloads, the red notice across the top of the task grid disappears, and the Gantt Excel tab wakes up.
That red notice is the whole diagnostic. If you can see it, no code is running, and the ribbon buttons will do nothing however many times you click them.
Scroll the image sideways to read the whole grid →
No Enable Content button? Then Windows has flagged the download instead, and the fix is a different one. Enabling macros in Excel walks through it.
On a Mac, Excel asks on opening instead of showing a bar — choose Enable Macros. And if you keep being asked every time, save one copy of the file to a folder of your own and unblock that copy once, rather than reopening the download each time.
Create the chart
The Gantt Excel tab sits before Home on the ribbon. The first group on it is Gantt Charts.
Gantt Excel → Gantt Charts → Add New Gantt Chart
That opens the New Project dialog. Fill in the project name, the worksheet name, the project lead and, if you want them, the baseline and estimated budgets. Here it is with the villa in it — project name Oakfield Villa Build, worksheet name Oakfield Villa, lead Amara Whitfield, and the two budgets the job was signed off against.
Days or Hours — decide before you click OK Choose Days for anything measured in days or weeks — a building job, a campaign, a product launch. Choose Hours only for work that lives inside a day or two: a shift schedule, an installation, an event run sheet — the hourly Gantt chart template is built around exactly that case. If you get it wrong, the fix is a new chart, so it is worth ten seconds of thought.
Click OK and a new sheet appears, already formatted. The project name sits in a coloured card on row 6, the project lead on row 7, the budget line on row 8, the column headers on row 9, and your tasks begin on row 10. Nine columns are showing to start with — WBS, Task, Priority, Resource, Start, Finish, Duration, Done and % Complete — and another twenty-four are available but hidden, plus twenty Custom columns that are entirely yours.
Scroll the image sideways to read the whole grid →
Everything except the duration type can be changed later: click the project banner, or use Gantt Excel → Gantt Charts → Edit Project. You can also add as many separate charts to the same workbook as you like — each one keeps its own settings, its own resources and its own language.
Type your tasks in
At the bottom of the task list is a greyed row reading Type here to add a new task. Click it, type a name, press Enter. A fresh placeholder row appears underneath, so you can rattle off the whole list without touching the mouse.
If your task list already exists somewhere else, you do not have to retype it. Copy the column of task names out of any other Excel workbook and paste it straight into the task column — the whole list arrives at once, and every row comes in as a proper task with its own dates and duration.
Every task you create this way arrives complete. Gantt Excel works out the WBS number, sets the start date to the next working day, gives it a duration of 1 and calculates the end date. The task is deliberately plain, so you can get the names down first and think about dates afterwards.
Then set the durations, and the dates follow. For the villa:
| Task | Start | Duration | Finish |
|---|---|---|---|
| Client brief | Mon 29 June | 2 days | Tue 30 June |
| Architectural drawings | Wed 1 July | 6 days | Wed 8 July |
| Planning permission | Thu 9 July | 8 days | Mon 20 July |
Scroll the image sideways to read the whole grid →
Look at the drawings task: six days from Wednesday 1 July lands on Wednesday 8 July, not Monday 6th. The weekend was skipped, because the calendar knows Saturday and Sunday are not working days. You never do that arithmetic yourself — Gantt Excel walks forward one day at a time and counts only the days that actually count.
Gantt Excel → Tasks → Add Task
If you would rather work in a form than in the grid, select a row and use Add Task, or double-click any existing task to open the Task Form. Both write to exactly the same place, and adding tasks covers the rest of what the grid will do for you.
Two things not to do Do not right-click in Excel and insert a row — a hand-inserted row is not a task, because it has none of the hidden identity and link columns the engine reads. And be careful with Delete: Excel’s own Ctrl Z cannot reverse a Gantt Excel delete, because the delete also rewrites WBS numbers, dependency links and the chart itself.
Group the work into phases
A real project plan is not a flat list, and grouping it takes one button. Select a task and click Make Child. That task becomes a sub-task, and the task directly above it becomes a summary task. That is the whole mechanism.
Gantt Excel → Tasks → Make Child — or press Alt →
For the villa: type a new task called Design and Permits above the three you added in step 3, select those three, and click Make Child. They indent one level, and Design and Permits turns bold and becomes the phase heading.
Do the same again for the groundworks, and the plan starts to look like a plan:
| WBS | Task | Start | Finish | Duration |
|---|---|---|---|---|
| 1 | Design and Permits | Mon 29 June | Tue 21 July | 16 |
| 1.1 | Client brief | Mon 29 June | Tue 30 June | 2 |
| 1.2 | Architectural drawings | Wed 1 July | Wed 8 July | 6 |
| 1.3 | Planning permission | Thu 9 July | Mon 20 July | 8 |
| 1.4 | Permits approved (milestone — step 5) | Tue 21 July | Tue 21 July | 0 |
| 2 | Groundworks | Wed 22 July | Wed 5 August | 15 |
| 2.1 | Site clearance | Wed 22 July | Fri 24 July | 3 |
| 2.2 | Excavate foundations | Mon 27 July | Fri 31 July | 5 |
| 2.3 | Drainage and services | Wed 29 July | Mon 3 August | 4 |
| 2.4 | Pour footings | Mon 3 August | Wed 5 August | 3 |
Scroll the image sideways to read the whole grid →
Nothing on the Groundworks row was typed. The WBS numbers — 1, 1.1, 2, 2.1 — are never typed either. They recalculate on every indent, move, duplicate and delete, because the code is purely positional.
Why the Groundworks row says 15 when the phase only lasts 11 days The four tasks add up to fifteen days of work, but they span only eleven working days, because drainage overlaps the excavation. Which number the parent shows is your choice: Total of Subtask Durations gives the sum of the work, which is what this chart is set to, and Earliest Start to Latest End gives the calendar span of the phase instead. Both live under Gantt Excel → Settings → Settings, on the General tab.
You can nest as deep as you like in principle, but three or four levels is where a plan stays readable. Summary tasks and the WBS goes further into how the outline behaves as a plan grows.
Mark the milestones
A milestone marks a moment rather than a stretch of work — a delivery, an approval, a go-live. On the villa it is Watertight, on Wednesday 2 September: the day the roof is on and the building can be worked in whatever the weather.
Gantt Excel → Tasks → Add Milestone — or press Alt G M
A milestone’s end date always equals its start date and its duration is always 0. That is what makes it a milestone, and it is why it draws as a diamond rather than a bar. There is no duration box to fill in, because there is nothing to fill in.
Scroll the image sideways to read the whole grid →
Milestone or one-day task? Ask whether actual work happens that day. A milestone represents the outcome; a one-day task represents labour, with a cost and a person attached to it. And if you want to close off a phase, that is a summary task rather than a milestone — milestones cannot have child tasks under them. Milestones is the full reference.
Link the tasks, so the plan reschedules itself
This is the step that separates a Gantt chart from a picture of one. Footings cannot be poured until the drainage is in. Say so once, and every date downstream looks after itself from then on.
Double-click the task that waits — not the one it waits on — and switch to the Dependencies tab, the second tab of the Task Form. Choose the predecessor from the Task list, pick a Type, add Lag if you need it, click Add, then OK. The link is stored on the successor, which is why you always open the waiting task.
| Type | Meaning | What it drives |
|---|---|---|
| FS — Finish to Start | B starts after A finishes. The default, and most of what you need | B’s start |
| SS — Start to Start | B starts when A starts. Use it for genuinely parallel work | B’s start |
| FF — Finish to Finish | B finishes when A finishes | B’s finish |
| SF — Start to Finish | B finishes before A starts. Rare | B’s finish |
Scroll the image sideways to follow the arrows →
Lag is measured in working days and can be negative. Screed concrete has to cure before the tiles go down, so “lay floor tiles” gets an FS link with a lag of 2 and starts two clear working days after the screed is laid — a weekend in the way is handled for you. A negative lag overlaps two tasks instead. Lag is not slack you can spend: it is part of the schedule, exactly like a task’s duration.
There is a quicker route for simple chains: click a task’s bar once to select it, then drag it onto another task’s row. Gantt Excel confirms and creates a Finish-to-Start link with zero lag.
Now change something. If rip-out runs a day over, the tasks behind it move, and the tasks behind those move too — without a single date being retyped, and without any task changing length. Links move tasks; they never change durations. A date that a link is driving becomes read-only and shows in italics, so you can always see at a glance which dates you own and which the schedule owns.
Adding dependencies is the click-by-click reference, and the Gantt chart template with dependencies follows one worked project through a slip to show why links behave the way they do.
Set the timeline and pick a view
The villa runs from June to the following spring. Nobody wants to scroll that in day columns, and nobody wants to plan next week in year columns, so the timeline has seven views and you switch between them freely. Switching a view never changes a single date — it only changes what one column on screen is worth.
Gantt Excel → Views and Timeline → Daily View · More Views · Setup Timeline
Setup Timeline does two separate jobs. It sets the window — the stretch of calendar the chart draws, which you can move independently at each end — and it sets the column width for each view, which is the zoom.
Click Show Full Timeline to see the entire project on screen. Views and the timeline covers each view and what one column is worth in it.
Add the people, the working days and the holidays
A resource in Gantt Excel is a person or a piece of kit — and, more importantly, a calendar. This is where the dates on your Gantt chart stop being arithmetic and start being real.
Gantt Excel → Resources → Resources
The window opens on Organization, which is not a person — it is the project’s default calendar, used by every task that has nobody assigned. New charts start it at Monday to Friday. Set that up first, because everyone you add afterwards inherits its working days. Then add your people, tick their working days, and put the site shutdown and the bank holidays on the Organization row with Include Organization Holidays left ticked, so you only enter them once.
Here is what it buys you. Gantt Excel does not add a duration to a start date. It walks forward one calendar day at a time and counts only the days that are working days for that resource and are not holidays. So a five-day task starting Thursday 9 July finishes Wednesday 15 July — and if Friday 10 July is a holiday, the same task finishes Thursday 16 July instead. You change one tick box and the plan re-flows.
Scroll the image sideways to compare →
Assign someone by double-clicking the Resource cell on a task row. If you have turned costs on, the day rates of everyone assigned are added together and multiplied by the duration, and the figure rolls up into the phase totals. Resources, working days and holidays and work and costs go through both in full.
Watch it instead
The same tutorial, on video
If you would rather watch than read, this walks through the same steps — creating the chart, adding tasks, grouping them into phases and setting the timeline.
The other method
Drawing a Gantt chart in Excel by hand
Excel has no Gantt chart type — if you want the background first, here is what a Gantt chart is and what it is for. The usual workaround is to make a stacked bar chart and hide half of it: put your tasks in one column, start dates in the next and durations in a third, insert a Stacked Bar chart, then make the start-date series invisible so only the duration bars show, and reverse the category axis so task one is at the top.
That is the easy part. The work starts afterwards, and it is all manual. Every task needs its own bar, drawn by hand — a row in the source table, a start value and a length, added one at a time. You work out every date yourself, counting weekends and holidays on your fingers, because a chart series has no idea what a working day is. There is nothing to indent, so phases are whatever you can fake with blank rows and bold text. Nothing is linked to anything, so when one task slips you go back and retype the start date of every task behind it, and then check the bars still line up. Want the same plan by month instead of by day? Rebuild it. And the moment somebody edits the table without touching the chart, or the chart without touching the table, the two quietly stop agreeing.
For a five-task picture you will never open again, all of that is fine and it costs nothing. For a plan you actually run a project on, it is an afternoon to build and a chore every week after that. The free Gantt chart Excel template is the other route — the one this page has been using all the way through.
By hand
A stacked bar chart
- You have to draw a bar manually for every task
- Fine for a one-off picture in a slide deck
- You calculate every date yourself, weekends included
- No dependencies — one slipped task means retyping all the ones behind it
- No critical path, no working calendars, no holidays
- Changing the timescale means rebuilding the chart
- The chart and the data drift apart the moment somebody edits one
The template — Gantt Excel
A Gantt chart that maintains itself
- Also runs in the Microsoft Excel you already have
- Dates calculated from a working calendar, weekends and holidays skipped
- Summary tasks, a WBS and milestones as first-class objects
- Seven timeline views, switched without touching the data
- Linked tasks reschedule downstream on their own
- Progress, resources and costs roll up into the phases
- A built-in Project Dashboard and a shareable Web Report, both built from the same plan
- Export to PDF or XLSX for anyone who does not have the file
Common questions
Does Excel have a built-in Gantt chart?
No. There is no Gantt chart type in the chart gallery. You either adapt a stacked bar chart into the shape of one, or you open a template that is already a project planner. Both run in ordinary Microsoft Excel.
How do I make a Gantt chart in Excel without a template?
List your tasks in one column, start dates in the next and durations in a third. Insert a Stacked Bar chart from those three columns, then set the fill of the start-date series to no fill so only the duration bars are visible, and reverse the category axis so the first task sits at the top. You will be calculating the dates yourself, including weekends, and you will be redrawing it whenever anything moves.
Do I need to install anything?
No. It is an Excel workbook. Download it, open it, click Enable Content so the macros can run, and start. There is no installer, no add-in to register and no account.
Why is the Gantt Excel tab missing from my ribbon?
Almost always macros. Look at the sheet rather than the ribbon: a wide red notice across the top of the task grid means no code is running. Click Enable Content on the yellow bar, and if there is no such button, close the file, right-click it in File Explorer, choose Properties and tick Unblock on the General tab.
Why did my five-day task finish on the following Wednesday?
Because the weekend does not count. Gantt Excel does not add a duration to a start date; it walks forward one day at a time and counts only working days for that task’s resource, skipping holidays as well. A five-day task starting Thursday finishes on the Wednesday of the following week.
Can I change a chart from Days to Hours later?
No. The Duration setting picks the scheduling engine and is fixed when the chart is created — the box is disabled from then on, and there is no conversion in either direction. If you need the other kind, create a new chart. It is the one choice on this page worth pausing over.
Why can’t I type a start date any more?
Because a dependency is driving it. Finish-to-Start and Start-to-Start links own a task’s start date; Finish-to-Finish and Start-to-Finish links own its end date. A driven date becomes read-only and displays in italics, so you can see which dates you control and which the schedule controls. Remove or change the link if you need the date back.
Can I keep more than one project in the same workbook?
Yes. Add New Gantt Chart builds a fresh chart sheet each time, and each chart keeps its own settings, its own resource list and its own language.
Does it have a dashboard?
Yes, and you do not build it — it is made from the plan you already have. Gantt Excel → Gantt Charts → Dashboard → Project Dashboard creates a Project Dashboard sheet in the same workbook.
Across the top it puts your Estimated Budget against Actual Cost and how far Over Target you are, beside a donut showing how complete the project is. Next to that sits the summary: project lead, start and end dates, total work, and how many tasks are completed, in progress, not started and overdue. Underneath, the work is broken down by status, by priority, and by cost — baseline against estimated against actual.
Slicers filter the whole thing by status, priority, resource or due date, and a dropdown switches between one project and every project in the workbook. It is a snapshot rather than a live link, so click Refresh after you change the plan. If you need to hand the project to somebody who does not have the file, the Web Report on the same menu turns it into a page you can send.
Does % Complete change my dates?
No. Percent complete records progress — it shades the bar and drives the task’s status, but it never moves a start date, an end date or a duration. Scheduling comes from dates and dependencies, and the critical path is worked out from those.
How do I share the chart with someone who does not have the file?
Use Export to PDF or Export to XLSX in the Export group of the Gantt Excel tab. The XLSX export is a plain workbook with no macros in it, which is usually the version to send outside your organisation.
Does it work on a Mac?
Yes, in Microsoft Excel on Windows and Mac. One difference to know about: the right-click menu on the task grid is a Windows feature and is not installed on Mac, because Excel for Mac does not support that kind of menu customisation. Everything it does is on the Gantt Excel ribbon tab instead, and double-clicking a task row opens the Task Form on both.
Build the villa yourself
Download the Gantt chart Excel template and work through the eight steps above with the file open. It takes about ten minutes to get from an empty workbook to a real plan.
Runs in Microsoft Excel. Nothing to install, no account.
- 4.9/5 · 144 reviews
- Windows & Mac
- Read the Getting Started guide