A Gantt chart is a horizontal bar timeline where every task gets a labeled bar plotted against a shared date axis, and Excel is the most common place where people build one. The standard Excel route asks you to enter tasks with start and duration values, insert a stacked bar chart, hide the start series, and reorder the axes until the bars line up over a date scale. It works, but it requires fiddling with chart formatting, helper columns, and number formatting that often breaks when a date shifts. For readers who want the same visual without the formatting work, the Gantt Chart Maker turns 2 to 30 simple task,start,end rows into a deterministic UTC SVG timeline entirely in the browser and gives you the exact preview back as a downloadable SVG. That makes it a cleaner option when your project only needs a clear, shareable schedule rather than a live spreadsheet tied to formula references.

how to make gantt chart in excel
how to make gantt chart in excel

Why Excel Gantt Charts Get Complicated

Excel does not ship a native Gantt chart type, so every Excel Gantt is a hand-built stacked bar chart with two series per task. The trick is to create a transparent start offset series that pushes the visible duration bar to the right, then format the horizontal axis as a date axis that starts at your earliest start date. When that date axis is wrong, the bars line up against the wrong days. When the helper columns are off by one, every task shifts. When you change a date, the chart often needs manual axis tweaks to look right again. The result is a chart that works, but only as long as you keep the underlying spreadsheet carefully formatted and remember each formatting step the next time you build one.

Building a Gantt Chart in Excel: Step by Step

Build a basic Gantt chart in Excel using only built-in chart features. No add-in is required for this version.

In column A, list each task name on its own row. In column B, enter each task's start date as a real date your locale recognizes. In column C, enter each task's duration in days. Optionally compute the end date in column D as start plus duration, which makes axis bounds easier to set later.

Select the task names together with the start and duration columns, then insert a chart. Choose the Bar chart type and pick the Stacked Bar subtype so each task becomes a horizontal stack of two segments, one invisible and one visible.

Right-click any bar and choose Format Data Series. Set the start series to No fill and No line so it disappears, leaving only the colored duration segments on the right side of each stack.

Right-click the horizontal axis and choose Format Axis. Set the minimum to your earliest start date and the maximum to your latest end date, with the Major unit set to a number of days that keeps the labels readable. If the axis shows numbers instead of dates, switch the axis number format to a date format.

Right-click the vertical axis, choose Format Axis, and check Categories in reverse order so the first task sits at the top of the chart instead of the bottom.

Finally, add data labels to the duration series if you want the day count next to each bar, then adjust colors and fonts to taste. Save the workbook, and the chart will only update cleanly when the underlying columns are reformatted correctly.

A Faster Browser Alternative

If the steps above feel heavier than your schedule deserves, the Gantt Chart Maker handles the same visual in fewer keystrokes. You paste a short text block of tasks, click once, and read the bars on a shared UTC timeline. The chart is local: no spreadsheet to format, no chart wizard to navigate, no helper columns to maintain. It is a good fit when you want a snapshot of the schedule for a status update, a slide, or a printed handout, rather than a live workbook that updates as formulas change.

How to Build Your Gantt Chart in the Browser

Follow these steps to produce a clean SVG timeline using the Gantt Chart Maker.

  1. Open the Gantt Chart Maker in your browser tab.
  2. Optionally enter a title at the top of the form.
  3. Paste your schedule into the input box. Use one non-empty line per task in the form task,start,end. Every non-empty line must contain exactly two commas, which gives three fields: the task label, the start date, and the end date. Use 2 to 30 lines for a valid chart.
  4. Format every date as YYYY-MM-DD using a real UTC calendar date, and make sure each end date is the same as or later than its matching start date.
  5. Click Generate. The preview shows one labeled bar per task against a shared date axis. Schedules of 62 days or fewer use day ticks; longer schedules use month ticks so the axis stays readable.
  6. Read every bar against its label and tick. Because the same SVG string powers the preview and the download, what you see is what the saved file contains.
  7. Click Download to save the standalone SVG. The file is the exact preview string, so no rerendering happens between the screen and the saved document.

Input Format and Date Rules

Because the parser is strict on purpose, it helps to know what the form accepts and what it rejects. The table below summarizes the rules.

AspectAcceptedRejected
Date formatYYYY-MM-DD with exactly 10 charactersSlashes, missing zero padding, time text, timezone suffixes, MM/DD/YYYY
Real calendar datesProleptic Gregorian UTC dates from year 0000 to 9999April 31, February 29 in a non-leap year, month 00 or 13
Row shapeOne non-empty line per task with exactly two commas and three fieldsQuoted fields, escaped commas, extra columns, multiline cells
End vs startEnd date on or after start date, both inclusiveEnd date earlier than start date
Label lengthUp to 80 UTF-16 code units per task labelAnything longer, with no truncation
Title lengthUp to 100 UTF-16 code units for the optional titleAnything longer, with no truncation
Raw input budgetUp to 20,000 UTF-16 code units of pasted scheduleAnything longer; padding with blank lines cannot bypass it
SVG output budgetUp to 100,000 UTF-16 code units of complete SVGAnything longer; no sampling or dropped suffix
Row count2 to 30 non-empty rows0, 1, 31, or more rows

A single malformed row rejects the whole request, so the parser never returns a partial chart. Duplicate labels and overlapping tasks are allowed and stay as separate rows in input order.

Why the Timeline Stays Exact

Several design choices make the output predictable. Dates are validated as real UTC calendar days rather than parsed permissively, so lexical edge cases like 2025-02-29 or 2025-13-01 fail before layout. Years are written with full UTC year setters, sidestepping JavaScript's special treatment of years 0 through 99. Each task's bar uses its inclusive day count, so a task that starts and ends on the same date still occupies one day cell on the axis. Day ticks are deterministic up to 62 days; beyond that, month ticks use a fixed month step chosen from the total month count, so longer schedules still get readable labels without sampling tasks away.

User strings are turned into safe SVG text using XML entities for ampersands, angle brackets, quotes, and apostrophes, while any control characters are replaced with U+FFFD. Numeric attributes come only from validated finite layout calculations, and coordinates are rounded to three decimals only when serialized. The result is a chart that reflects the exact data you pasted rather than whatever the browser happens to render, and a saved SVG that matches the preview markup.

Because every input is validated and every coordinate is serialized from the same source, you can paste the same schedule tomorrow and get the same chart back. The whole pipeline stays inside your browser tab, so no project data leaves the device. For Excel-specific needs like formula-linked duration, working-day calendars, or live percent-complete bars, keep using a spreadsheet. For a clean, shareable timeline that matches your typed input exactly, the Gantt Chart Maker is the lighter path.