A Gantt chart in MS Project is a row-per-task horizontal bar chart that places each task against a shared calendar timeline, and the same chart can be built from a compact task,start,end list in a browser tab using the Gantt Chart Maker. MS Project is the heavyweight answer for dependency planning, baselines, calendars, and resource tracking, but most quick schedules only need the bars themselves. If your goal is to communicate a list of dates and durations, you can skip the install, type 2 to 30 rows, and download a standalone SVG that mirrors what you previewed. The browser path treats MS Project as the source of inspiration for the same visual: same row, same calendar, same horizontal bar, no licenses or file format conversions. This guide shows exactly how the Gantt Chart Maker accepts strict YYYY-MM-DD dates, how inclusive end dates shape the bars, and when the day-tick versus month-tick logic kicks in.

how to make gantt chart in ms project
Make a Gantt Chart in MS Project (or a Browser Tab)

What a Gantt Chart Really Shows in MS Project

A Gantt chart in MS Project is, at its simplest, a row of horizontal bars where each bar's left edge sits on the task start date and its right edge sits on the task end date, all stacked along a shared calendar axis. The vertical axis lists task labels, the horizontal axis carries dates, and the bar length encodes duration. The bars are not work effort, percentage complete, or resource allocation; they are calendar occupancy. MS Project layers dependencies, baselines, percent complete, working calendars, and resource columns on top, but the core timeline geometry is identical to what the Gantt Chart Maker draws in a browser tab.

Two semantics matter most. First, dates are calendar dates, not business days: weekends are included unless a working calendar subtracts them, and the Gantt Chart Maker draws every calendar day the way MS Project does when no calendar is applied. Second, the end date is inclusive, so a task from 2024-01-01 to 2024-01-03 occupies three day cells, not two. That single rule changes how wide a bar looks, and getting it wrong shifts every downstream bar.

For an MS Project reader, the takeaway is that the Gantt Chart Maker's chart looks like MS Project's Gantt view because both rely on the same row-and-bar geometry. What it does not replicate is the project-management scaffolding underneath, and the next section makes that boundary explicit.

Why a Browser Gantt Maker Beats Spinning Up MS Project

The Gantt Chart Maker exists for the part of the Gantt workflow that is just dates and bars. MS Project is built for the wider job: dependencies, milestones, critical path, resource leveling, baselines, timesheets, and audit history. If your deliverable is a chart image to drop into a slide, a document, or an email, none of that scaffolding changes the picture you actually need to draw.

The browser path replaces that scaffolding with constraints. It accepts exactly the input format a Gantt chart needs — task, start date, end date — and refuses anything else. There is no file format to export from MS Project, no import step, no version skew between Project Standard and Project Online. Parsing, UTC date arithmetic, SVG construction, preview rendering, and Blob download all stay in the current tab, so a confidential roadmap never leaves the device. For the no-install, no-account path described in this Gantt Chart Maker free no-sign-up walk-through, the same three-step flow applies.

The practical upside is that you can iterate quickly. Paste a list, generate, eyeball the bars, fix a typo, regenerate. The exact SVG string that draws the visible preview also powers the download, so the file you save matches the markup you reviewed. If your schedule ever needs the heavier features MS Project provides — dependencies between tasks, working calendars that skip weekends, baselines that lock in a planned schedule for variance tracking — that is the moment to reach for MS Project itself.

Build the Chart in Three Browser Steps

  1. Enter an optional title (up to 100 UTF-16 code units) and paste 2 to 30 non-empty task rows. Every non-empty row must be task,start,end with exactly two literal commas, so each row expands into three fields. Leading and trailing whitespace around fields is trimmed, but quoted fields, escaped commas, and additional columns are unsupported.
  2. Use real UTC dates in exact YYYY-MM-DD form — four digits, a hyphen, two month digits, a hyphen, two day digits. April 31, February 29 in a non-leap year, slashes, and missing zero padding all fail the whole request, so rewrite the date before pasting. Each inclusive end date must sit on or after its start date.
  3. Generate, verify every bar and tick in the preview, then download the standalone SVG created from the exact preview string. The preview and the download are the same markup, so what you see is what you save.

For the worked example on this page, assume a three-task project spanning 2024-01-01 to 2024-01-10, which is 10 inclusive days. Each day's width equals the plot width divided by the inclusive domain day count, so day width = plot_width / 10. A task from 2024-01-01 to 2024-01-03 occupies three inclusive days, so its bar width = day width × 3, with x offset 0 because it starts on the earliest project day. A task from 2024-01-05 to 2024-01-08 starts on day offset 4 (four whole UTC days after the earliest start) and spans four inclusive days, so its x = day width × 4 and its width = day width × 4. Coordinates round to three decimals only when serialized, so the values used at runtime are exact, not display-rounded.

