Periodic Notes
unlistedby Mark Ayers (originally by Liam Cain)
Create and manage daily, weekly, monthly, and yearly notes
Periodic Notes
Create and manage daily, weekly, monthly, and yearly notes in Obsidian. Originally created by Liam Cain.
You probably shouldn't install this
This is personal tooling, not a general-purpose plugin. It is opinionated in ways that only make sense for one person's workflow:
- Single user. The only known installation is the maintainer's. Breaking changes ship without migration paths (see
CHANGELOG.md— 1.3.0 removed the quick switcher and NLDates dependency, 2.0.0 dropped quarter granularity, openAtStartup, legacy migrations, and reset existing settings to defaults). - Fork, not upstream. This diverged from
liamcain/obsidian-periodic-notesand is not a drop-in replacement. Settings, features, and internal structure have all changed. - Svelte 5 + Vite. The calendar sidebar uses Svelte 5 runes. The rest of the plugin uses native Obsidian APIs. There is no compatibility layer for older Obsidian versions.
- No issue triage for feature requests. Bugs are welcome; feature requests from other users will almost always be closed as out-of-scope.
If you want something similar, the code is MIT-licensed — fork it and adapt. Don't expect upstream to accommodate your workflow.
Features
- Four granularities — daily, weekly, monthly, yearly — each independently enabled with its own format, folder, and template.
- Sidebar calendar view. Click any day, week, month, or year to open (or create) that note.
- Template tokens for date math, including offsets like
{{date+1d:YYYY-MM-DD}}. - Jump forwards or backwards to the closest existing note at the same granularity.
- Ribbon icon and full command palette integration.
- Cmd-click (macOS) / Ctrl-click to open in a split.
Usage
- Ribbon icon — opens today's note for the first enabled granularity. Right-click for a menu of all enabled granularities.
- Command palette —
Open today's daily note,Jump forwards to closest weekly note, etc. One set of commands per enabled granularity. - Calendar sidebar — run
Periodic Notes: Show calendarto add it to the right panel. Click a day, week number, month, or year to open or create that note. Right-click for delete/file-menu actions.
Settings
Each granularity is configured independently:
| Setting | Description |
|---|---|
| Enabled | Turn this granularity on or off. |
| Format | Moment.js format string. Defaults: YYYY-MM-DD (day), gggg-[W]ww (week), YYYY-MM (month), YYYY (year). |
| Folder | Folder where these notes live. Nested folders in the format string (e.g. YYYY/MM/YYYY-MM-DD) are supported. |
| Template | Path to a template file applied when a new note is created. |
Template Tokens
Tokens are replaced when a new note is created from a template.
All granularities
| Token | Replaced with |
|---|---|
{{date}}, {{title}} | The new note's filename. |
{{time}} | The current time as HH:mm. |
Daily notes
| Token | Replaced with |
|---|---|
{{yesterday}}, {{tomorrow}} | Adjacent day formatted with the daily format. |
{{date:FMT}} | Current date formatted with FMT. |
{{date+1d:YYYY-MM-DD}} | Offset date, formatted. Supports + or -. |
{{time+2h:HH:mm}} | Offset time, formatted. |
Weekly notes
| Token | Replaced with |
|---|---|
{{monday:YYYY-MM-DD}} | Monday of the active week, formatted. Same for sunday…saturday. Format is required. |
Monthly notes
| Token | Replaced with |
|---|---|
{{month:MMMM YYYY}} | First day of the month, formatted. |
{{month-1M:YYYY-MM}} | Offset month (previous month here), formatted. |
Yearly notes
| Token | Replaced with |
|---|---|
{{year:YYYY}} | First day of the year, formatted. |
{{year-1y:YYYY}} | Offset year (previous year here), formatted. |
Offset units follow Moment.js: y years, M months, w weeks, d days, h hours, m minutes, s seconds.
Alternatives
- liamcain/obsidian-periodic-notes — the original upstream this fork diverged from.
- Daily Notes — Obsidian core, daily granularity only.
- Calendar — sidebar calendar without periodic-note management.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.