Kalendae

approved

by unpreditable

Change an existing date in your note by picking it from a calendar, instead of retyping it. - This plugin has not been manually reviewed by Obsidian staff.

69 downloadsUpdated 8d agoGPL-3.0

Kalendae

Change an existing date in your note with a date picker, instead of retyping it. Insert new ones the same way.

Kalendae — the first day of the Roman month, when a priest called out the dates for the month ahead.

Hovering a date in a note, opening the calendar from the icon beside it, and picking a new day

Using it

Kalendae recognises the dates in your notes. Four ways to open the calendar on one:

  • Hover the date and click the calendar icon that appears beside it.
  • Double-click the date.
  • Click a Tasks plugin emoji in front of the date: ➕ 🛫 ⏳ 📅 ✅ ❌. Those dates show no icon of their own, and the emoji works whether or not you have the Tasks plugin installed.
  • Put the cursor on the date and run Kalendae: Pick a date from the command palette.

Pick a day on the calendar, and Kalendae will rewrite the date in the original format.

Run the same Kalendae: Pick a date command when the cursor is not on a date, and the day you pick is inserted at the cursor. The inserted date uses the first format in your list.

Quick dates

The calendar has a Today button, and you can put up to four shortcuts beside it: Tomorrow, End of this month, Next Monday, or one you write yourself. Eighteen come ready to pick from, and a shortcut can count either from today or from the date you are editing.

Set them up under Settings → Kalendae → Quick dates.

Date formats

Kalendae supports 10 built-in date formats, and you can create your own. The default format is YYYY-MM-DD. Configure your formats under Settings → Kalendae → Date formats.

Custom format

Write a custom format, using the moment.js tokens that Obsidian relies on under the hood:

PartTokens
YearYY YYYYrequired
MonthM MM MMM MMMMrequired
DayD DD Dorequired
Day of the weekd dd ddd ddddoptional

Anything in the pattern that isn't an ASCII letter (a dash, a dot, a comma, parentheses, non-English letters) is matched as is and kept in the output. Square brackets [ and ] are the exception and can't be used.

Where it looks

Define where the hover icon, the Tasks emoji and the double-click find dates:

Settings → Kalendae → Sections to scan:

SectionDescriptionRiskDefault
Body textRegular paragraphs, lists, bold, italics, etc.SafeAlways On
HeadingsSection heading, e.g. # 2026-09-10Can break references to this sectionOn
FrontmatterMarkdown file frontmatterObsidian has its own date picker for propertiesOff
Inline codeCode inside text surrounded by `SafeOff
Code blocksCode sections surrounded by ```SafeOff
WikilinksLinks to other notesCan point to a note that doesn't existOff

The Kalendae: Pick a date command edits and inserts dates in every section, regardless of these settings.

Scope

Works in Source mode and Live Preview. Reading mode is not supported, by design.

Languages

English, Deutsch, Español, Eesti, Français, 日本語, 한국어, Lietuvių, Latviešu, Português, Русский, Українська and 中文. Kalendae follows the language Obsidian is set to.

Corrections and contributions to other languages are welcome!

Troubleshooting

If the date is not recognised, check these:

  • The format doesn't match any enabled ones in the settings
  • The section is not scanned, e.g. code block
  • A letter or digit touches it, e.g. v2026-09-10
  • The date is invalid, e.g. 2026-02-30

Development

npm install
npm run dev     # watch mode
npm run build   # typecheck + lint + production bundle
npm test

Symlink this folder into <vault>/.obsidian/plugins/kalendae/ and install Hot Reload to get changes without restarting Obsidian.

See CONTRIBUTING.md for bug reports, feature requests, and translations.

License

GPL-3.0-only

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.