CSV-Lite Rules That Decide Whether Your Chart Generates

The Gantt Chart Maker is deliberately strict, because every relaxed rule is a silent visual bug waiting to happen. The table below summarises the input contract that determines whether generation succeeds.

RuleValueWhy it matters
Non-empty rows2 to 30Below 2 there is no timeline; above 30 the raw input budget cap dominates.
Commas per rowexactly 2Three fields: task, start, end.
Date formatYYYY-MM-DD, 10 charsLexical and calendar validation both pass.
Label lengthup to 80 UTF-16 code unitsOne unit over fails, no truncation.
Title lengthup to 100 UTF-16 code unitsOne unit over fails, no truncation.
Raw schedule inputup to 20,000 UTF-16 code unitsBlank lines ignored only after the budget check.
SVG outputup to 100,000 UTF-16 code unitsOne unit over fails, no suffix dropped.

Quoted fields, quoted commas, additional columns, escaped delimiters, and multiline fields are unsupported. A label that needs a comma must be rewritten without one before use, and one malformed row rejects the whole request — the parser never skips a bad row or returns a partial chart.

How Inclusive Dates and UTC Calendar Math Shape the Bars

Dates are validated as real proleptic Gregorian UTC calendar dates rather than passed through permissive string parsing. Four digits, a hyphen, two month digits, another hyphen, and two day digits are required. Invalid month zero or 13, April 31, non-leap February 29, slashes, missing zero padding, time text, and timezone suffixes all fail. Full UTC year setters avoid JavaScript's special numeric Date.UTC treatment of years 0 through 99, so the lexical year range 0000 through 9999 is supported end to end.

The chart describes calendar occupancy, not hours, business days, work effort, percentage complete, or resource capacity. The horizontal domain begins at the earliest task start and ends after the latest inclusive task day. Each day's width is the plot width divided by the inclusive domain day count. Bar x positions use whole UTC-day offsets, and widths use each task's inclusive day count. End dates are inclusive, so a task from January 1 through January 3 occupies three calendar-day cells. A task whose start and end match occupies one visible day cell.

If every task occurs on the same date, the shared domain is one day and every bar remains visible because the calculation never divides by a zero elapsed span. Overlapping tasks and duplicate labels are allowed and remain separate rows in input order, so two tasks with the same name still draw two bars stacked at their original position. No browser locale, current date, daylight-saving rule, or local timezone changes the layout — the bars land where the UTC calendar places them.

Reading the Output: Day Ticks, Month Ticks, and the SVG

Spans of 62 days or fewer use deterministic day ticks. The interval expands to keep roughly nine labels while always including the first date and the last date, Longer schedules switch to month ticks, and very long ranges choose a fixed month step calculated from the full month count rather than generating thousands of labels. This is deliberate axis sampling, not task truncation: every accepted task and its complete date width remain in the chart.

Schedule lengthTick modeLabel formatApproximate label count
62 days or fewerday ticksYYYY-MM-DDroughly 9 (first and last always shown)
More than 62 daysmonth ticksYYYY-MMfixed step based on total months

Tick labels, task labels, the optional title, and the accessible aria-label all use the same escaping. Ampersands, angle brackets, quotes, and apostrophes are converted to XML entities, so a task label like R&D <phase 1> renders as visible text, not as a malformed element. Script-looking text remains visible characters rather than an SVG element, which keeps the output safe to drop into a slide deck or a CMS. The SVG uses the W3C SVG 2 namespace, a fixed 1,100-pixel logical width, a row-dependent height, a white background, grid lines, labels, rect bars, title tooltips, viewBox, and an accessible role and label. Wide output scrolls in the preview rather than shrinking labels into an unreadable mobile width, so the chart stays legible on small screens.

When MS Project's Full Feature Set Still Matters

The Gantt Chart Maker is a chart, not a project-management system. It does not parse Microsoft Project files, dependencies, milestones, critical paths, holidays, working calendars, progress, assignees, costs, baselines, or timezone timestamps. It does not infer whether overlapping work is feasible or promise that a schedule is realistic. Use dedicated project-management software — MS Project among them — for dependency planning, collaboration, permissions, audit history, and operational commitments.

For everything else — a quick visual, a printed handout, a static timeline image for a proposal — the browser tool delivers the same row of bars you would see in MS Project's Gantt view, from a list you can type in under a minute. The Gantt Chart Maker is a faster fit when the timeline itself is the deliverable.