How to Set Up a Gantt Chart in Google Sheets: 7 Easy Steps
Gantt charts can turn a simple project plan into a clear visual timeline. Yet setting one up in Google Sheets often feels harder than it should. Dates, formulas, conditional formatting, dependencies, and progress tracking can quickly become confusing, especially when your project includes many tasks.
A poorly built chart may show the wrong dates, hide delays, or require constant manual coloring. That creates more maintenance work when you should be managing the project itself.
But here’s the truth: you can build a useful Gantt chart with seven straightforward steps. This guide shows you how to structure your worksheet, add the right formulas, apply timeline colors, track progress, and avoid common mistakes.
How to Set Up a Gantt Chart in Google Sheets
A Gantt chart in Google Sheets uses task rows and date columns to display when each activity starts, how long it lasts, and where tasks overlap. You can create one with task details, date formulas, and conditional formatting.
The process below gives you a working chart without requiring a dedicated project management tool.
Step 1: Create the Task Information Columns
Open a new Google Sheets worksheet and create columns for the details you need to plan each task.
A practical starting layout looks like this:
| Column | Purpose |
|---|---|
| A | Task ID |
| B | Task name |
| C | Owner |
| D | Start date |
| E | End date |
| F | Duration |
| G onward | Timeline dates |
For example, your first rows might include “Define requirements,” “Create wireframes,” “Build prototype,” and “Review with stakeholders.”
Keep the task names short enough to scan quickly. You can add extra columns later for status, priority, notes, or completion percentage.
Step 2: Add Start Dates, End Dates, and Durations
Enter a start date and end date for each task. Use one consistent date format, such as 01/06/2025 or 2025-01-06.
In the duration column, calculate the number of working days with:
=NETWORKDAYS(D2,E2)
Here, D2 contains the start date and E2 contains the end date.
If you want to count calendar days instead, use:
=E2-D2+1
The +1 includes both the start and end dates. Without it, a task running from Monday through Wednesday would show two days rather than three.
You can also exclude holidays by listing them in another range. For example:
=NETWORKDAYS(D2,E2,$N$2:$N$10)
This approach helps when your project spans public holidays or planned office closures.
Step 3: Build the Timeline Across the Top
Choose the first timeline cell, such as G1, and enter the earliest date in your project.
In the next cell, enter:
=G1+1
Drag the formula across the row to create consecutive dates.
If you prefer weekly planning, use:
=G1+7
Daily columns work well for short projects. Weekly columns are easier to read when your plan lasts several months.
Format the timeline cells as dates. You can use a compact format such as 06 Jan to keep the chart narrow.
Step 4: Apply Conditional Formatting to Create the Bars
Now select the timeline area, such as G2:AZ30. This range should cover all task rows and timeline dates.
Open Format, choose Conditional formatting, and select the option for a custom formula.
Use this formula:
=AND(G$1>=$D2,G$1<=$E2)
Choose a fill color, then select Done.
The formula checks whether the date in the timeline header falls between the task’s start and end dates. When it does, Google Sheets colors that cell.
The dollar signs matter:
G$1keeps the header row fixed while the rule moves across dates.$D2keeps the start-date column fixed while the rule moves down tasks.$E2does the same for the end-date column.
For example, a task scheduled from January 6 through January 10 will show a colored bar across those five timeline cells.
Step 5: Add Status Colors or Progress Indicators
A single color shows timing, but status colors make the chart more useful during project reviews.
You can add a status column in F and use values such as:
- Not started
- In progress
- Blocked
- Complete
Create separate conditional formatting rules for each status. For example, to color an entire task row when the status in column F says “Complete,” use:
=$F2="Complete"
Apply the rule to the task area, such as A2:AZ30. Use a light green fill for completed tasks and a light red fill for blocked work.
You can also show progress inside the timeline with a second rule. If the completion percentage is stored in column G and the timeline begins in column H, a progress formula could be:
=AND(H$1>=$D2,H$1<=$D2+ROUND(($E2-$D2+1)*$G2,0)-1)
This rule colors only the completed portion of a task’s scheduled period. Use a darker shade for progress and a lighter shade for remaining work.
Step 6: Improve the Chart’s Readability
A working Gantt chart can still be difficult to use if the layout is cluttered. Make a few visual adjustments before adding more tasks.
- Freeze the top row so dates remain visible while you scroll.
- Freeze the task-name columns so you know which row you are viewing.
- Use bold text for headers.
- Center the timeline dates.
- Reduce the width of date columns.
- Use alternating row colors for the task area.
- Keep the color palette limited to three or four shades.
For a long project, group dates by week or month. You can add a second header row above the daily dates and merge cells for each month.
Keep the chart practical. A colorful layout may look attractive, but too many colors make priorities harder to recognize.
Step 7: Add Milestones, Dependencies, and a Review Routine
Milestones are important events with no meaningful duration, such as “Design approved” or “Product launched.”
To show a milestone, give it the same start and end date. You can then use a separate conditional formatting rule:
=$D2=$E2
Choose a distinctive color or symbol for milestone rows.
For dependencies, add a column called “Depends on.” Enter the task ID that must finish first. For example, “Build prototype” may depend on “Create wireframes.”
Google Sheets will not automatically reschedule dependent tasks. You must update dates manually or build more advanced formulas. That limitation matters when your plan changes frequently.
Set a review routine, such as checking the chart every Monday. Update completed tasks, revise dates, and record blockers while the information is still fresh.
How the Gantt Chart Works
The chart has two connected parts: task information on the left and a date grid on the right.
Each row represents a task. The start and end dates define the task’s planned period. The conditional formatting rule compares every timeline date with those two values.
For example, imagine this task:
| Task | Start | End | Timeline result |
|---|---|---|---|
| Write landing page | January 6 | January 9 | Four colored cells |
When the timeline reaches January 6, the rule returns true. It keeps returning true through January 9, creating a continuous bar.
Here's why: the visual bar is not manually drawn. It is generated by a comparison between the header date and each task’s schedule.
Why the Formula Uses Relative and Fixed References
Conditional formatting formulas need to behave differently across columns and rows.
The timeline date must change as the rule moves from one day to the next. The start and end columns must stay fixed while the rule moves down the task list.
That is why this formula works:
=AND(G$1>=$D2,G$1<=$E2)
If you remove the dollar signs, the references may shift into the wrong columns. You may see bars appearing on unrelated dates or disappearing from some rows.
Daily, Weekly, and Monthly Views
A daily timeline gives precise scheduling. It suits marketing campaigns, software sprints, event preparation, and short construction phases.
A weekly timeline is easier to maintain for projects lasting three months or longer. Each column represents a week rather than a single day.
A monthly timeline provides a high-level view. It works well for annual roadmaps, department planning, and executive updates.
The best choice depends on the decisions you need to make. If a two-day delay matters, use daily columns. If only major phases matter, monthly columns may be enough.
How to Add Dependencies and Milestones
Dependencies show the order in which tasks should happen. They help you identify the activities that can delay later work.
Add a “Depends on” column and record the related task ID. Then add a notes column for details such as approval requirements, handoff conditions, or external deadlines.
Simple Dependency Example
Suppose a website project includes these tasks:
- Approve sitemap.
- Create page designs.
- Build templates.
- Complete quality review.
Page designs depend on the approved sitemap. Template development depends on the designs. Quality review depends on the completed templates.
If the sitemap approval moves from Monday to Thursday, every related task may need a new start date. A manual chart will not automatically cascade those changes.
Milestone Example
A milestone represents a checkpoint rather than a block of work.
Common examples include:
- Contract signed
- Requirements approved
- Beta release
- Training completed
- Project handover
Use a diamond-shaped symbol or a strong accent color when you want milestones to stand out. You can create the symbol with a character such as ◆ in a separate marker column.
How to Track Progress and Delays
A Gantt chart becomes more valuable when it shows the difference between planned and actual work.
Add columns for actual start date, actual end date, completion percentage, and current status. Keep the planned dates unchanged so you can compare the original plan with reality.
| Field | Example | Use |
|---|---|---|
| Planned start | January 6 | Original schedule |
| Actual start | January 8 | Real start date |
| Planned end | January 10 | Original deadline |
| Actual end | Blank | Completed date |
| Progress | 60% | Current completion |
A two-day gap between planned and actual start dates immediately shows a schedule variance. That makes project conversations more specific.
Use a Simple Progress Calculation
If a task has a known planned duration, you can estimate elapsed progress with:
=MIN(1,MAX(0,(TODAY()-D2)/(E2-D2+1)))
This returns a value between 0 and 1. Format the cell as a percentage.
Use this calculation as an estimate only. A task can be 90% complete on the calendar while still having a major unresolved issue.
For better accuracy, ask the task owner to update progress manually during weekly reviews.
Identify Critical Work
Highlight tasks that have little schedule flexibility. If one activity slips and every later activity moves, that work deserves close attention.
You can add a “Priority” column with values such as High, Medium, and Low. Apply conditional formatting to highlight high-priority tasks.
For example, a regulatory approval may take only one day, but it could block an entire release. Its duration is short, yet its project impact is high.
Common Google Sheets Gantt Chart Mistakes
Most problems come from inconsistent dates, incorrect references, or unclear ownership.
Here are several issues I see often when people build a chart for the first time.
Dates Stored as Text
If Google Sheets treats a date as text, formulas may not calculate correctly. A cell that looks like January 6 may actually contain plain characters.
Test the cell with:
=ISNUMBER(D2)
If the result is FALSE, convert the value into a real date. Re-enter it using a recognized date format or use a date formula.
Timeline Headers Do Not Match the Task Dates
The timeline must contain real date values. Typing labels such as “Monday” or “Week 1” without an underlying date prevents the bar formula from working accurately.
Use actual dates and format them to display shorter labels.
Conditional Formatting Covers Too Few Rows
If your rule applies only to rows 2 through 20, new tasks added below row 20 will not receive timeline colors.
Apply the rule to a larger planned range, such as G2:AZ100, or extend it when you add more work.
Too Much Detail on One View
A chart with hundreds of tasks becomes difficult to read. Group related activities under phase headings and keep detailed notes elsewhere in the worksheet.
For example, show “Content production” as a phase and place individual article tasks beneath it. Use row colors or indentation to create hierarchy.
When a Google Sheets Gantt Chart Is the Right Choice
Google Sheets works well for small teams, short projects, and plans that need quick collaboration.
It is especially useful when you need a lightweight visual schedule for a campaign, product launch, event, or internal improvement project.
The low setup cost is attractive. A team can create a chart in minutes, share access, and discuss changes in one place.
The limitations become clearer as the project grows. Manual updates, weak dependency handling, permission complexity, and scattered communication can slow down larger teams.
Good Fit Example
A five-person marketing team planning a six-week product launch may need tasks for messaging, design, email creation, advertising, and reporting.
A Google Sheets chart can give everyone a shared timeline without requiring complex configuration.
Less Suitable Example
A product team managing several releases, hundreds of issues, approval stages, and cross-team dependencies may outgrow a manually maintained chart.
When a schedule changes often, automatic workflows and connected project records can reduce repetitive updates.
Project Planning Solution: ONES.com

