How to Insert a Gantt Chart in Google Sheets: 7 Steps (2026)
Planning a project in Google Sheets can feel simple until tasks overlap, deadlines move, and nobody can tell what happens next. A plain list shows names and dates, but it does not reveal timing, workload, or bottlenecks at a glance.
That gap creates avoidable confusion. You may spend more time formatting cells than managing the project, and a small date change can make the visual timeline misleading.
Here’s the practical solution: create a stacked bar chart, use one series to create invisible spacing, and use another series to display task duration. I’ll walk you through seven steps, explain the formulas, and show how to keep the chart readable when your plan changes.
How to Insert a Gantt Chart in Google Sheets
A Gantt chart in Google Sheets uses a stacked bar chart with a hidden start-date series and a visible duration series. Follow these seven steps to build one from scratch.
Step 1: Create the project schedule
Open a blank Google Sheets tab and create four columns with these headings:
- Task
- Start Date
- End Date
- Duration
Enter one task per row. For example, your first few rows might look like this:
| Task | Start Date | End Date | Duration |
|---|---|---|---|
| Project kickoff | January 6, 2026 | January 6, 2026 | 1 |
| Requirements planning | January 7, 2026 | January 13, 2026 | 7 |
| Design review | January 14, 2026 | January 20, 2026 | 7 |
| Development | January 21, 2026 | February 6, 2026 | 17 |
Use real date values rather than typing dates as plain text. Google Sheets stores dates as serial numbers, allowing the chart to calculate spacing correctly.
Step 2: Calculate the task duration
In the first Duration cell, subtract the start date from the end date and add one day:
=C2-B2+1
Here, C2 represents the end date and B2 represents the start date. The extra one counts both the starting and ending day.
For example, January 7 through January 13 covers seven calendar days. Without +1, the result would be six.
Copy the formula down the column by dragging the small blue handle in the lower-right corner of the selected cell. You can also double-click the handle if the neighboring column contains continuous entries.
Step 3: Add a hidden offset column
Create a fifth column called Offset. In its first row, enter:
=B2-MIN($B$2:$B$20)
Change row 20 to match the last row of your schedule. This formula calculates how many days each task starts after the earliest project date.
If your project begins on January 6, the first task has an offset of zero. A task beginning on January 14 has an offset of eight days.
Copy the formula down the Offset column. Your chart will use this value to push each visible task bar into the correct position.
Step 4: Select the chart range
Highlight the Task, Offset, and Duration columns. You can select non-adjacent columns by holding Ctrl on Windows or Command on Mac while selecting each range.
For a small schedule, you might select:
A1:A20, D1:E20
Include the header row so Google Sheets can recognize the series names automatically. The task names will become chart labels, while Offset and Duration will become the two stacked bar segments.
Here’s why: the chart needs both pieces. Offset controls position, and Duration controls visible length.
Step 5: Insert a stacked bar chart
Choose Insert from the top menu, then select Chart. Google Sheets may choose a chart type automatically.
In the Chart editor on the right:
- Open the Setup tab.
- Open the Chart type menu.
- Choose Stacked bar chart.
- Confirm that the task names appear along the vertical axis.
- Check that Offset and Duration appear as separate series.
If the chart displays dates as separate categories, click Switch rows / columns. The task labels should appear as individual horizontal bars.
Step 6: Make the Offset series invisible
Click the chart, open the Customize tab, and expand Series. Use the series selector to choose Offset.
Set the Offset color to transparent or match it to the chart background. The exact control can vary slightly by Google Sheets interface version.
Leave the Duration series visible with a clear color. The remaining colored bars now appear to begin on their correct calendar dates.
The hidden series still performs its positioning job. It simply stops competing visually with the task duration.
Step 7: Improve labels, dates, and chart layout
Use the Customize panel to make the chart easier to read:
- Open Chart & axis titles and add a useful chart title.
- Adjust the horizontal axis minimum and maximum when the timeline has excessive empty space.
- Use a contrasting color for the Duration series.
- Increase chart height so task labels do not overlap.
- Reverse the vertical axis order if the first task appears at the bottom.
- Turn on data labels if showing duration values helps your audience.
A Gantt chart becomes difficult to scan when it contains too many rows. For a large plan, create separate charts for major phases or teams.
How the Google Sheets Gantt Chart Works
The technique depends on stacked bars. The first segment creates empty space before a task begins, while the second segment shows the task’s length.
Imagine a task that starts eight days after the project begins and lasts seven days. The chart stacks an invisible eight-day segment beneath a visible seven-day segment. The visible bar therefore begins on day nine and ends on day fifteen.
Google Sheets does not provide a dedicated Gantt chart type in the same way some project management platforms do. This workaround uses regular date arithmetic and chart formatting to produce a timeline.
The three calculations behind the chart
Most basic Gantt charts use three pieces of logic:
| Purpose | Formula example | What it does |
|---|---|---|
| Task duration | =C2-B2+1 |
Counts calendar days between the start and end dates. |
| Timeline offset | =B2-MIN($B$2:$B$20) |
Measures each start date from the earliest start date. |
| Working-day duration | =NETWORKDAYS(B2,C2) |
Counts weekdays while excluding weekends. |
Choose the first duration formula when your timeline includes every calendar day. Choose NETWORKDAYS when weekends should not count toward task length.
Calendar days versus working days
Suppose a task runs from Friday through Monday. The calendar-day formula returns four days, while NETWORKDAYS returns two weekdays.
That difference matters for software launches, construction work, support schedules, and any plan affected by weekends. Pick one method and use it consistently across the chart.
For public holidays, you can add a holiday range to the formula:
=NETWORKDAYS(B2,C2,$H$2:$H$10)
Place holiday dates in a separate range, then update the references to match your layout.
How to Add Milestones, Dependencies, and Progress
A basic chart shows timing. You can extend it to show important events, relationships, and completion status.
Adding milestones
A milestone usually has the same start and end date. Its duration becomes one day, which creates a very short bar.
To make it visible, give milestone rows a distinct color or use a separate marker series. For example, a “Launch approval” row could use a dark color while regular work uses blue.
Another approach is to add a milestone column with a value such as 1 on milestone rows and blank cells elsewhere. A separate chart series can then represent those events.
Showing task progress
Add a Progress column with percentages such as 25%, 50%, or 100%. You can calculate completed duration with:
=D2*F2
If Duration is in column D and Progress is in column F, this formula estimates the completed portion of the task.
Use a second visible series for completed duration and keep the remaining duration in another series. This creates a stacked progress bar, although the chart requires more formatting.
Representing dependencies
Google Sheets can list predecessors, but it does not automatically draw dependency arrows across a stacked bar chart.
Add a Predecessor column to record relationships such as “Design review follows requirements planning.” This gives your team a clear reference when dates change.
For complex relationships, a dedicated project management platform can reduce manual coordination. A sheet works well for a simple timeline, while interconnected plans need stronger workflow controls.
Ways to Keep the Timeline Accurate
A chart is only useful when the dates behind it remain reliable. Small improvements to the schedule can prevent confusing visual errors.
Use consistent date formatting
Select the date columns and choose Format, Number, then Date. A consistent format helps you distinguish January 6 from June 1 when regional settings differ.
Keep the underlying values as dates. Manually typing labels such as “next Monday” will not give the chart a usable numeric position.
Protect formulas from accidental edits
Duration and Offset formulas support the entire visual timeline. If somebody overwrites one value, a single bar may move or change length.
Use protected ranges for calculation columns when several people edit the schedule. Leave task names, dates, and status fields open for normal updates.
Use conditional formatting for status
Conditional formatting can highlight overdue tasks, upcoming work, or completed items in the schedule table.
For example, apply a rule when an end date is earlier than today and the status is not “Complete.” This draws attention to potential delays before they become larger planning problems.
Keep the chart close to the schedule
Place the chart beside or below the schedule rather than on a distant tab. People are more likely to update dates when the visual result is visible immediately.
For executive reporting, create a cleaner presentation tab that references the planning range. Keep the working calculations separate from the summary view.
Google Sheets Gantt Chart Limitations
Google Sheets is flexible and familiar, but a manually built Gantt chart has practical limits.
Dependencies do not automatically shift related tasks. Resource conflicts are difficult to see. Progress updates often require extra columns and formulas. Permissions can also become complicated when many people edit the same plan.
For example, moving a three-day design task by one week will not automatically move development, testing, and launch dates. You must update those rows manually unless you build additional formulas.
That manual control can be useful for a small plan. It becomes risky when a schedule contains dozens of tasks, multiple owners, and frequent changes.
Natural Project Timeline Solution: ONES.com

