Skip to content

Sunburst diagram / year wheel for support function #7421

@mrrudin

Description

@mrrudin

Proposal

For overview / planning purposes I'd like a diagram to show a number of planned actions distributed over a yearwheel, i.e. a pie/sunburst diagram based on /grouped by calendar time spaces, like quarter, month, week, day.

It should be dynamic, based on today's date as base date for display, and nodes should be added based on a list of nodes with a corresponding CRON expression, to be able to calculate next occurrence over the coming year.

Use Cases

Display of planned activities, based on today's date to always be up-to-date.

Perfect for software maintenance support function, especially planned cloud upgrades etc.

Screenshots

Image

Syntax

::: mermaid
 yearwheel;
baseDate now                                                          %% or constant like 2026-01-01

A("Verify yearwheel", "0 8 1 * 1")                             %% first monday every year
B("Finance upgrade", "0 0 22 ? 1,4,7,10 6#3")         %% every quarter, third saturday, at 22 hours
C("Maintenance upgrade", "0 12 * 3 *")                   %% every year in march

:::

Implementation

This is a proposal which I'd love to see built into mermaid by the wonderful community.

EDIT:

Additional thoughts on requirements:

  • Quartz syntax for CRON expression is needed (crontab is not flexible enough).

Additional diagram configuration:

  • Control display period by time unit and number of units depending on planning granularity.
mermaid
 yearwheel;
baseDate now                                                          %% now (dynamic) | constant like 2026-01-01
baseCalendarUnit year                                             %% year | quarter | month as time unit
baseCalendarInterval 1                                            %% no of time units to display, e.g. one year, two quarters, six months

A("Verify yearwheel", "0 8 1 * 1")                             %% first monday every year
B("Finance upgrade", "0 0 22 ? 1,4,7,10 6#3")         %% every quarter, third saturday, at 22 hours
C("Maintenance upgrade", "0 12 * 3 *")                   %% every year in march

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions