Placeholders
Placeholders work inside any THEN action value, and inside any IF condition value — Property conditions, First level title conditions, Note file conditions, Property actions, First level title actions, and Note file actions. They’re expanded at the moment the rule runs, against the file being processed, using Obsidian’s own {{...}} Templates syntax.
Reference
| Placeholder | Description | Result |
|---|---|---|
{{date}} | Today’s date — same meaning as Obsidian’s own {{date}} Templates placeholder. | YYYY-MM-DD by default (e.g. 2026-09-04), unless your vault has a custom Date format under Files & Links — then that format is used instead. |
{{yesterday}} | Yesterday’s date. Same formatting rules as {{date}}. | YYYY-MM-DD by default (e.g. 2026-09-03). |
{{tomorrow}} | Tomorrow’s date. Same formatting rules as {{date}}. | YYYY-MM-DD by default (e.g. 2026-09-05). |
{{time}} | The current time — same meaning as Obsidian’s own {{time}} Templates placeholder. | HH:mm by default (e.g. 14:32), unless your vault has a custom Time format — then that format is used instead. |
{{title}} | The active note’s title — same meaning as Obsidian’s own {{title}} Templates placeholder, which is the note’s filename, without .md. | meeting-notes |
{{filename}} | The note’s filename, without .md. Same value as {{title}}. | meeting-notes |
{{created_date}} | The file’s creation date. | YYYY-MM-DD by default, same formatting rules as {{date}}. |
{{updated_date}} | The file’s last-modified date. | YYYY-MM-DD by default, same formatting rules as {{date}}. |
{{propertyName}} | The live value of any frontmatter property on the current note — replace propertyName with the actual property’s name (e.g. {{status}}, {{g_excerpt}}). | Whatever that property currently holds. Arrays are joined with , ; a missing property resolves to an empty string. |
{{match}} / {{match:N}} / {{match:name}} | Beta — reuses whatever an IF regex condition matched. See {{match}} in THEN. | The matched text, capture group N, or named group name. |
{{today}} still works and means exactly the same thing as {{date}} — kept for backward compatibility, but {{date}} is the one to reach for since it mirrors Obsidian’s own Templates syntax.
In Note file actions and Note file conditions, a bare date placeholder is always forced to YYYY-MM-DD regardless of the vault’s date format — see Dates are always date-only in Note file actions below.
Custom formats
{{date}}, {{yesterday}}, {{tomorrow}}, {{created_date}}, {{updated_date}}, and {{time}} all accept an optional :FORMAT suffix — e.g. {{date:DD-MM-YYYY}} — using moment.js tokens. Without one, they fall back to the default (or vault-configured) format described in the table above.
{{date:DD-MM-YYYY}} → 04-09-2026
{{yesterday:DD-MM-YYYY}} → 03-09-2026
{{date:MM}} → 09
{{time:HH:mm:ss}} → 14:32:07
{{created_date:YYYY}} → 2025
The most common tokens:
| Token | Meaning | Example |
|---|---|---|
YYYY | 4-digit year | 2026 |
YY | 2-digit year | 26 |
MMMM | Full month name | September |
MMM | Short month name | Sep |
MM | 2-digit month | 09 |
M | Month, no leading zero | 9 |
DD | 2-digit day of month | 04 |
D | Day of month, no leading zero | 4 |
dddd | Full weekday name | Friday |
ddd | Short weekday name | Fri |
HH | 2-digit hour, 24h | 14 |
h | Hour, 12h, no leading zero | 2 |
mm | 2-digit minute | 32 |
ss | 2-digit second | 07 |
A | AM/PM | PM |
Mix tokens with any separator you like — -, /, spaces, text: {{date:dddd, MMMM D YYYY}} → Friday, September 4 2026. The full token list is in the moment.js format docs.
Property placeholders
Any token that isn’t one of the reserved names above, and whose first character isn’t : or whitespace, is treated as a frontmatter property lookup: {{g_excerpt}}, {{summary}}, {{kebab-case-prop}} all work.
Copy a value from one property to another:
IF Property: g_excerpt → exists
THEN Property: excerpt → Add value → "{{g_excerpt}}"
Behavior:
- Missing property → empty string. No errors, no literal
{{name}}left behind in your YAML. - Arrays are joined with
,. A source liketags: [a, b, c]becomesa, b, cin the expanded string. - Earlier actions in the same rule are visible to later ones. If action #1 sets
excerpt, action #2 can reference{{excerpt}}. - Reserved names win.
date,created_date,updated_date,today,yesterday,tomorrow,time,title,filename, andmatchare all resolved as reserved placeholders first; a property with one of those names won’t shadow them. If you have a property literally namedmatch,{{match}}always resolves via the regex-capture logic — never that property’s value.
Dates are always date-only in Note file actions
Inside Rename / Add name prefix / Add name suffix / Move file to and any Note file condition, a bare date placeholder (no explicit :FORMAT) always resolves to YYYY-MM-DD, never a time component — file and folder names can’t safely carry a : on every platform. An explicit format is always honored exactly as you typed it, including one with : in it.
Combinations
Placeholders mix freely in the same value:
{{date:YYYY-MM-DD}} - {{title}}→2026-08-23 - meeting-notesMeeting {{title}} - {{date:DD/MM/YY}}→Meeting meeting-notes - 23/08/26{{date}}/{{title}}as a Move file to destination →2026-08-23/meeting-notes(folder auto-created){{g_title}} ({{date:YYYY}})→My Post (2026)