Conditional Properties
approvedby Diego Eis
Automate frontmatter updates using conditional rules (IF/THEN).
Conditional Properties for Obsidian
Automate your frontmatter with smart IF/THEN rules. Set properties, modify titles, and keep your vault organizedβautomatically.

Why Use This Plugin?
Stop manually updating properties across hundreds of notes. Define rules once, run everywhere. Perfect for:
- π·οΈ Auto-tagging notes based on content
- π Maintaining consistent metadata
- π Bulk property updates
- β° Scheduled maintenance
- π― Targeted scope (latest created/modified notes)
Core Features
π― Flexible Conditions
- 6 operators:
exactly,contains,notContains,exists,notExists,isEmpty - Property-based: Check any frontmatter property
- Title-based: Use note titles (H1 or inline) as conditions
β‘ Powerful Actions
- ADD: Add values without duplicating
- REMOVE: Remove specific values
- OVERWRITE: Replace entire property
- DELETE PROPERTY: Remove property completely
- CHANGE TITLE: Add prefix/suffix or overwrite with dynamic dates and filenames
ποΈ Smart Execution
- Run on demand: Entire vault or current file only
- Scheduled scans: Set intervals (min 5 minutes)
- Scoped scanning: Latest created, latest modified, or entire vault
- Configurable count: Process 1-1000 notes at once
π‘οΈ Safe & Private
- Only modifies frontmatter (body content preserved)
- All processing happens locally
- No data leaves your device
Quick Examples
Auto-tag meetings:
IF property: type = "meeting"
THEN ADD tags: work, important
Archive old projects:
IF property: status = "archived"
THEN REMOVE tags: active, wip
Date-stamp completed tasks:
IF property: status = "done"
THEN Change Title: Add suffix " - {date:DD/MM/YYYY}"
Standardize meeting note titles:
IF title contains: "Meeting"
THEN Change Title: Overwrite to "{date:YYYY-MM-DD} - {filename}"
Result: 2026-01-08 - team-sync
Clean up deprecated data:
IF property: tags = "old-project"
THEN DELETE PROPERTY: legacy_data
Title-based tagging:
IF title contains: "Meeting"
THEN ADD tags: meeting, important
Multiple Actions Per Rule
Combine actions to automate complex workflows:
IF property: project_status = "completed"
THEN:
- SET status [OVERWRITE]: done
- ADD tags: archived
- REMOVE tags: active, wip
- ADD priority: low
Scan Scopes
Choose what to scan:
- Latest Created: Process newest notes (default: 15)
- Latest Modified: Process recently edited notes (default: 15)
- Entire Vault: Process all notes
Perfect for running rules only on active notes instead of your entire vault.
Operators Reference
| Operator | Description | Example |
|---|---|---|
exactly | Exact match | type = "meeting" |
contains | Substring match | name contains "Diego" |
notContains | Does not contain | tags notContains "draft" |
exists | Property present | status exists |
notExists | Property absent | reviewed notExists |
isEmpty | Empty value | tags isEmpty |
Title Actions
Modify note titles dynamically:
- Prefix:
[ARCHIVED] Original Title - Suffix:
Original Title - {date} - Overwrite: Replace entire title with custom text
Available Placeholders
- {date}: File creation date (default format)
- Example:
{date}β2026-01-08
- Example:
- {date:FORMAT}: Custom date format (moment.js)
- Example:
{date:DD-MM-YYYY}β08-01-2026 - Example:
{date:YYYY/MM/DD}β2026/01/08
- Example:
- {filename}: Current file basename (without .md)
- Example: For file
meeting-notes.mdβmeeting-notes
- Example: For file
Placeholder Combinations
Placeholders can be combined in any order:
{date:YYYY-MM-DD} - {filename}β2026-01-08 - meeting-notesMeeting {filename} - {date:DD/MM/YY}βMeeting meeting-notes - 08/01/26{filename}βmeeting-notes(overwrite with just filename)
Installation
From Community Plugins (Coming Soon)
- Settings β Community Plugins β Browse
- Search "Conditional Properties"
- Install and enable
Manual Installation
- Copy folder to
.obsidian/plugins/obsidian-conditional-properties - Settings β Community Plugins β Enable "Conditional Properties"
Usage
Run Manually
- Settings: Conditional Properties β "Run now" button
- Command Palette: "Run conditional rules on vault"
- Current file: "Run conditional rules on current file"
Schedule Execution
Settings β Scan interval (minutes) β Set interval (minimum 5)
The plugin runs automatically based on your selected scope.
Roadmap
- IF/THEN rules engine
- 6 property operators
- Multiple actions per rule
- Title modifications with date placeholders
- Scheduled scans
- Scoped execution (latest/entire vault)
- Current file execution
- Property existence checks
- Rename property action
- Modify note content (beyond frontmatter)
- Advanced operators (regex, comparison)
- Compound conditions (AND/OR/NOT)
- Folder/tag-based scoping
Privacy
All processing happens locally. No data collection, no external requests.
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.