Configuration
Calendar Management
- Add, clone, or delete calendars from Settings → Prisma Calendar
- Each calendar is isolated: its own directory, filters, colors, and UI options
- Maximum calendars: 10 (configurable limit in code, UI will disable buttons at the max)
Active Calendar
Pick the calendar you want to configure. Actions like Clone Current and Delete Current affect the active calendar only.
Create / Clone / Delete
- Create New: generates a unique ID and default name (e.g., “Calendar 2”) with sensible defaults
- Clone Current: duplicates the entire configuration to a new calendar (ID and name change)
- Delete Current: removes the calendar and re-selects the next available one (at least one calendar must remain)
General Settings
Calendar Directory
- Directory: folder to scan for events and create new notes in (supports nested folders)
- Template path: optional Templater template used when creating events
Parsing
- Default duration (minutes): used when only
Startis present - Mark past events as done: automatically mark past events as done during startup by updating their status property (configure the status property and done value in the Properties section)
Timezone
- Default timezone:
systemor a specific IANA name (e.g.,America/New_York) - Timezone property: per-note override via frontmatter
Properties Settings
Tell Prisma Calendar which frontmatter keys you use.
- Start property (required): default
Start - End property (optional): default
End - All-day property (optional): default
AllDay - Title property (optional): default to file name when missing
- Timezone property (optional): default
Timezone - ZettelID property (optional): when set, a timestamp-based ID is generated on creation/cloning (see ZettelID Naming System for details)
- Status property: frontmatter property name for event status (default:
STATUS), used when automatically marking past events as done - Done value: value to set in the status property when marking an event as done (default:
Done)
Recurring (node-based)
- RRule property: e.g.,
daily,weekly,bi-weekly,monthly,bi-monthly,yearly - RRule specification property: weekdays for weekly/bi-weekly (e.g.,
monday, wednesday, friday) - RRule ID property: unique identifier for recurrence
Example:
---
Start: 2025-01-15T09:00
End: 2025-01-15T10:30
RRule: weekly
RRuleSpec: monday, wednesday, friday
RRuleID: standup-2025
---
Auto-mark Past Events
When enabled in General settings, Prisma Calendar will automatically update the status property of past events during startup:
- For all-day events: Checks if the date is in the past
- For timed events: Checks if the end date/time is in the past
- Runs asynchronously: Doesn't block the calendar from loading
- Smart updates: Only writes to files when the status needs to be changed
Example behavior:
---
Start: 2025-01-10T14:00
End: 2025-01-10T15:00
STATUS: In Progress
---
After the end time passes, Prisma Calendar will automatically update it to:
---
Start: 2025-01-10T14:00
End: 2025-01-10T15:00
STATUS: Done
---
Calendar Settings (UI)
- Default view: set initial calendar view
- Hide weekends: toggle Saturday/Sunday visibility
- Enable event preview: hover previews inside the calendar
- Show current time indicator: time line in day/week views
- First day of week: choose locale preference
- Day start / end hour: visible time range in grids
- Slot duration (minutes): grid slot height
- Snap duration (minutes): drag/resize snapping interval
- Zoom levels (minutes): comma-separated list for CTRL+scroll zoom (e.g.,
1, 5, 10, 15, 30) - Display density:
comfortableorcompact - Past event contrast: visual contrast of past events (0% = invisible, 100% = normal)
Event Overlap
- Allow event overlap: whether events can visually overlap in all views (default: enabled)
- Allow slot event overlap: whether events can overlap within the same time slot in time grid views (default: enabled)
- Event stack limit: maximum events to stack before showing "+ more" link (1-10, default: 3)
Rules Settings
Event Colors
- Default event color: fallback color when no rule matches
- Color rules: evaluated top-to-bottom; first match wins
Examples:
Priority === 'High' → red
Status === 'Done' → #22c55e
Project === 'Work' → hsl(210, 70%, 50%)
Type === 'Meeting' → #f59e0b
Tips:
- Use property names directly (no prefix needed)
- Colors support CSS names, hex, or HSL
Event Filtering
All expressions must evaluate to true; events failing any filter are excluded.
Status !== 'Inbox'
Priority === 'High'
Status === 'Done' || Status === 'In Progress'
!_Archived
Array.isArray(Project) && Project.length > 0
Filter Presets
Create named filter expressions for quick access via the calendar toolbar dropdown:
- Go to Settings → Rules → Filter Presets
- Click "Add Preset"
- Enter a name (e.g., "High Priority Only")
- Enter the filter expression (e.g.,
Priority === 'High')
Using Presets:
- Click the ▼ dropdown button in the calendar toolbar (next to the zoom button)
- Select a preset to apply its filter instantly
- Select "Clear" to remove the active filter
Notes:
- Filter presets use the same expression syntax as event filtering
- Presets are per-calendar configuration
- Active preset filters are temporary and reset when the calendar is reloaded
Frontmatter Display
Show extra frontmatter properties inside event chips (scrollable when space is tight).
- Display properties: comma-separated list (e.g.,
status, priority, project, tags)
Rendered example inside a chip:
Meeting with Team
status: In Progress
priority: High
project: Q4 Planning
Recurring Instances (Generation Horizon)
- Future instances count: how many future notes to pre-generate (1–52)
- Beyond that, events appear as read-only virtual items to keep your vault light