Habit tracker heat map from a Notion database
A month of habit check-ins turned into a calendar heat map and a total per habit. Each square is a day: filled when the box was ticked, empty when it was not.
Free for 5 charts · no card · no expiry
Check-ins calendar
Pro planCheck-ins per habit
Free planThe data behind it
The first 10 of 30 rows of Sample · Habit tracker. Every chart above is built from these columns and nothing else.
| date | habit | done |
|---|---|---|
| 2026-03-01 | Workout | 0 |
| 2026-03-02 | Journaling | 0 |
| 2026-03-03 | Meditation | 1 |
| 2026-03-04 | Language | 1 |
| 2026-03-05 | Reading | 0 |
| 2026-03-06 | Workout | 1 |
| 2026-03-07 | Journaling | 0 |
| 2026-03-08 | Meditation | 1 |
| 2026-03-09 | Language | 1 |
| 2026-03-10 | Reading | 0 |
How to build this in Notion
- Set up one row per check-in. Each row is one day and one habit. Add a date property for the day, a select property for the habit, and a checkbox property that you tick when it is done.
- Connect the database. Create an account, go to Data sources and connect Notion. Share only the habit tracker on Notion's screen: anything you leave unselected stays invisible to ChartOmodo.
- Build the calendar. Pick Calendar as the chart type. Set X-axis (category) to the date, Y-axis (value) to the checkbox, the aggregation to Sum and Date grouping to Day. A ticked box adds 1, so a darker square means more done that day.
- Add the per-habit total. A second chart with Bar, the habit on the X-axis and the same Sum of the checkbox shows which habit you kept most often.
- Embed it in your tracker page. Copy the embed link, type /embed in the Notion page that holds your tracker and paste it. New ticks appear after the next refresh, which runs on your plan's timer or sooner when Notion reports an edit.
Notion's chart block offers vertical bar, horizontal bar, line, donut, and number charts, and a calendar heat map is not among them. Each chart above names the plan that includes its type, so you can start with the bar chart and add the calendar later.