Skip to content

feat: calendar/heatmap view over journal entries #233

Description

@tstapler

Problem

SteleKit has no calendar/heatmap view for browsing journal entries. Journal pages already exist as a first-class concept (JournalService.kt, JournalsViewModel.kt, project_plans/journal-watch-fix/), but the only way to navigate them today is presumably a chronological list — there's no day/month/year calendar UI to jump to or create a specific day's entry, and no at-a-glance density view of which days have entries.

Trilium Notes' Calendar collection (https://docs.triliumnotes.org/user-guide/collections/calendar) covers this: week/month/year/list views, click-a-day to create/open that day's note, drag-to-create multi-day spans, and journal/day-note integration via a dateNote-style attribute. Logseq itself has long relied on third-party plugins for the same gap, so this would be a genuine differentiator rather than parity-for-parity's-sake.

Why this matters

  • Journals are core to SteleKit's Zettelkasten-inspired workflow (per the README's "journal daily" framing) — a calendar view is the natural complement to daily journaling, giving both quick navigation (jump to a specific past date) and a review surface (spot gaps in journaling habit at a glance, similar to a GitHub-style contribution heatmap).

Suggested scope (v1)

  • Month view: grid of days, days with a journal entry visually marked; click a day to open (or create, if empty) that day's journal page.
  • Simple heatmap coloring by entry length/block-count as a lightweight "did I journal today" signal.
  • Out of scope for v1: week/year/list views, event notes with time-of-day/duration (this is about journal-day navigation, not general-purpose event scheduling), recurring events, multi-day spans.

References

  • kmp/src/commonMain/kotlin/dev/stapler/stelekit/repository/JournalService.kt
  • kmp/src/commonMain/kotlin/dev/stapler/stelekit/ui/screens/JournalsViewModel.kt
  • project_plans/journal-watch-fix/requirements.md (disk-watch reliability for journals — different problem, adjacent area)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions