Calendar View
pendingby Mingyu Zhang
A Notion-style calendar view for managing notes in specific folders.
Obsidian Folder Calendar View
A Notion-style calendar view plugin for Obsidian that displays notes from a specific folder in a monthly calendar grid.
Features
- Monthly Calendar View: Clean, grid-based calendar layout with week navigation
- Folder-based: Display notes from any chosen folder in your vault
- Date Mapping: Uses YAML frontmatter date fields to place notes on calendar
- Note Cards: Display notes as cards with icons, titles, and custom properties
- Hover Preview: Hover over a note card to see a preview of its content; auto-dismisses when mouse leaves
- Quick Actions:
- Click cards to open notes
- Hover over dates and click '+' to create new notes
- Navigate months with arrow buttons or quick month/year picker
- Customizable:
- Choose source folder
- Configure date field name
- Select which properties to display on cards
- Set week start day (Monday/Sunday)
Installation
Via Obsidian Community Plugins (Recommended)
- Open Obsidian Settings ā Community plugins
- Disable Safe Mode if prompted
- Click "Browse" and search for "Calendar View"
- Click "Install" then "Enable"
Manual Installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create a folder
<vault>/.obsidian/plugins/calendar-view/ - Copy the three files into that folder
- Enable the plugin in Obsidian Settings ā Community plugins
For Development
- Clone this repository to your local machine
- Run
npm installto install dependencies - Run
npm run buildto compile the plugin - Create a symlink to your Obsidian vault's plugins folder:
ln -s /path/to/obsidian-calendar /path/to/vault/.obsidian/plugins/folder-calendar-view - Enable the plugin in Obsidian settings
For Development with Auto-rebuild
Run npm run dev to start the build watcher. Any changes to source files will automatically rebuild the plugin.
Usage
-
Open the Calendar:
- Click the calendar icon in the ribbon bar, or
- Use command palette: "Open Folder Calendar"
-
Configure Settings:
- Go to Settings ā Folder Calendar View
- Select your source folder (e.g., "Daily Notes" or "Projects")
- Set the date field name (default: "date")
- Choose which properties to display (e.g., "tags,status,category")
- Set your preferred week start day
-
Create Notes with Dates:
- Notes must have a date in their YAML frontmatter to appear on the calendar
- Example:
--- date: 2026-02-20 tags: [meeting, work] icon: š ---
-
Navigate the Calendar:
- Use
<and>buttons to move between months - Click on the month/year to open a quick picker
- Click "Today" to jump to the current month
- Hover over any date and click
+to create a new note for that date
- Use
Note Format
For best results, structure your notes like this:
---
date: 2026-02-20
title: My Custom Title
icon: šÆ
tags: [project, important]
category: Work
status: In Progress
---
Your note content here...
date: Required - the date this note belongs totitle: Optional - display name (defaults to filename)icon: Optional - emoji or icon to show on the card- Other properties: Will be displayed if included in "Display Properties" setting
Development
Project Structure
obsidian-calendar/
āāā main.tsx # Main plugin entry point
āāā src/
ā āāā types.ts # TypeScript interfaces
ā āāā settings.ts # Settings tab implementation
ā āāā CalendarViewType.tsx # View registration and data loading
ā āāā components/
ā āāā CalendarView.tsx # Main calendar component
ā āāā CalendarHeader.tsx # Month navigation header
ā āāā CalendarGrid.tsx # Calendar grid layout
ā āāā DateCell.tsx # Individual date cells
ā āāā NoteCard.tsx # Note card display
ā āāā NotePreview.tsx # Hover preview popup (portal-rendered)
āāā styles.css # Plugin styles
āāā manifest.json # Plugin metadata
Building
npm run dev: Watch mode for developmentnpm run build: Production buildnpm run version: Bump version and update manifest
Technical Details
- Framework: React 18
- Build Tool: esbuild
- Language: TypeScript
- Performance: Uses Obsidian's MetadataCache for fast frontmatter access
License
MIT
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.