Calendar Heatmap Generator

Paste any dated data, get a beautiful heatmap — customize colors, export PNG or SVG, no signup.

What it does

Any data source

Paste CSV, TSV, JSON, or space-separated date-value pairs. The smart parser auto-detects the format and common date styles (ISO, MM/DD/YYYY, Unix timestamps).

5 quick-start templates

Running miles, word count, habit tracking, GitHub commits, and daily revenue — sample data pre-loaded so the heatmap is visible the instant you arrive.

Fully customizable

6 color themes, 4 cell sizes, square/rounded/circle shapes, adjustable gap, show/hide month labels, day labels, legend, title, and subtitle.

PNG & SVG export

Download a pixel-perfect PNG at social (1200×630), Instagram square, 4K, or custom dimensions. Or export a clean, editable SVG for Figma, Illustrator, or Inkscape.

Shareable link

Generate a compressed URL that encodes your entire heatmap — data and settings — so anyone can see and edit your exact visualization.

Insights panel

Auto-computed stats: total, active days, longest streak, current streak, busiest day, busiest weekday, busiest month, and active percentage.

Multi-year support

View multiple years stacked vertically with a shared color scale for year-over-year comparisons.

100% private

Everything happens in your browser. Your data is never uploaded, stored, or transmitted anywhere.

How to use Calendar Heatmap Generator

  1. 1
    Paste or load your data

    Click a template chip to start with sample data, or paste your own in the format "YYYY-MM-DD,value" (one row per line). CSV upload and JSON array formats also work.

  2. 2
    Customize the look

    Choose a color theme, adjust cell size and shape, toggle month/day labels and the legend, and give your heatmap a title.

  3. 3
    Review the insights

    The right panel auto-computes your total, active days, longest streak, busiest day of week, and more.

  4. 4
    Export or share

    Click Export PNG to download a high-resolution image, Export SVG for a vector file, or Copy Share Link to send your heatmap to others.

When to use this

Runners and athletes

Paste daily mileage from a fitness log or Strava export to create a "My Year in Running" heatmap to share on social media.

Writers and NaNoWriMo participants

Track daily word count through November to visualize the sprint and share a motivational "My Year in Writing" image.

Habit trackers

Use binary (0 or 1) data to visualize a meditation streak, gym consistency, or daily reading habit across the year.

Indie hackers and founders

Plot daily signups, revenue, or shipped commits to create a compelling "Year in Review" card for Indie Hackers or Twitter.

Teachers and schools

Visualize student attendance patterns or assignment completion rates across the academic year.

Frequently Asked Questions

What data format does the heatmap generator accept?

The tool accepts several formats: CSV ("2026-01-15,5.2"), TSV (tab-separated), JSON arrays ([{"date":"2026-01-15","value":5.2}]), and space-separated pairs. Date formats supported include YYYY-MM-DD, MM/DD/YYYY, DD-MMM-YYYY, and Unix timestamps. A smart parser auto-detects the format — just paste and it works.

Is my data uploaded to any server?

No. All processing happens entirely in your browser using JavaScript. Your data never leaves your device and is never stored on any server. Even the shareable link encodes your data directly in the URL using LZ-string compression — no server involved.

Can I export the heatmap as a high-resolution image?

Yes. PNG export is available at four size presets: Social (1200×630 for Twitter/LinkedIn), Instagram Square (1080×1080), 4K (3840×2160 for print and wallpaper), and a custom size you specify. SVG export produces a clean vector file editable in Figma, Illustrator, or Inkscape.

How do I create a GitHub-style contribution graph for non-code data?

Paste your dated data in any format, select the "GitHub Green" color theme, and export. The layout is identical to GitHub's contribution graph: 53 weeks × 7 days, month labels on top, with 5 shades of green from empty to most active.

Can I show multiple years?

Yes. If your data spans multiple years, use the "Multi-year" view mode to see each year stacked vertically on a shared color scale — useful for year-over-year comparisons of training, writing, or revenue.

What is the shareable link and how long does it last?

The shareable link compresses your data and settings into the URL itself using LZ-string. There is no expiry because nothing is stored on a server — the link works as long as the URL exists. For very large datasets the URL may become long; the tool will warn you and offer alternatives.

Can I use this for habit tracking with yes/no data?

Yes — this is a great use case. Use 1 for days you completed the habit and 0 (or just omit the date) for days you didn't. The heatmap will show filled cells for active days and empty cells for inactive ones. The insights panel will compute your longest and current streak automatically.

Does the tool work offline?

Yes. Once the page has loaded, everything runs in your browser with no internet connection needed. Your last session is saved in your browser's localStorage so your data and settings persist between visits.

Related Tools