New Plugin: Heatmap Calendar

Hi all,

I’ve just released a progress tracker plugin called Heatmap Calendar for Obsidian. You can find it in the third-party plugins browser within the app.

Its intended to be used in tandem with Dataview JS to track Goals, Progress, Habits, Tasks, Exercise, New Year Resolutions, Finances or anything you want.


VERY HAPPY that someone is working on this! Great job OP, would love to see more work on this


Very cool plugin! Thank you very much. I have a question / feature proposal:
Is it possible to search for Data in Tags?
For example I am tracking Data with “obsidian-tracker”. Here you can add data to tags like this:
#mytag:15 or #mymultipledatatag:15/2/28

I´ve read the documentation of dataview but didn´t find a solution for searching data inside of tags.

If you want to have a look at the tracker:

Thank you very much for this plugin!!
I tried to adapt the code within the dataviewjs block in order to push to the calendar if a reoccurring task from a daily not is checked/completed or not I tried something like

for(let page of dv.pages('"PeriodicNotes/DailyNotes"').where(p => file.tasks.where(t => t.text === "NAME-OF-TASK").where(j => j.completed)){
        content: await dv.span(`[✅](${})`), //for hover preview

but it did not work. Can someone help out? Thanks.

1 Like

Did you find the solution to this one?

Unfortunately not :frowning:

1 Like

@richardsl you think this is possible?

@richardsl - I think the plugin may be broken for the switch to 2023. I’m not seeing anything come up in the calendar for today, but the calendar shows the 2023 calendar. (So, the calendar is rendering 2023, but it’s not pulling events from 2023 into it.)

Also, I’d like to request a toggle buttons to go back/forth to the previous years. That would be awesome!

Thanks for your plugin. I use it daily!!!

I’m an idiot… the calendar works fine for 2023. Please disregard the bug…

(Still would love to see the toggle to move between years tho!)

Can you help me with my Queries

  1. Why it is not displaying anything
dv.span("** History**") 
const calendarData = {
    colors: {    
        green:       ["#c6e48b", "#7bc96f", "#49af5d", "#2e8840", "#196127"]
    entries: []             
for (let page of dv.pages('"History_Research"').where(p => p.Heatmap)) {

renderHeatmapCalendar(this.container, calendarData)

"History_Research " is a folder with pages inside should a use journals or a dedicated page.

This is the output in the page named Heatmap
Can somebody tell me my faults and how to solve the issue