Value Proposition
ONES.com combines project management and knowledge management in one platform powered by ONES Assistant. ONES Project is available separately as a Jira alternative, while ONES Wiki is available separately as a Confluence alternative.
It can give your team a more structured way to manage timelines, workflows, reporting, and project knowledge when a manually maintained chart starts creating extra work.
Core Capabilities
Scattered task planning → Jira-compatible workflows → A familiar transition
If your team tracks work across separate tabs, email threads, and chat messages, ONES Project supports Jira-compatible workflows. You can organize work through statuses, assignees, priorities, and workflow rules.
Manual timeline updates → Sprint management → More predictable planning
When every date change requires several edits, sprint management helps you group work into defined delivery periods. Your team can review planned work, completed work, and remaining work in one place.
Limited visibility → Built-in reporting → Faster project reviews
If you spend a meeting rebuilding status summaries, built-in reporting gives you reusable views for progress, workload, and delivery trends.
Rigid columns → Custom fields → More useful project context
A basic chart may only show dates and task names. Custom fields let you track release areas, risk levels, environments, owners, or approval states.
Repeated manual actions → Automation → Less administrative effort
When a task requires the same status changes or notifications repeatedly, automation can handle routine workflow actions. That leaves you more time for decisions requiring judgment.
Plugin-heavy planning → Native feature parity → Fewer connected systems
If your current setup depends on several add-ons, ONES Project provides native capabilities across workflows, fields, sprint management, reporting, and automation.
Restricted network requirements → On-premise and air-gapped deployments → More deployment flexibility
Teams with strict infrastructure requirements can choose Cloud, On-Premise, Private Cloud, or Air-gapped deployment options. The self-hosted versions provide full feature parity with the cloud version.
Disconnected project knowledge → ONES Wiki → Easier access to project context
When requirements, decisions, and delivery work are separated, ONES Wiki can connect knowledge management with project work. This helps teams find the reasoning behind a task alongside its progress.
Application Scenarios
A product team may begin with a Google Sheets timeline for a small release. As requirements, approvals, and sprints grow, ONES Project can provide structured workflows and reporting without relying on several separate plugins.
An engineering team operating in a restricted network may need local control over its project environment. An On-Premise or Air-gapped ONES deployment can support that operational requirement while preserving core project management capabilities.
A cross-functional team may need both delivery tracking and decision history. Using ONES Project with ONES Wiki can connect active tasks with planning details, meeting outcomes, and technical knowledge.
Common Challenges and Practical Fixes
The chart shows the wrong task order
Problem: The first task appears at the bottom, or the labels run in an unexpected order.
Solution: Open the vertical-axis settings under Customize and adjust the reverse-axis option. Also verify that your selected range begins with the task-label column.
The bars all begin at the same point
Problem: Every visible bar starts at the left edge, even though the tasks have different start dates.
Solution: Confirm that Offset is included as a chart series. Then set Offset to transparent rather than deleting it. The chart needs that series to create spacing.
The chart contains large empty areas
Problem: The timeline includes months before the first task or after the final deadline.
Solution: Adjust the horizontal-axis minimum and maximum values. You can also check for incorrect dates, accidental future entries, or an oversized selected range.
Weekend work produces confusing durations
Problem: A task expected to take five working days appears to cover seven calendar days.
Solution: Replace the calendar-day formula with =NETWORKDAYS(B2,C2). Add a holiday range when company closures should be excluded.
Updates break the chart
Problem: New rows do not appear, or formulas stop extending to new tasks.
Solution: Use an expanded chart range, copy formulas into new rows, and keep task entries contiguous. For recurring plans, consider a structured project platform with managed workflows.
FAQs
Can I create a Gantt chart in Google Sheets without an add-on?
Yes. You can create one with a task list, start dates, end dates, duration formulas, an Offset column, and a stacked bar chart. The Offset series creates the empty space before each task, while Duration creates the visible bar. This approach works well for small and medium plans that do not require automatic dependencies or advanced resource planning.
Why do I need an invisible series?
The invisible series positions each task on the calendar. It calculates the number of days between the project’s earliest start date and each task’s start date. Without that spacing segment, every bar begins at the same chart origin. Hiding the series keeps the positioning logic while showing only the useful task duration.
Should I count weekends in the chart?
That depends on how your team plans work. Use =C2-B2+1 when the timeline represents calendar days. Use =NETWORKDAYS(B2,C2) when tasks progress only on weekdays. Add a holiday range if company closures should reduce the working-day count.
Can Google Sheets automatically move dependent tasks?
A basic stacked bar chart does not automatically reschedule dependent work. You can build custom formulas, but those formulas become harder to maintain as the plan grows. If moving one task should shift several related tasks, a project management platform with workflow and dependency support may provide a more dependable process.
How can I show completed work?
Add a Progress column containing percentages, then calculate completed duration with a formula such as =D2*F2. Use completed duration and remaining duration as separate chart series. A different color for completed work makes the timeline easier to scan during status reviews.
Conclusion
To create a Gantt chart in Google Sheets, prepare task dates, calculate Duration and Offset values, insert a stacked bar chart, hide the Offset series, and refine the layout.
But here’s the truth: the chart is only as dependable as the schedule behind it. Consistent dates, protected formulas, clear working-day rules, and regular updates keep the visual timeline useful.
For a small project, Google Sheets can provide a practical starting point. When dependencies, reporting, automation, restricted deployments, or shared project knowledge become central, a structured platform such as ONES.com can support the next stage.