Periodic Notes

unlisted

by Mark Ayers (originally by Liam Cain)

Create and manage daily, weekly, monthly, and yearly notes

Updated 1mo agoMIT
View on GitHub

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-notes and 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 paletteOpen today's daily note, Jump forwards to closest weekly note, etc. One set of commands per enabled granularity.
  • Calendar sidebar — run Periodic Notes: Show calendar to 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:

SettingDescription
EnabledTurn this granularity on or off.
FormatMoment.js format string. Defaults: YYYY-MM-DD (day), gggg-[W]ww (week), YYYY-MM (month), YYYY (year).
FolderFolder where these notes live. Nested folders in the format string (e.g. YYYY/MM/YYYY-MM-DD) are supported.
TemplatePath 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

TokenReplaced with
{{date}}, {{title}}The new note's filename.
{{time}}The current time as HH:mm.

Daily notes

TokenReplaced 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

TokenReplaced with
{{monday:YYYY-MM-DD}}Monday of the active week, formatted. Same for sundaysaturday. Format is required.

Monthly notes

TokenReplaced with
{{month:MMMM YYYY}}First day of the month, formatted.
{{month-1M:YYYY-MM}}Offset month (previous month here), formatted.

Yearly notes

TokenReplaced 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

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.