Value Proposition
ONES.com combines project management and knowledge management in one platform. ONES Project provides structured planning, while ONES Wiki helps teams organize requirements, decisions, and project guidance.
It can suit teams that need more control than a manually maintained Gantt chart while preserving familiar Jira-compatible workflows.
Core Capabilities
Scattered task details → Unified project workspace → Clearer project visibility
When task details sit across separate conversations and planning pages, people lose context. ONES Project brings tasks, owners, dates, and status into a connected workspace.
Manual schedule updates → Custom workflows and fields → More consistent execution
A hand-built chart often depends on people remembering every update. Custom workflows and fields help teams standardize statuses, approvals, priorities, and ownership.
Limited timeline awareness → Built-in reporting → Faster progress reviews
Colored cells show timing, but they do not always explain project health. Built-in reporting gives teams a clearer view of progress, workload, and delivery trends.
Plugin-heavy workflows → Native project capabilities → Fewer moving parts
Teams sometimes add several extensions to cover planning, reporting, automation, and agile delivery. ONES Project includes these capabilities natively, which can reduce plugin dependence.
Rigid planning structures → Flexible workflows → Better support for different teams
Software, marketing, operations, and product teams often work differently. Custom workflows let each group reflect its actual approval and delivery process.
Separate sprint planning → Sprint management → Better iteration control
For agile teams, sprint planning inside the project workspace keeps planned work, active tasks, and completed items connected.
Repeated manual actions → Automation → Less administrative work
Automation can handle routine actions such as assigning work, changing statuses, notifying owners, or creating follow-up tasks.
Restricted deployment requirements → Cloud, on-premise, private cloud, and air-gapped options → More deployment flexibility
Some organizations cannot place project information in a standard public cloud environment. ONES.com supports cloud, on-premise, private cloud, and air-gapped deployments.
Migration concerns → Jira-compatible workflows → Easier transition for familiar teams
Teams already using Jira may want a Jira alternative without abandoning familiar planning patterns. ONES Project supports Jira-compatible workflows and offers full feature parity between its cloud and self-hosted versions.
Application Scenarios
A software team could use ONES Project for backlog planning, sprint execution, release tracking, and automated status changes. ONES Wiki could hold architecture guidance, release notes, and onboarding material.
A product launch team could connect campaign tasks, approval stages, launch milestones, and team guidance in one environment. That reduces the need to maintain a separate visual chart and scattered planning notes.
An organization with restricted network requirements could use an on-premise or air-gapped deployment while keeping project workflows available to internal teams.
Common Challenges and Practical Solutions
Challenge: The chart becomes too wide
Solution: Switch from daily columns to weekly columns when the planning horizon becomes longer. Keep daily detail in a separate planning view if necessary.
Challenge: Dates change constantly
Solution: Add a clear owner for schedule maintenance and review changes at a fixed weekly meeting. For complex dependency chains, consider a project platform with automation.
Challenge: Team members forget to update progress
Solution: Keep status values simple and make updates part of an existing stand-up or review. A chart is only useful when its details reflect current work.
Challenge: The chart shows timing but not responsibility
Solution: Add an owner column and use a consistent naming format. “Prepare onboarding email” is easier to manage when it includes a named owner and a defined completion condition.
Challenge: The chart contains too many unrelated tasks
Solution: Create separate views for major workstreams. A launch timeline, engineering plan, and training plan may be easier to understand than one oversized chart.
FAQs
Can I create a Gantt chart in Google Sheets without a template?
Yes. You can build one with task columns, start and end dates, a timeline row, and conditional formatting. The essential formula is =AND(G$1>=$D2,G$1<=$E2). This colors each timeline cell when its date falls within the task period.
What is the best date format for a Google Sheets Gantt chart?
Use real date values rather than typed labels. You can display them as 06 Jan, Jan 6, or another compact format. The visual appearance can change without affecting the underlying date calculations.
How do I show weekends in the timeline?
Keep weekends in the timeline if you want a continuous calendar view. If your team works only on weekdays, use NETWORKDAYS for duration calculations and apply a light gray fill to weekend columns for visual separation.
Can Google Sheets automatically move dependent tasks?
Basic conditional formatting does not reschedule dependent tasks. You can create advanced formulas or scripts, but manual updates may still be necessary. If your project has many linked activities, a project management platform may handle dependencies more reliably.
How many tasks can a Google Sheets Gantt chart handle?
There is no single practical limit. A small chart may work well with dozens of tasks, while hundreds of rows can become difficult to navigate and maintain. Group tasks by phase, use filters, and split large plans into focused views.
Conclusion
You can set up a useful Gantt chart in Google Sheets by creating task columns, entering dates, building a timeline, adding conditional formatting, and reviewing progress regularly.
The seven-step process gives you a practical visual schedule for small and medium-sized projects. Use milestones, status colors, and progress fields when the basic timeline is no longer enough.
But here's the truth: a chart only helps when the information stays current. Assign ownership, review changes consistently, and keep the layout easy to scan.
For simple planning, Google Sheets may be all you need. When dependencies, automation, reporting, restricted deployments, or cross-team coordination become more demanding, ONES.com can provide a more structured project management environment.