A Gantt chart in Google Sheets uses rows for tasks and colored bars to show when each one happens
A Gantt chart is a horizontal bar chart where each task gets its own row, and a colored bar stretches across the dates when that task runs. Google Sheets does not have a built-in Gantt chart tool, but you can build one using a combination of columns for dates and conditional formatting to create the bars. The result looks like a project timeline: you can see at a glance which tasks overlap, which ones come next, and whether the whole project is on track.
The basic structure is straightforward: one column lists your tasks, the next columns represent calendar dates, and you fill cells with a color or formula to show when each task is active. You do not need special add-ons or advanced formulas. A spreadsheet with ten tasks and a three-month timeline takes about fifteen minutes to set up.
Key Takeaways
- Set up one column for task names, then create columns for each week or month depending on your project length.
- Use conditional formatting with a formula to automatically color cells that fall within each task's start and end dates.
- Freeze the task name column so it stays visible when you scroll right across the timeline.
- Add a separate table with task names, start dates, and end dates so you can update the chart by changing those dates instead of manually recoloring cells.
Set up your task list and date columns
Start with a new Google Sheet. In column A, list your task names from row 2 downward—leave row 1 for headers. In row 1, type "Task" in A1. Then move to B1 and enter your first date. If your project runs three months, use one column per week: type the date in B1 (for example, "1/1/2025"), then in C1 type "1/8/2025", and continue across. Google Sheets will recognize these as dates and you can use the fill handle to auto-generate the rest.
To auto-fill dates, click B1, type your first date, then click C1 and type the second date. Select both cells, then drag the small square at the bottom-right corner of C1 to the right as far as you need. Google Sheets will continue the pattern. If you prefer monthly columns instead, use the first day of each month: "1/1/2025", "2/1/2025", "3/1/2025", and so on.
In column A below your task names, add a row for "Start Date" and another for "End Date"—you will use these to store the actual dates for each task, separate from the visual timeline. This keeps your chart flexible: when a task date changes, the bars update automatically. Leave a blank row between your task list and this reference section so the layout stays clear and straightforward to read.
Create a reference table for task dates
Below your main chart area, create a small reference table. Use three columns: Task Name, Start Date, and End Date. List each task name again, then enter the date each task begins and ends. For example, if "Design mockups" starts on January 15 and ends on January 29, type those dates in the Start Date and End Date columns for that row. Use the same date format you used in your timeline headers (for example, all as "1/15/2025").
This reference table is the control center for your chart. Every time you need to change when a task runs, you update the dates here, and the colored bars in your chart shift automatically. Without this table, you would have to manually recolor cells every time a important date moved. Keep the reference table visible on the same sheet so you and anyone else working on the project can see both the timeline and the source data at once.
explore conditional formatting to create the bars
Click on cell B2 (the first cell in your timeline grid, below your first date). Select the entire range of cells that will hold your bars—for example, B2:M11 if you have ten tasks and twelve weeks. Go to the Format menu, then select Conditional Formatting. In the "Format rules" panel on the right, choose "Custom formula is" from the dropdown.
In the formula box, enter this formula (adjust the column letters and row numbers to match your sheet):
=AND($B$1>=INDEX($A$13:$A$22,ROW()-1,1),INDEX($A$13:$A$22,ROW()-1,2)>=$B$1)
This formula checks whether the date in the column header (row 1) falls between the start and end dates for that task in your reference table. If it does, the cell gets colored. Replace $A$13:$A$22 with the actual range of your reference table, and adjust ROW()-1 if your task list does not start in row 2. Choose a fill color (blue, green, or any color you prefer) and click Done.
The bars will now appear automatically in any cell where the column date falls within a task's start and end dates. If a task runs from January 15 to January 29 and you have columns for January 15, 22, and 29, those three cells will be colored. Cells outside that range stay blank. Test the formula by changing a date in your reference table—the bars should shift when ready.
Freeze the task column so it stays visible when scrolling
Click on column B (the first date column). Go to the View menu, then select "Freeze" and choose "1 column". This locks column A in place so when you scroll right to see later dates, the task names stay visible on the left side. Your chart becomes much easier to read, especially if it spans many months.
Freezing the task column is especially useful if you are presenting the chart to others or if the timeline extends beyond what fits on one screen. Team members can scroll through the dates without losing track of which row represents which task.
Add labels and adjust the layout for clarity
Widen column A so task names are fully visible. Double-click the border between columns A and B at the top to auto-fit the width. Make row 1 bold so the dates stand out as headers: select row 1, then click the Bold button. If your timeline is long, consider rotating the date headers 45 degrees so they take up less vertical space. Select row 1, go to the Format menu, choose "Text rotation", and pick "Diagonal up".
Add a legend or note below your chart explaining what the colors mean. For example, type "Blue = task in progress" in a cell below your reference table. If you have multiple projects or priority levels, use different colors for different task types and document what each color represents. A clear legend helps anyone viewing the chart understand what they are looking at without having to ask.
Update tasks and dates without rebuilding the chart
To add a new task, insert a new row in your main chart area and add the task name in column A. Then add that same task name and its dates to your reference table below. The conditional formatting will automatically color the correct cells in the new row without any extra work on your part.
To change when a task runs, find it in your reference table and update the Start Date or End Date. The bars in your chart will shift when ready. You never have to touch the colored cells themselves—the formula handles it. This is why the reference table matters: it separates the data (when tasks actually happen) from the display (the colored bars).
If you need to extend your timeline, add new date columns to the right of your existing ones. Select the last date column, then drag the fill handle to create more columns with the next dates in the sequence. The conditional formatting will automatically explore to these new columns because it covers the entire range you selected when you set it up.
Frequently Asked Questions
Can I show task dependencies, like "Task B starts after Task A ends"?
Google Sheets Gantt charts do not visually show dependencies with arrows the way dedicated project tools do. However, you can add a "Depends on" column in your reference table to document which tasks must finish before others start, and arrange your task rows in the order they happen. Some users add notes or use indentation to show the relationship.
What if my project is very long, like a year or more?
Use monthly columns instead of weekly ones to keep the chart from becoming too wide. Type the first day of each month in your date headers and adjust your reference table dates to match. The conditional formatting will still work—it just groups more days into each column.
Can I share this chart with my team and have them edit it?
Yes. Share the Google Sheet with edit permissions. Team members can update task dates in the reference table, and the chart updates for everyone. Make sure they understand not to manually color cells—all changes should go through the reference table so the formula stays accurate.
How do I handle tasks that repeat or happen on a schedule?
Create a separate row for each occurrence of the repeating task. For example, if "Weekly standup" happens every Monday for three months, add three rows—one for each month—with the same task name and different start and end dates. This keeps the chart clear and lets you track each instance separately.
What if I want to show task progress, like 50% complete?
You can use a second color or pattern to show partial completion. Create another conditional formatting rule with a different formula that checks for a "Progress" column in your reference table. For example, if a task is 50% complete, color half the cells one shade and half another. This requires more setup but gives a visual sense of how far along each task is.