Guide
Jul 15, 2026Updated Sep 29, 20267 min readBy Andrii

Gantt charts in Slack: lightweight timelines with Mermaid

Create a Mermaid Gantt chart in Slack to show a small plan's tasks, dependencies and milestones. This example explains the syntax, renderer choices, and when a live project tracker is the better source of truth.

Illustration for Gantt charts in Slack: lightweight timelines with Mermaid

A Gantt chart places tasks as bars on a time axis; position shows the start date and bar length shows duration, as described in the Mermaid Gantt reference. To make one visible in Slack, write a Mermaid gantt block and render it through a Slack app. Use after for task dependencies and milestone for a point-in-time checkpoint; keep task assignment, completion status and the authoritative schedule in the project tracker.

Slack's message formatting guide documents code snippets; the Mermaid Preview Slack listing describes its /mermaid command and PNG upload. Arialine renders valid pasted Mermaid without an AI call. When workspace saving is on and the workspace has board capacity, newly pasted Mermaid is kept on a versioned board in the Slack conversation. If an owner or admin turns saving off, render-only Mermaid pasted or attached to Slack is shown once without a board or version. If a request pairs pasted Mermaid with an edit or repair, Arialine saves the source needed to create or update the board. The privacy setting does not affect edits to existing boards. Normal plan limits still apply: Arialine's pricing page lists up to three saved boards and eight versions per board on Free. At the board cap, render-only valid Mermaid still appears as a one-off. A request that creates a new board needs board capacity; editing an existing board uses that board's version allowance. A board at its version cap cannot accept another version. See the security guide, pasted-Mermaid privacy workflow, and Mermaid in Slack guide for the controls and workflow.

Choose the chart for the job

A Mermaid Gantt chart is useful when the Slack discussion needs a shared view of the sequence and the dates that could move. It is not an assignment board or a live project schedule. A useful rule is to chart the handoffs and decision points the conversation is about, then link the source ticket or plan.

What the team needs A suitable option What to keep in mind
A quick picture from Mermaid source Mermaid Preview posts a rendered PNG from its /mermaid command. The shared artifact is an image; keep the authoritative source somewhere teammates can update.
An editable diagram whose discussion and revisions stay in Slack When workspace saving is on and board capacity remains, Arialine turns newly pasted Mermaid into a versioned board tied to the Slack conversation. Existing boards remain editable if saving for new Mermaid is later turned off, subject to the workspace's normal version limit. It does not assign project work, track task status or sync a schedule with a tracker.
A task-level schedule with owners and dependencies Asana offers a Gantt view for project work, alongside task owners, dates and dependencies. Keep task status and execution data in Asana; a Mermaid rendering in Slack does not sync back to it.
A project-level roadmap with milestones and project dependencies Linear Timeline is designed for planning projects, milestones and dependencies. Timeline displays projects, not individual issues. Use an issue-level view when the schedule needs to show task dates or owners.

For a closer look at the Slack rendering choices, see the Mermaid integration comparison and Arialine's Mermaid-in-Slack use case.

A Mermaid Gantt example you can adapt

This billing migration has two preparation tasks in parallel. Backfill waits until both are finished, then reconciliation gates the cutover. Replace the sample dates, tasks and assumptions with the schedule your team has agreed to.

gantt
    dateFormat YYYY-MM-DD
    axisFormat %b %d
    title Billing migration
    excludes weekends
    section Prepare
    Freeze schema       :freeze, 2026-10-05, 1d
    Provision standby   :standby, 2026-10-05, 2d
    section Migrate
    Backfill            :backfill, after freeze standby, 2d
    Reconcile sample    :reconcile, after backfill, 1d
    section Cutover
    Go-no-go decision   :milestone, go, after reconcile, 0d
    Switch traffic      :cutover, after go, 1d
    Observe             :observe, after cutover, 2d

The Mermaid Gantt reference explains the syntax. A separate Gantt chart example from Arialine's diagram gallery shows overlapping tasks on a rendered timeline:

Payments migration Gantt chart with architecture review, overlapping payment-service and retry-queue work, and a gradual rollout.

