MH Periodic Notes
unlistedby MH - Matheus Heidemann
Create and manage daily, weekly, monthly, quarterly, and yearly notes with folders, templates, prefixes, suffixes, and command/API integration.
MH Periodic Notes
Summary
MH Periodic Notes is an Obsidian plugin for creating and opening periodic notes: daily, weekly, monthly, quarterly, and yearly. Each note type can have its own folder, template, filename prefix, filename suffix, and enabled state.
The plugin is built from TypeScript source in src/. The root main.js is a generated esbuild bundle for Obsidian installation.
Purpose And Features
- Create or open the current daily, weekly, monthly, quarterly, or yearly note from commands or the plugin modal.
- Configure each note type independently.
- Use optional Markdown templates when new periodic notes are created.
- Choose whether weekly notes start on Sunday or Monday.
- Use localized UI text in English or Brazilian Portuguese.
- Use the exposed
window.MhPeriodicNotesAPI from other plugins, including calendar-style integrations. - Install without a separate
styles.css; plugin styles are injected by the TypeScript bundle and cleaned up on unload.
How It Works / How To Use
Open the command palette and run Open periodic notes modal. The modal shows one card for each enabled note type. A highlighted card means that period already has a note; selecting it opens the note. A muted card creates the note first, then opens it.
You can also run type-specific commands, such as Create daily note or Create monthly note, when that note type is enabled.
Default filename formats are:
- Daily:
Y2026-M06-D06 - Weekly:
Y2026-M06-W22 - Monthly:
Y2026-M06 - Quarterly:
Y2026-Q2 - Yearly:
Y2026
Folder, prefix, and suffix are applied around the generated name. For example, with folder Periodic notes/Daily, prefix daily-, and suffix -journal, the daily note path becomes:
Periodic notes/Daily/daily-Y2026-M06-D06-journal.md
Templates are optional. Set a template path without or with .md, for example Templates/Daily or Templates/Daily.md. When a note is created, the template content is copied unchanged. The plugin does not require special frontmatter; any YAML frontmatter in your template is preserved as normal Markdown content.
Available settings:
- Language:
EnglishorPortuguese (Brazil). - First day of week:
SundayorMonday, used for weekly periods. - Enabled: turns each periodic note type on or off.
- Folder: destination folder for that note type.
- Template: Markdown file copied into new notes.
- Prefix: text inserted before the generated period name.
- Suffix: text inserted after the generated period name.
External plugins can use:
await window.MhPeriodicNotes.createOrOpenNote("daily", new Date());
const path = window.MhPeriodicNotes.getNotePath("weekly", new Date());
const exists = window.MhPeriodicNotes.doesNoteExist("monthly", new Date());
Installation
Build or download the release files, then place them in:
<vault>/.obsidian/plugins/mh-periodic-notes/
Required installation files:
main.jsmanifest.jsonversions.jsonlocales/en-us.jsonlocales/pt-br.json
Enable MH Periodic Notes from Obsidian settings after copying the files.
Development
Install dependencies:
npm install
Run a watch build while developing:
npm run dev
Run TypeScript validation:
npm run typecheck
Create the production bundle:
npm run build
The build entrypoint is src/main.ts, output is main.js, and obsidian is kept external in the esbuild bundle. Production builds are minified.
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.