Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

My Life Calendar

PrEvAl85PrEvAl8556 downloads

A life-in-weeks grid of heart-shaped cells based on the "Life in Weeks" idea by WaitButWhy. Built-in journal, events, and one-click export for the Life Calendar Android app.

Add to Obsidian
My Life Calendar screenshot
  • Overview
  • Scorecard
  • Updates10

A life-in-weeks view for Obsidian: your whole life as a grid of heart-shaped cells (52 columns = weeks of the year, each row = one year), with a built-in journal, events, and JSON backup (import/export) compatible with the Life Calendar Android app.

Based on the idea of Life in Weeks from WaitButWhy. Visual style matches: lived weeks are red hearts ♥, future weeks are grey ♡, birthday weeks are green, events are hearts in their own color, and weeks that have journal entries get a yellow dot.

Installation

From the Community plugins catalog

  1. In Obsidian: Settings → Community plugins → Browse.
  2. Search for My Life Calendar and install it.
  3. Enable the plugin and turn off Restricted mode if prompted.

Manual installation (if the plugin is not yet visible in the catalog — e.g. while the submission is in review):

  1. Download the latest release or build from source (see below).
  2. Copy the folder with main.js, manifest.json, styles.css into your vault: <YourVault>/.obsidian/plugins/my-life-calendar/
  3. In Obsidian: Settings → Community plugins → Reload plugins (or restart Obsidian), then enable Life Calendar.

First launch (onboarding)

When you enable the plugin for the first time, it asks for your date of birth (required — the grid starts from it). After saving, the plugin creates its own folders so they never conflict with your other notes:

  • Life Calendar/Journal/ — daily journal entries, one file per day (DD.MM.YYYY.md);
  • Life Calendar/Weekly/ — weekly aggregator notes (built when you click a week);
  • Life Calendar/Events.md — events in YAML-frontmatter (date, color, title);
  • Life Calendar/backup.json — JSON backup file (import/export).

All paths are configurable in the plugin settings.

Features

  • Life grid: hearts for every week from your birth date for the whole lifespan (default 100 years, configurable 50–120).
  • Legend: birth date, today, age (years + weeks), number of weeks with entries.
  • Tooltips: hover a heart to see the week's entries. For weeks with entries an interactive tooltip appears with a color palette (8 colors) and ring palette (8 ring colors) — click a swatch to recolor the heart, click again (or the ✕ button) to reset. Settings persist and apply on the fly.
  • Click a week: opens (or creates) the weekly aggregator note built from that week's journal files. Manual sections you added are preserved when the note is rebuilt.
  • ➕ Add journal entry: date + text → appends to the day's file in Life Calendar/Journal/.
  • Events: add / edit / delete (date, title, color) via the Events window or the command palette. Events show as colored hearts on the grid.
  • 🎨 Life zones: mark periods of life (e.g. school, university, career) with a pastel background across the weeks they cover. Open via the Zones button in the toolbar or the command palette: add a title, start and end dates, and pick a pastel color. When zones overlap, the more recent zone's color is shown; the tooltip lists all overlapping zones. Zones are stored in settings and included in the backup.
  • 📤 Export backup: builds Life Calendar/backup.json in the exact JSON format the Android app's BackupManager imports (version, birthDate, lifespanYears, entries, events). Import the file into the Android app (Profile → backup) or into another Obsidian vault. Since v1.4.0 zones are exported as an extra zones key — the Android app ignores it (ignoreUnknownKeys).
  • 📥 Import backup: restores a backup file into this vault — journal entries and events are merged without duplicates. Since v1.4.0 zones from the backup are imported too (duplicates by title + start + end are skipped). Optionally applies the birth date and lifespan from the file (turned on by default when no birth date is set yet). Use it to move your calendar to a new Obsidian account or restore from an Android export.
  • Commands (Command palette):
    • My Life Calendar: Open Life Calendar
    • My Life Calendar: Add entry to journal
    • My Life Calendar: Events (add / edit / delete)
    • My Life Calendar: Zones (add / edit / delete)
    • My Life Calendar: Export backup (JSON)
    • My Life Calendar: Import from backup (JSON)

Life Zones (life periods)

Life Zones let you mark periods of life — school, university, work, marriage, etc. — with a continuous pastel band across the weeks they cover, so you can see at a glance which stage of life every week belonged to.

