#Note/Permanent #Health/Sleep #Habit/Metric **Why [8 Hours of Sleep](https://en.wikipedia.org/wiki/Why_We_Sleep#Contents)?** ```dataviewjs dv.span("**😪8 Hours Sleep💤**") const calendarData = { year: 2025, // (optional) defaults to current year colors: { // (optional) defaults to green oldGithubGreen11:[ "hsl(65, 83%, 88%)", "hsl(70, 77%, 78%)", "hsl(80, 62%, 72%)", "hsl(95, 52%, 66%)", "hsl(112, 45%, 61%)", "hsl(125, 43%, 56%)", "hsl(132, 41%, 49%)", "hsl(132, 45%, 43%)", "hsl(132, 49%, 36%)", "hsl(132, 54%, 29%)", "hsl(132, 59%, 24%)", ] }, showCurrentDayBorder: true, // (optional) defaults to true defaultEntryIntensity: 0, // (optional) defaults to 4 intensityScaleStart: 0, // (optional) defaults to lowest value passed to entries.intensity intensityScaleEnd: 8, // (optional) defaults to highest value passed to entries.intensity entries: [], // (required) populated in the DataviewJS loop below } //DataviewJS loop for (let page of dv.pages('"Diary"').where(p=>(p["sleep-at"] && p["wake-up-at"]))) { let sleepHours = (page["wake-up-at"] - page["sleep-at"]) / (60*60*1000) //dv.span("<br>" + page.file.name + " " + sleepHours) // uncomment for troubleshooting calendarData.entries.push({ date: page.file.name, intensity: sleepHours, content: await dv.span(`[](${page.file.name})`), //for hover preview", }) } renderHeatmapCalendar(this.container, calendarData) ```