Text description: The timeline covers September 1–28, 2026, across Design, Build and Launch. Architecture review runs September 1–6, followed by security review from September 6–10. In Build, the new payment service runs September 10–22 while the retry queue runs September 10–18, so the tasks overlap. Gradual rollout follows from September 22–28. A red vertical marker appears at September 26, but the graphic does not label what it represents.

Read the example in this order:

  1. dateFormat describes dates in the source. axisFormat controls the labels shown on the time axis.
  2. The schema freeze and standby provisioning start on the same date, so they overlap. Mermaid Gantt tasks are sequential by default; give independent tasks explicit dates.
  3. after freeze standby starts backfill after the later of the two predecessor tasks. Task IDs such as freeze and standby let later rows refer to the intended work even if its visible label changes.
  4. milestone with 0d marks the go/no-go point after reconciliation. A milestone marks an instant; it is not a task with duration.
  5. excludes weekends omits Saturday and Sunday from duration calculations. Mermaid extends a bar to preserve its specified working duration; an excluded day inside a task interval does not appear as an internal gap.

The code uses dates only, not a time-of-day or timezone. If a cutover must happen at a specific hour, write the time zone beside the chart and verify the chosen Slack renderer handles the time format you use.

What Mermaid encodes, and what it cannot verify

Mermaid draws the dates and relationships written in the source. It cannot confirm that a task has an available owner, that an estimate is realistic, or that an external approval will arrive on time. Keep those assumptions beside the chart or in the linked work tracker.

A few syntax details prevent misleading schedules:

  • after taskA taskB means the task waits for both predecessors and begins after the one that finishes last. This is a finish-to-start relationship; it does not record why the predecessor is late.
  • active and done are tags in the Mermaid source. They do not receive status updates from a task tracker, so someone must change them manually.
  • crit styles a task marked as critical. Mermaid's Gantt syntax does not calculate critical-path duration or schedule float; do not treat the color as a project-risk analysis.
  • Weekend exclusions are a calendar assumption, not a staffing calendar. State the working week and any holidays that change the dates.

If the work is still tentative, label the dates as estimates and name who can approve a change. A bar ending on a date is not evidence that the task will finish then.

Keep one schedule authoritative

When an upstream date moves, update the source of truth and say why the dependent milestone changed. If the Mermaid chart is the team's schedule, edit that board in its Slack thread and keep the prior version available for context. Existing boards remain editable when saving for newly pasted Mermaid is turned off, subject to the workspace's normal version limit. If Linear, Asana or another project system owns the work, link that plan in Slack and treat a Mermaid rendering as a dated communication snapshot. Manually maintaining both as if they were live creates two schedules that can disagree.

Arialine is useful when the team wants to revise a Mermaid diagram from the same Slack conversation: a teammate can request a change in the board thread, and the resulting version retains its requester and source message. This remains true for existing boards when saving for new Mermaid is turned off, subject to the workspace plan's version limit. For actual assignments, task state, workload planning or tracker synchronization, keep using the project tool. For process branches rather than dates, use a Mermaid flowchart in Slack.

FAQ

Can Slack display a Mermaid Gantt chart without an app?

A Mermaid code block is source text. To display the chart, use a Mermaid-capable Slack app. Mermaid Preview's Marketplace listing documents the /mermaid command and PNG output; Arialine's rendering guide covers its editable board workflow.

Can a task wait for two other tasks?

Yes. Give each predecessor an ID and list both IDs after after; Mermaid starts the dependent task after the latest predecessor end date. Use this when work requires both inputs, not just one.

Does Mermaid calculate the critical path?

No. The crit tag styles a task that the author marks as critical; the Gantt syntax does not infer a critical path, resource constraints or float. Use a project scheduler if you need those calculations.

Can I show a cutover time as well as a date?

The example uses day-level dates. Mermaid also documents hour tokens such as HH for date input, but the timezone should still be stated explicitly and the chart checked in the Slack app that will render it. For a maintenance window, include the exact time and timezone in the surrounding Slack text.

About the author

Andrii

Andrii writes and maintains Arialine's product guides. Articles are checked against the shipped product and linked vendor documentation before substantive updates are dated.

Try it in context

Bring Arialine into your Slack

Render Mermaid in Arialine, then revise an existing board from its Slack thread within the current plan limits.