Heatmap Tracker

by Maksim Rubanau
5
4
3
2
1
Score: 56/100

Description

Category: Data Visualization

The Heatmap Tracker plugin is a powerful tool for visualizing data over a calendar year in Obsidian. With this plugin, you can create customizable heatmaps to track habits, project progress, and other important data points. The plugin offers a range of features, including yearly heatmap visualization, interactive navigation, and flexible data entries with tooltips. You can also define your own color schemes and intensity ranges to match your data's theme. Additionally, the plugin allows for monthly separation options and highlights the current day for easy identification.

Reviews

  • Maxim Rubanov
    Reviewed on Dec 10th, 2025
    No review text provided.

Stats

210
stars
33,770
downloads
17
forks
526
days
19
days
39
days
24
total PRs
1
open PRs
5
closed PRs
18
merged PRs
57
total issues
21
open issues
36
closed issues
129
commits

Latest Version

a month ago

Changelog

What's Changed

New Contributors

Full Changelog: https://github.com/mokkiebear/heatmap-tracker/compare/2.1.7...2.2.0

README file from

Github

Heatmap Tracker plugin for Obsidian

ko-fi

The Heatmap Tracker plugin for Obsidian is a powerful and customizable tool designed to help you track, visualize, and analyze data over a calendar year. Perfect for habit tracking, project management, personal development, or any kind of data visualization, this plugin enables you to create beautiful, interactive heatmaps directly within Obsidian. Whether you’re monitoring progress, visualizing trends, or staying on top of daily goals, the Heatmap Tracker enhances your productivity and organization. Discover its intuitive features, flexible customization options, and seamless integration with Obsidian in the detailed guide below.

Tip: Check Example Vault. There're lots of good examples (and I update it often).

Prerequisites

This plugin requires the Obsidian Dataview plugin to be installed and enabled to automatically fetch data from your notes.

Getting Started

  1. Install Dataview: Ensure the Dataview plugin is active in your Obsidian vault.
  2. Add Data to Daily Notes: Add a frontmatter property to your daily notes (e.g., YYYY-MM-DD.md) that you want to track.
    • Numeric: photo-taking: 10
    • Boolean: photo-taking: true (counts as 1)
  3. Insert Heatmap: Use the command Insert Heatmap Tracker to generate a heatmap through the interactive modal.

Basic Usage

This plugin comes with frontmatter tracking out of the box. You can use the heatmap-tracker codeblock with the following parameters:

```heatmap-tracker
property: <frontmatter_property_key>
```

This will look for frontmatter_property_key in your daily notes and activate a spot on the heatmap wherever that property is set.

You can also use an array of property names as such:

```heatmap-tracker
property: [<frontmatter_property_key_1>, <frontmatter_property_key_2>, ...]
```

This will aggregate the values of all specified properties on the heatmap.

Basic Usage 2.0

You can add a heatmap tracker using command: Insert Heatmap Tracker. This is the easiest way to get started.

Advanced Usage

If you want something more involved, you may use a dataviewjs codeblock as such (update trackerData with your own dataset to visualize custom data points):

// Update this object
const trackerData = {
    entries: [],
    separateMonths: true,
    heatmapTitle: "This is the title for your heatmap",
    heatmapSubtitle: "This is the subtitle for your heatmap. You can use it as a description.",
}

// Path to the folder with notes
const PATH_TO_YOUR_FOLDER = "daily notes preview/notes";
// Name of the parameter you want to see on this heatmap
const PARAMETER_NAME = 'steps';

// You need dataviewjs plugin to get information from your pages
for(let page of dv.pages(`"${PATH_TO_YOUR_FOLDER}"`).where((p) => p[PARAMETER_NAME])){
    trackerData.entries.push({
        date: page.file.name,
        // Use absolute file path so clicks open the exact note (for cases when you have multiple notes with the same name)
        filePath: page.file.path,
        intensity: page[PARAMETER_NAME],
    });
}