How to create a zone

  1. Open the Life Calendar view.
  2. Click the 🎨 Zones button in the toolbar, or run the command My Life Calendar: Zones (add / edit / delete).
  3. In the Zones window click ➕ (Add).
  4. Fill in the form:
    • Name — e.g. "University" (required);
    • Start date — the day the period began;
    • End date — the day the period ended (must not be earlier than the start);
    • Color — pick one of the 8 pastel colors from the palette.
  5. Click Save. The zone is painted on the grid as a solid band that starts at the week containing the start date and ends at the week containing the end date.

Editing and deleting

  • Edit: open the Zones window and click the zone row — the edit form opens with the same fields.
  • Delete: in the Zones window click 🗑 next to the zone.

How it looks

  • The band is a continuous fill behind the hearts: no gaps between heart cells or between years.
  • The fill is on the lowest layer — changing a heart's color or ring never hides the zone behind it.
  • Overlapping zones: when two zones cover the same weeks, the color of the zone with the later start date is shown on top; hovering such a week lists all overlapping zones in the tooltip (with their date ranges).
  • The zone band is only a visual marker: it does not create notes or events.

Where zones are stored

Zones are saved in the plugin settings. When you 📤 export a backup, zones are written to backup.json under the zones key (color as ARGB, like events). 📥 Import restores them too — zones that already exist (same name + start + end) are skipped. The Android app ignores the zones key, so the file stays compatible.

Settings

  • Birth date
  • Lifespan (50–120 years)
  • Language: auto (Obsidian language) / Russian / English
  • Journal folder, weekly folder, events file, export file paths
  • Life zones (add / edit / delete via the Zones window)
  • Reset heart colors/rings

Development

Requirements: Node.js ≥ 18.

npm install
npm run dev     # watch mode
npm run build   # production build -> main.js

Support the Project

The app is free and without ads, developed in my free time. You can support it by:

  • ⭐ starring the repository;
  • telling your friends about the project;
  • reporting bugs and ideas in Issues.

Financial support:

  • ☕ Boosty — https://boosty.to/pws/donate
  • 🍩 DonationAlerts — https://www.donationalerts.com/r/photowithoutstudio

Cryptocurrency:

  • USDT (TRC20): TRcWS42MhyFRGdGSc6LqTH8CdTy6pLUMn6
  • USDT (BEP20): 0x0905134db34d8d54abf5b60a55406821ed7b8de0
  • BTC: 17hDrZL62DBpTjK6xNCGFFG682jN9PiVF1
  • TON: UQCzoPJlYLHSoFGmRyh_-_ox1nOMCzx3LwG79xPR5pbjs3Aq

Contacts

  • Telegram: GraphiCoreOne — questions, feedback and ideas.

License

MIT

HealthExcellent
ReviewSatisfactory
About
Display your whole life as a heart-shaped weeks grid (52 columns = weeks, each row = a year) and highlight lived, future, birthday, and event weeks with color-coded hearts and yellow dots for weeks with journal entries. Keep a built-in journal and events list, view week tooltips, and export with one-click to the Life Calendar Android app.
CalendarVisualization
Details
Current version
1.4.1
Last updated
3 hours ago
Created
5 days ago
Updates
10 releases
Downloads
56
Compatible with
Obsidian 1.13.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
Support
Author
PrEvAl85PrEvAl85preval85
GitHubpreval85
  1. Community
  2. Plugins
  3. Calendar
  4. My Life Calendar

Related plugins

Yearly Glance

Year at a glance - overview of annual events with customizable management options.

Prisma Calendar

Prisma turns any note with a date into a flexible planning system inside Obsidian. There are no rigid schemas or predefined structures — just your data, your rules, fully under your control.

Excalidraw

Visual PKM powerhouse. Create and edit Excalidraw drawings.

TaskNotes

Note-based task management with calendar, pomodoro and time-tracking integration.

Advanced Canvas

Supercharge your canvas experience. Create presentations, flowcharts and more.

Day Planner

Turn tasks from daily notes, the Tasks plugin, and calendars into time blocks on an editable timeline, with built-in time tracker.

Breadcrumbs

Visualise the hierarchy of your vault using a breadcrumb trail or matrix view.

Maps

Adds a map layout to bases so you can display notes as an interactive map view.

Mermaid Tools

Improved Mermaid.js experience: visual toolbar with common elements and more.

Tracker

Track occurrences and numbers in your notes.