Matt Maiorana231 downloadsCalendar view with integrated daily, weekly, monthly, quarterly, and yearly notes. An update of the Calendar plugin.
Calendar Plus is a sidebar calendar for Obsidian with daily, weekly, monthly, quarterly, and yearly periodic notes built in. It's an update to Liam Cain's original Calendar plugin, with a few notable updates and differences:
There are also many bug fixes that bring both the calendar view and periodic note functionality up to modern Obsidian plugin standards.

From within Obsidian (recommended once listed in the community-plugin directory): Settings → Community plugins → Browse → search "Calendar Plus" → Install → Enable.
From a GitHub release (fallback): download main.js, manifest.json, and styles.css from a GitHub release, copy them into your vault at <vault>/.obsidian/plugins/calendar-plus/, then enable Calendar Plus from Settings → Community plugins.
From source: see the Development section below.
Calendar Plus uses a separate plugin id, view type, and ribbon icon from the original Calendar plugin, so the two can coexist during a transition.
After enabling the plugin, the calendar appears in the right sidebar. You can drag it elsewhere or pin it — the placement is remembered.
Daily notes are enabled by default for new installs. Weekly, monthly, quarterly, and yearly notes start disabled; toggle each on as needed.
Configure each periodic-note type independently from Settings → Calendar Plus → Periodic Notes:
Calendar Plus owns its own settings for all five periodic-note types and doesn't read from Obsidian's core Daily Notes plugin or other periodic-notes plugins.
Each of the five note types — Daily, Weekly, Monthly, Quarterly, Yearly — has its own Enable toggle, Date format, Folder, and Template file setting.
It's intended to. Calendar Plus uses a separate plugin id, view type, and ribbon icon from the original Calendar plugin, so the two can coexist if you want to run them side-by-side during a transition. Calendar Plus owns its own settings for all five periodic-note types and does not read settings from Obsidian's core Daily Notes plugin or the original Periodic Notes plugin.
A filled dot on a day cell means a periodic note exists for that day. A dot on a week-number cell means a weekly note exists for that week. Dots have no other meaning — they don't reflect word count or task status.
Enable Weekly notes in the Calendar Plus settings. Week-number cells appear automatically; clicking one opens or creates the weekly note for that week.
From the Settings tab, use the Start week on dropdown.
Right-click the calendar's view icon in the sidebar and choose Close. Reopen it later from the Command Palette: Calendar Plus: Open view.
Wrap the words in [] brackets in your Moment.js format string. For example, [Week] ww [of Year] gggg produces filenames like Week 21 of Year 2020. The brackets tell Moment.js to treat the enclosed text literally instead of as format tokens.
Add this snippet to your weekly note template to embed each day's note:
## Week at a Glance
![[{{sunday:gggg-MM-DD}}]]
![[{{monday:gggg-MM-DD}}]]
![[{{tuesday:gggg-MM-DD}}]]
![[{{wednesday:gggg-MM-DD}}]]
![[{{thursday:gggg-MM-DD}}]]
![[{{friday:gggg-MM-DD}}]]
![[{{saturday:gggg-MM-DD}}]]
Hold Ctrl or Cmd while hovering a day cell to preview the corresponding daily note.
Ctrl/Cmd-click a date cell to open the note in a new split or new tab, depending on the Ctrl + Click behaviour setting.
Run Calendar Plus: Reveal active note from the Command Palette to scroll the calendar to the month containing the currently-open periodic note.
Set --color-background-weekend in your obsidian.css to any color to distinguish weekend columns.
When a weekly note is created from a template, Calendar Plus expands these tags:
| Tag | Description |
|---|---|
{{sunday:fmt}} through {{saturday:fmt}} |
Inserts the date of that day of the current week, formatted with fmt. Specify the format explicitly (e.g. {{sunday:gggg-MM-DD}}). |
{{title}} |
The note's filename. |
{{date:fmt}}, {{time:fmt}} |
The date / time of the first day of the week, formatted with fmt. |
Calendar Plus exposes CSS variables you can override in your obsidian.css:
#calendar-container {
--color-background-heading: transparent;
--color-background-day: transparent;
--color-background-weeknum: transparent;
--color-background-weekend: transparent;
--color-dot: var(--text-muted);
--color-arrow: var(--text-muted);
--color-button: var(--text-muted);
--color-text-title: var(--text-normal);
--color-text-heading: var(--text-muted);
--color-text-day: var(--text-normal);
--color-text-today: var(--interactive-accent);
--color-text-weeknum: var(--text-muted);
}
To override specific calendar classes, prefix them with #calendar-container so the change doesn't leak into the rest of Obsidian:
#calendar-container .year {
color: var(--text-normal);
}
Note for theme authors: if you inspect the calendar's DOM, you'll see class names with autogenerated suffixes such as .day.svelte-abc123.svelte-abc123. The svelte-… portion is generated at build time, changes between releases, and is not a stable styling API. Target only the human-readable part of the class — .day, .week-num, .month, etc. — and prefix with #calendar-container so your overrides apply to Calendar Plus specifically.
Calendar Plus 1.7.14 and later require Obsidian 1.8.7 or newer. Users on older Obsidian builds can remain on Calendar Plus 1.7.13 through Obsidian's version-compatibility mechanism.
npm ci # install dependencies from the lockfile
npm run build # type-check, lint, and bundle to main.js
main.js is generated by the build and shouldn't be edited directly. See CHANGELOG.md for release history and FUTURE_PLANS.md for deferred work.
See CHANGELOG.md for release-by-release notes.
Calendar Plus is released under the MIT License.
Calendar Plus began as a fork of Liam Cain's Obsidian Calendar plugin, draws on ideas from Liam Cain's Periodic Notes plugin, and was inspired by FBarrca's Obsidian Calendar fork. It has since evolved into its own integrated calendar + periodic-notes plugin.
Thanks also to the Obsidian developer community for the plugin API and documentation.