// Optional: set base path so new files are created here if missing
trackerData.basePath = PATH_TO_YOUR_FOLDER;

renderHeatmapTracker(this.container, trackerData);

Notes

  • If you provide filePath for each entry (page.file.path), clicking a heatmap box opens that exact file. If the file is missing, the plugin offers to create it at the same path.
  • If filePath is not set on a box but trackerData.basePath is provided, the plugin proposes creating/opening trackerData.basePath/YYYY-MM-DD.md.
  • If neither is available, it falls back to the Daily Notes settings (folder/format) via the Daily Notes API.

Tracker Settings Documentation

You can also read about parameters in EXAMPLE_VAULT (there're examples).

year

  • Type: number
  • Default: Current year (new Date().getFullYear())
  • Description: Specifies the year for which the heatmap should display data by default.

colorScheme

  • Type: object
  • Default:
{
  "paletteName": "default",
  "customColors": []
}
  • Description: Defines the color scale used for representing different intensity levels in the heatmap. Each color corresponds to a specific range of data intensity.

customColor

  • Type: string
  • Default: undefined
  • Description: Entry property. Sets the color for specific entry. If you want some entry (based on the condition) to have a different color, you can set it here.

entries

  • Type: array
  • Default:
[
  { "date": "1900-01-01", "customColor": "#7bc96f", "intensity": 5, "content": "" }
]
  • Description: A list of data entries for the heatmap. Each entry includes:
    • date: The date of the entry (ISO string format).
    • customColor: The color for that entry.
    • intensity: The data intensity for that date.
    • content: Optional tooltip or note associated with the date.

showCurrentDayBorder

  • Type: boolean
  • Default: true
  • Description: Indicates whether the current day should be highlighted with a border on the heatmap.

defaultEntryIntensity

  • Type: number
  • Default: 4
  • Description: The default intensity assigned to new data entries if no intensity is explicitly specified.

intensityScaleStart

  • Type: number
  • Default: 1
  • Description: The minimum value for the intensity scale. Used to determine the color mapping for the lowest intensity values in the heatmap.

intensityScaleEnd

  • Type: number
  • Default: 5
  • Description: The maximum value for the intensity scale. Represents the highest possible intensity that can be mapped to the color scale.

excludeFalsy

  • Type: boolean
  • Default: undefined (falsy values are included)
  • Description: When set to true, entries with falsy intensity values (0, undefined, null, false) will be excluded from the heatmap.

basePath

  • Type: string
  • Default: undefined
  • Description: Base folder used to collect entries. If set, the plugin will propose creating new files in this folder when clicking on empty heatmap boxes.

separateMonths

  • Type: boolean
  • Default: true
  • Description: Determines whether months should be visually separated within the heatmap layout.

insights

  • Type: array
  • Default: []
  • Description: Powerful property for calculating and displaying your own insights in Statistics. Check this example.

layout

  • Type: "default" | "monthly"
  • Default: "default"
  • Description: Controls the heatmap grid arrangement. "default" renders the traditional GitHub-style week-column grid. "monthly" renders one row per month with days 1–31 as columns, providing a compact calendar-style view.

monthsToShow

  • Type: number
  • Default: undefined (shows full year)
  • Description: Show the current month plus the N previous months. For example, monthsToShow: 3 displays 4 rows (current month + 3 prior). Takes precedence over daysToShow and startDate/endDate. Best used with layout: "monthly".

daysToShow

  • Type: number
  • Default: undefined (shows full year)
  • Description: Show the last N days from today. Takes precedence over startDate/endDate but is overridden by monthsToShow.

startDate

  • Type: string (format: YYYY-MM-DD)
  • Default: undefined
  • Description: First date to display. Must be used together with endDate. Overridden by daysToShow or monthsToShow.

endDate

  • Type: string (format: YYYY-MM-DD)
  • Default: undefined
  • Description: Last date to display. Must be used together with startDate. Overridden by daysToShow or monthsToShow.

To be used with Obsidian Dataview, but could be used standalone or with other plugins as well (if you know some javascript).

📦 Plugin Features

Roadmap

📍 Check out the Roadmap to see what's planned for the future!

Development (Windows/Mac):

npm run dev - will start an automatic TS to JS transpiler and automatically copy the generated JS/CSS/manifest files to the example vault when modified (Remember to run npm install first).

After the files have been transpiled, the hot-reload plugin (https://github.com/pjeby/hot-reload) then reloads Obsidian automatically. Hot-reload is installed in the example vault by default. its used to avoid restarting obsidian after every change to code.
(remember to add an empty .hotreload file to "EXAMPLE_VAULT/.obsidian/plugins/heatmap-tracker/" if not already present, as this tells hot-reload to watch for changes)

npm run build generates the files ready for distribution.

 

Tip: ctrl-shift-i opens the devtools inside Obsidian.


Inspired by:

https://github.com/Richardsl/heatmap-calendar-obsidian

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Obsidian Graphviz
4 years ago by Feng Peng
Graphviz plugin for obsidian md.
Big Calendar
4 years ago by Boninall
Big Calendar in Obsidian, for manage your events in a day/week/month and see agenda too!
Heatmap Calendar
4 years ago by Richard Slettevoll
An Obsidian plugin for displaying data in a calendar similar to the github activity calendar
Desmos
4 years ago by Nigecat
Embed graphs directly into your obsidian notes
Release Timeline
4 years ago by cakechaser
Diagrams.Net
4 years ago by Jens M Gleditsch
This repository contains a plugin for Obsidian for inserting and editing diagrams.net (previously draw.io) diagrams.
Habit Tracker
4 years ago by David Moeller
A Plugin to display a Habit Tracker in Obsidian.
Google Calendar
4 years ago by YukiGasai
Add Google Calendar inside Obsidian
Dirtreeist
3 years ago by kasahala
Render a directory Structure Diagram from a markdown lists in codeblock.
D2
3 years ago by Terrastruct
The official D2 plugin for Obsidian. D2 is a modern diagram scripting language thats turns text to diagrams.
Link Exploder
3 years ago by Ben Hughes
Adamantine Pick
3 years ago by Urist McMiner
Embeddable Pikchr(https://pikchr.org) diagrams renderer plugin for Obsidian(https://obsidian.md)
Canvas Filter
3 years ago by Ivan Koshelev
Obsidian Canvas plugin that let's you show only pages / arrows with specific tags / colors / connections.
Habit Calendar
3 years ago by Hedonihilist
Monthly Habit Calendar for DataviewJS. This plugin helps you render a calendar inside DataviewJS code block, showing your habit status within a month.
Optimize Canvas Connections
3 years ago by Félix Chénier
An Obsidian plugin that declutters a canvas by reconnecting notes using their nearest edges
Tasks Calendar Wrapper
3 years ago by zhuwenq
This plugin currently provides a timeline view to display your tasks from your obsidian valut, with customizable filters and renderring options.
OZ Calendar
3 years ago by Ozan Tellioglu
Canvas Links
3 years ago by aqav
Show the links between "Canvas" and "File"
Lilypond
3 years ago by DOT-ASTERISK
Lilypond for Obsidian
Chemical Structure Renderer
3 years ago by xaya1001
Render chemical structures from SMILES strings into PNG or SVG format using Ketcher and Indigo Service.
Time Ruler
3 years ago by Joshua Tazman Reinier
A drag-and-drop time ruler combining the best of a task list and a calendar view (integrates with Tasks, Full Calendar, and Dataview).
Laws of Form
3 years ago by Kevin German
ICS
3 years ago by muness
Generate Daily Planner from one or more ical feeds
BattleSnake Board Viewer
3 years ago by EnderInvader
Plugin to render battlesnake boards in Obsidian
Nifty Links
3 years ago by x-Ai
Generating elegant, Notion-styled rich link cards to enhance your note-taking experience.
Lunar Calendar
3 years ago by OSmile
obsidian插件,一个支持农历的日历插件。
MagicCalendar
3 years ago by Vaccarini Lorenzo
An obsidian plugin that exploit a natural language processing engine to find potential events and sync them with iCalendar
Tracker+
3 years ago by GreaterThan (original by pyrochlore)
A plugin for Obsidian that tracks and visualizes in your notes. A continuation of the plugin originally developed by @pyrochlore
iCal
2 years ago by Andrew Brereton
This is a plugin for Obsidian that searches your vault for tasks that contain dates, and generates a calendar in iCal format that can be imported into your preferred calendar application.
Show Whitespace
2 years ago by Erin Schnabel
Show leading/trailing whitespace
Desk
2 years ago by David Landry
A desk for obsidian
Note Gallery
2 years ago by Pash Shocky
A masonry note gallery for obsidian.
Storyclock Viewer
2 years ago by Jonathan Fisher
Obsidian plugin for creating a storyclock
Single File Daily Notes
2 years ago by Pranav Mangal
An Obsidian plugin to create and manage daily notes in a single file
Markline
2 years ago by 闲耘
Markline: Markdown timeline view in Obsidian.
Contribution Graph
2 years ago by vran
generate interactive gitxxx style contribution graph for obsidian, use it to track your goals, habits, or anything else you want to track.
Journals
2 years ago by Sergii Kostyrko
Mathematica Plot
2 years ago by Marcos Nicolau
Insert functions on Obsidian using Wolfram Mathematica!
Arrows
2 years ago by artisticat
Draw arrows across different parts of your notes, similar to on paper
Alfonso Money Manager
2 years ago by SmartLifeGPT Innovation
This is the repository for the obsidian plugin of the Alfonso Money Manager mobile application
CardNote
2 years ago by cycsd
Help you extract your thoughts more quickly in canvas
Graph Link Types
2 years ago by natefrisch01
Link types for Obsidian graph view.
Canvas Mindmap Helper
2 years ago by Tim Smart
Advanced Canvas
2 years ago by Developer-Mike
⚡ Supercharge your canvas experience! Graph view integration and unlimited styling options empower flowcharts, dynamic presentations, and interconnected knowledge.
historica
2 years ago by Nhan Nguyen
Not (smart) to help you create your timeline in obsidian like a ... bro
Date Inserter
2 years ago by namikaze-40p
An Obsidian plugin that lets you insert a date at the cursor position using a calendar.
Calendarium
2 years ago by Jeremy Valentine
The ultimate Obsidian plugin for crafting mind-bending fantasy and sci-fi calendars
Persian Calendar
2 years ago by Hossein Maleknejad
Persian Calendar for Obsidian.md
Mehrmaid
2 years ago by huterguier
Rendering Obsidian Markdown inside Mermaid diagrams.
Dust Calendar
2 years ago by 纳米级尘埃
obsidian 日历插件
Mindmap
2 years ago by YunXiaoYi
An Obsidian plugin for creating Mindmaps.
Calendar Event Sync
2 years ago by Stephen Dolan
Set the title of your note to the current event
Graph Banner
2 years ago by ras0q
An Obsidian plugin to display a relation graph view on the note header.
Smart Connections Visualizer
2 years ago by Evan Moscoso
Visualize your notes and see links to related content with AI embeddings. Use local models or 100+ via APIs like Claude, Gemini, ChatGPT & Llama 3
Datepicker
2 years ago by Mostafa Mohamed
Datepicker widget for Obsidian.
NyanBar
2 years ago by xhyabunny
Give life to your Obsidian notes with NyanBar !
Chinese Calendar
2 years ago by DevilRoshan
在obsidian中使用的更符合中国习惯的日历插件。
Magic Move
2 years ago by imfenghuang
Animating Code Blocks in Obsidian
Daily Statistics
2 years ago by yefengr
obsidian daily statistics
Mahjong Renderer
2 years ago by hypersphere
Canvas Explorer
2 years ago by Henri Jamet
A plugin that enables users to explore their vault by iteratively adding or ignoring linked notes, ultimately generating a customizable canvas that visually represents the preserved notes and their connections.
Diarian
2 years ago by Erika Gozar
All-in-one journaling toolkit.
Morgen Tasks
2 years ago by Morgen AG
Calendar
6 years ago by Liam Cain
Simple calendar widget for Obsidian.
Neo4j Graph View
5 years ago by Emile van Krieken
Chessboard Viewer
5 years ago by Davide Aversa
Plugin to render chessboards in Obsidian using chessboardjs
Excalidraw
5 years ago by Zsolt Viczian
A plugin to edit and view Excalidraw drawings in Obsidian
Argument Map with Argdown
5 years ago by amdecker
Habit Tracker
5 years ago by duo
This plguin for Obsidian creates a simple month view for visualizing your punch records.
Map View
5 years ago by esm
Interactive map view for Obsidian.md
WaveDrom
5 years ago by Alex Stewart
Jump-to-Date
5 years ago by TfTHacker
Jump to a date via a convenient popup form. This plugin is a part of the Obsidian42 family of Obsidian plugins.
Markmind
5 years ago by Mark
A mind map, outline for obsidian,It support mobile and desktop
Itinerary
5 years ago by Adam Coddington
Make planning your trip or event easier by rendering a calendar from event information found in your notes.
Lineup Builder
4 years ago by James Fallon
An Obsidian plugin that lets you build football lineups
Mapbox Location Image
2 years ago by Aaron Czichon
Render a mapbox location image based on provided coordinates
Poker Range
2 years ago by marplek
Easily create, view, and interact with poker hand ranges in your obsidian.
InfraNodus AI Graph View
2 years ago by Nodus Labs
Advanced graph view for Obsidian: text analysis, topic modeling, and AI with InfraNodus AI text analysis tool: https://infranodus.com
Daily notes calendar
a year ago by bartkessels
Quickly navigate your vault using a calendar view, this plugin allows you to create and navigate to periodic notes and notes that are created on a specific date.
Activity Heatmap
a year ago by Zak Hijaouy
Folder Canvas
a year ago by Nancy Lee
Generate a canvas view of your folder structure
Class Relation Visualization
a year ago by Yong
Kale Graph
a year ago by Oli
Render mathematical graphs in Obsidian
NodeFlow
a year ago by LincZero
Render node streams like `ComfyUi`, `UE`, `Houdini`, `Blender`, etc., to make it easy to write relevant notes. json describes the chart, compared to screenshots, making it easier to modify later. The plugin is also compatible with blogs.",
Easy Timeline
a year ago by Romeliun
The Easy Timeline plugin for Obsidian allows you to create timelines easily.
Keep the Rhythm
a year ago by Ezben
An Obsidian plugin to track your daily word count through a heatmap.
Boardgame Search
a year ago by Marlon May
A plugin to create notes for boardgames based on the BGG API
ShaahMaat-md
a year ago by Mihail Kovachev
Mahgen Renderer
a year ago by Michael Francis Williams
Obsidian plugin to render mahgen automatically
Enhanced Canvas
a year ago by RobertttBS
When editing on Canvas, properties and Markdown links to notes are automatically updated, enabling backlinks in Canvas.
Every Day Calendar
a year ago by QuBe
Obsidian plugin to create calendars inspired by Simone Giertz's Every Day Calendar
Flowcharts
a year ago by land0r
Flowchart Plugin for Obsidian – Create and customize flowcharts seamlessly within your Obsidian vault. Powered by Flowchart.js and designed for productivity
Extended File Support
a year ago by Nick de Bruin
Adds opening and embedding support for various filetypes to Obsidian
Daily Routine
a year ago by sechan100
new version of daily-routine obsidian plugin
YourPulse - Your Writing Activity Visualised
a year ago by Jiri Sifalda
YourPulse.cc - Obsidian.md plugin that turns your vault into a reflection of your creativity, and put your writing on steroids 💪
Content Cards
a year ago by leo
Insert content cards in Markdown, such as timeline, highlightblock, target card, book information card, music information card, movie information card, photoes ablum, business card, content subfield, countdown, SWOT,BCG.
ASCII Tree Generator
a year ago by Matěj Michálek
Tier List
a year ago by Mox Alehin
Obsidian plugin for visual ranking and organizing content into customizable Tier Lists.
Export Graph View
a year ago by Sean McGhee
Plugin to export your vault's graph view.
Waveform Player
a year ago by Zhou Hua
Tagvis
a year ago by Mason Bryant
Advanced Progress Bars
a year ago by cactuzhead
Obsidian plugin to create custom progress bars
Extended Graph
a year ago by Kapirklaa
Community plugin to add features to the graph view.
Outlook Meeting Notes
a year ago by David Ingerslev
An Obsidian plugin to create meeting notes from Microsoft Outlook .msg files
Node Factor
a year ago by CalfMoon
Customize factors effecting node size in obsidian graph.
Generate Timeline
a year ago by Shanshuimei
An obsidian plugin to generate timelines from tags, folders, files or metadata automatically. 根据标签,文件夹,文件或者属性自动生成时间轴的插件。
Smart Vault Visualizer
a year ago by Evan Moscoso
Codeless Heatmap Calendar
a year ago by Behnam Aghajani
An Obsidian plugin for customizable heatmap calendars using Toggl API or fake data. Perfect for time tracking and productivity visualization.
MemoChron
a year ago by Michalis Efstratiadis
Calendar integration and note creation with support for public iCalendar URLs.
Timelive
a year ago by aNNiMON
Turn a list of dates into a timeline
Yearly Glance
a year ago by Moy & RavenHogWarts
An obsidian plugin to build "year at a glance" view.
Banyan
a year ago by ratiger
A card-based homepage for Obsidian —— browse, organize, and navigate notes effortlessly with multi-tag filtering.
Markdown Calendar Generator
10 months ago by Zach Russell
An intentionally simple obsidian markdown table calendar generator
New 3D Graph
10 months ago by Aryan Gupta
Visualize your vault in 3D with a powerful, highly customizable, and filterable graph.
Tiny Habits
8 months ago by Diego Nazoa
Obsidian Plugin for habit tracking with Svelte
Maps
7 months ago by Obsidian
Map layout for Obsidian Bases. Display your notes as an interactive map view.
Tasks Map
7 months ago by NicoKNL
A graph view of your tasks.
Visited Countries
7 months ago by Ivan Peshykov
Obsidian plugin to mark and visualize the countries you've visited on an interactive world map.
Life in Weeks Calendar
6 months ago by Jeff Szuc
Plugin for the Obsidian markdown editor. Displays a calendar of your life in weeks with weekly Periodic Notes plugin integration. Includes options for the traditional Memento Mori/Stoic style calendar, as well as a Gregorian calendar accurate version.
GoBoard
4 months ago by Dmitry I. Sokolov
Obsidian plugin for rendering Go game diagrams from markdown code blocks
Easy Tracker
4 months ago by Hunter Ji
An Obsidian plugin for ultra-simple goal and habit tracking in any note.
Weather Widget
3 months ago by mr-asa
Weather widget for display in notes, Canvas, and a separate tab.
Inline Local Graph
3 months ago by TKOxff
Inline Local Graph of Obsidian
GLSL Viewer
3 months ago by iY0Yi
Preview GLSL shaders on Obsidian.
Mermaid Icons
3 months ago by toshs
Obsidian plugin enabling the use of icons in Mermaid diagrams.
Calendar Bases
a month ago by Edrick Leong
Adds a calendar layout to bases so you can display notes with dates in an interactive calendar view.
Synaptic View
a month ago by Yongmini
A dynamic control center for your vault. Unify hubs, notes, tasks, periodic notes, and web resources with intuitive buttons. Replace new tab for instant access.