How to Create a Gantt Chart in Google Sheets
Google Sheets doesn't have a built-in Gantt chart type, but you can build a fully functional one using a stacked bar chart with a bit of formatting. It takes about 15–20 minutes once you understand the structure, and the result is a shareable, cloud-based project timeline that updates in real time.
Here's a complete walkthrough — plus what to consider before you commit to this approach.
What Is a Gantt Chart (and Why Build One in Sheets)?
A Gantt chart is a horizontal bar chart that maps tasks against time. Each bar represents a task, starting at its scheduled begin date and ending at its completion date. Project managers use them to visualize overlapping work, spot scheduling conflicts, and track progress at a glance.
Google Sheets is a common choice because it's free, collaborative, and already where many teams manage their data. The tradeoff is manual setup — Sheets isn't purpose-built for Gantt charts, so you'll be repurposing its charting tools.
Step 1: Set Up Your Data Table
Start with a clean table. You'll need at minimum three columns:
| Task | Start Date | Duration (Days) |
|---|---|---|
| Research | 01/06/2025 | 5 |
| Design | 06/06/2025 | 7 |
| Development | 13/06/2025 | 14 |
| Testing | 27/06/2025 | 5 |
| Launch | 02/07/2025 | 2 |
Duration is what drives the bar length. If you're working from start and end dates, add a formula to calculate duration automatically:
=C2-B2 Where C2 is the end date and B2 is the start date. Format the result as a number, not a date.
You'll also need a "Days from Start" column — this offsets each bar from the project's beginning:
=B2-$B$2 Where $B$2 anchors to the first task's start date. This tells the chart how far to push each bar to the right.
Your final table should have four columns: Task, Start Date, Days from Start, and Duration.
Step 2: Create a Stacked Bar Chart
Highlight the Task, Days from Start, and Duration columns — skip the Start Date column at this point.
- Go to Insert → Chart
- In the Chart Editor, set the Chart type to Stacked bar chart
- Make sure tasks appear on the vertical axis and time on the horizontal axis
You'll see two sets of bars: one representing the offset (Days from Start) and one representing the actual task duration. Right now it won't look like a Gantt chart yet — that's the next step.
Step 3: Make the Offset Bars Invisible 📊
This is the key trick. The offset bars serve as invisible spacers that push the duration bars into the correct position.
- Click on the offset bar series in the chart
- In the Customize tab of the Chart Editor, go to Series
- Select the offset series and set its Fill color to None (transparent) and its Line opacity to 0%
Now only the duration bars are visible, starting exactly where each task begins. It reads as a Gantt chart.
Step 4: Format for Readability
A few adjustments make a significant difference:
- Reverse the task axis so your first task appears at the top (in Chart Editor → Customize → Vertical axis → check "Reverse axis order")
- Remove the legend for the invisible series, or rename it to something clean
- Format the horizontal axis to show dates if you prefer them over day numbers — you can do this by multiplying your day offsets against an actual date scale, though this requires converting dates to serial numbers
- Add gridlines at regular intervals to make the timeline easier to read
- Color-code bars by phase or owner by splitting tasks into separate series
Step 5: Keep It Dynamic (Optional but Useful)
If your project timeline shifts — and it usually does — hardcoded dates become a maintenance headache. Consider:
- Using named ranges for your start date anchor so one cell change ripples through all offset calculations
- Adding a "% Complete" column and using conditional formatting to shade bars partially
- Protecting the formula columns so collaborators can update dates without breaking the structure
The Variables That Affect Your Approach 🗓️
The method above works well for straightforward timelines, but several factors change what "best" looks like for your situation:
Project complexity matters a lot. A five-task sprint is easy to manage in a manual Sheets chart. A 60-task project with dependencies, resource tracking, and milestone markers gets unwieldy fast — the chart won't auto-adjust when tasks shift, and dependencies aren't natively supported.
Team collaboration style is another factor. If your team is already living in Google Workspace and just needs a lightweight visual, Sheets is a natural fit. If stakeholders expect interactive Gantt features — drag-to-reschedule, automatic dependency linking, baseline comparisons — a dedicated project management tool handles those natively.
Your comfort with Sheets formulas determines how far you can push this. Basic setups need only subtraction formulas. Dynamic, auto-updating charts require more structured formula logic and careful data architecture.
Update frequency also shapes the tradeoff. A one-time timeline built for a presentation is low-maintenance. A live project tracker that dozens of people reference weekly needs a sturdier foundation.
Alternatives Worth Knowing About
Google Sheets does have add-ons (found in Extensions → Add-ons → Get add-ons) that automate Gantt chart creation — they handle the chart setup and data structure for you, though they vary in depth and ongoing cost.
Google also has a native timeline view in Google Sheets for tables formatted as Smart Chips or connected to Google Tasks — worth checking if your Workspace version supports it, as it requires less manual chart manipulation.
For teams that find the Sheets approach hitting its limits, tools like Asana, Monday.com, Notion, or even Microsoft Project offer Gantt views built around dependency logic and real-time collaboration — but those come with their own learning curves and subscription considerations.
The Sheets method gives you full control and costs nothing beyond your time. Whether that tradeoff makes sense depends entirely on the scale and longevity of what you're tracking.