GOODJINC34 downloadsBrowse and open your notes by date in a fast, compact calendar.
English | 한국어
A fast, compact, and local-first calendar for browsing existing Obsidian notes by date.
Requires Obsidian 1.7.2 or later.
Calendar of Notes indexes dates from filenames, note properties, or both. Select a day to open its note directly or review every matching note without leaving the sidebar.
[!NOTE] Calendar of Notes is currently an early public beta. Test it in a separate vault before using it with important data.
20260730 and it becomes 2026-07-30+ indicator for dates with more notesCalendar of Notes only reads metadata and opens notes. It does not create, rename, edit, or delete your notes.
Once Calendar of Notes is accepted into the Obsidian Community Plugins directory:
Download main.js, manifest.json, and styles.css from the matching GitHub Release.
Create this folder inside your vault:
<vault>/.obsidian/plugins/calendar-of-notes/
Copy the three files into that folder.
Reload Obsidian, then enable Calendar of Notes under Settings → Community plugins.
You can also install a released beta through BRAT by adding this repository URL.
Open Calendar of Notes from the ribbon calendar icon or the command palette. Use the compact view switcher at the top:
| Button | View |
|---|---|
M |
Month |
W |
Week |
Y |
Year |
Use the arrow buttons to move through the current period. Select the heading to choose a month or year, use the target button to return to today, or use the calendar-search button to jump directly to a date.
The date jump accepts either YYYY-MM-DD or eight digits such as 20260730.
The default strategy is Property, then filename:
---
date: 2026-07-30
created: 2026-07-29
published:
- 2026-08-01
---
Enter one property name per line. Valid dates from every configured property are included. ISO date-time values such as 2026-07-30T15:30:00+09:00 use the written calendar date without UTC conversion.
| Date format | Matching example |
|---|---|
YYYY-MM-DD |
2026-07-30 Note title.md |
YYYY.MM.DD |
2026.07.30 Note title.md |
YYYY_MM_DD |
2026_07_30 Note title.md |
YYYYMMDD |
20260730 Note title.md |
| Custom pattern | Advanced regular expression with an ISO-date capture |
For built-in formats, choose whether the date appears at the beginning, anywhere, or as the entire filename. Every matched date is normalized to YYYY-MM-DD. Invalid dates such as 2026-02-29 are ignored.
You can optionally include or exclude notes by vault-relative folder and tag. Enter one value per line. Folder rules include descendants, and a tag such as project also matches project/calendar. Exclusions take priority over inclusions.
| Mode | Behavior |
|---|---|
| Smart open | Opens one matching note directly; shows a list when several notes match |
| Always show list | Selects the date and displays its note list |
| Select only | Selects the date without opening a note or list |
The note list can appear below the calendar, in a popup, or remain hidden. On mobile, popup lists use a bottom-sheet layout.
Notes opened directly or from a list can use the current tab, a new tab, or a new split. Ctrl-click or Command-click always opens a new tab.
Settings are grouped into five sections:
Calendar of Notes works locally inside your vault.
When the calendar is first opened or restored, the plugin enumerates Markdown files to build its date index. It reads filenames and cached frontmatter/tag metadata, not note bodies. After the initial index, Vault and Metadata Cache events update only the changed files. Folder and tag filters are applied locally.
Plugin settings are stored through Obsidian's standard plugin data API.
Release assets are built and cryptographically attested by GitHub Actions. For example, downloaded assets can be verified with gh attestation verify main.js -R GOODJINC/obsidian-calendar-of-notes.
Requirements:
npm install
npm run dev
Verification:
npm run build
npm test
npm run lint
The production build generates main.js locally. This generated file is intentionally excluded from Git and attached to GitHub Releases by the release workflow.