Obsidian Templater Plugin: Automate Your Notes (2026 Setup Guide)
Set up the Obsidian Templater plugin in 2026: install it, build dynamic daily-note and project templates, auto-apply templates by folder, and avoid common mistakes.

Templates aren't really about saving keystrokes. They're about removing the friction that stops you from capturing a note at all. When opening a blank daily note means deciding on a date format, retyping the same headings, and hunting for yesterday's entry, you create fewer notes. When the note builds itself the moment you open it, you just write.
That's the whole promise of the Templater plugin. It takes Obsidian's confusingly named core "Templates" feature and turns it from simple find-and-replace into a small automation engine: dynamic dates, interactive prompts, cursor placement, and notes that template themselves the instant they're created. You don't need to be a developer to get most of the value, and the parts that look intimidating (the <% %> syntax) make sense within about ten minutes.
This guide walks you from a fresh install to a fully automated setup where new notes in a folder apply their template without you lifting a finger. Here's what we'll cover:
- How Templater differs from the core Templates plugin, and which one to keep
- Installing, enabling, and confirming Templater works
- Setting and organizing your template folder
- Static vs. dynamic templates and the
<% %>vs<%* %>distinction - The core syntax you'll actually use (
tp.date,tp.file,tp.system) - A complete daily-note template with prev/next navigation
- Auto-applying templates to every new note in a folder
- Real-world templates you can paste in today, plus common pitfalls
Templater vs. the core Templates plugin: which one do you actually need?
For anything beyond inserting a static date, you want Templater. Obsidian ships with a core plugin literally called "Templates" that does basic substitution, swapping {{date}}, {{time}}, and {{title}} for fixed values when you insert a template. That's it. No logic, no input, no math.
Templater is a community plugin that replaces and vastly extends that idea. The differences that matter:
- Syntax: core uses
{{date}}; Templater uses<% tp.date.now() %>and can run JavaScript. - Dynamic values: Templater computes things at insertion time, like "yesterday's date" or "the file's title formatted as a weekday."
- Interactive input: Templater can pause and ask you a question (
tp.system.prompt) or show a pick-list (tp.system.suggester). - Per-folder defaults: Templater can auto-apply a template to any note created in a given folder.
- Cursor placement: Templater drops your cursor exactly where you want to start typing.
Should you disable the core Templates plugin? If you run both with overlapping settings, you'll get confusing double-substitution behavior and template-folder conflicts. The clean recommendation: keep core Templates enabled only if some other plugin depends on it, but point all your real work at Templater and stop authoring core-style {{ }} templates. Most power users disable core Templates entirely once they switch, and nothing breaks. For the broader context on how templates fit into an Obsidian system, our guide to getting started with Obsidian templates sets the foundation.
Note: The core plugin is named "Templates" (plural, built-in). The community plugin is "Templater" (by SilentVoid13). The near-identical names are the single biggest source of confusion for newcomers.
How do you install and enable Templater?
You install Templater from Obsidian's Community plugins browser in under a minute. The exact path:
- Open Settings → Community plugins.
- If you see a "Restricted mode" or "Safe mode" warning, click Turn on community plugins first.
- Click Browse, then search for Templater.
- Pick the one authored by SilentVoid13 (it has by far the most downloads).
- Click Install, then Enable.
Tip: Older Obsidian builds called this "Safe Mode" and hid the Browse button until you disabled it. If you can't find community plugins at all, that toggle is what's blocking you.
Confirm it's working. After enabling, you should see a small Templater ribbon icon in the left sidebar (a pair of angle brackets). Open the command palette with Ctrl/Cmd + P and type "Templater" — you should see commands like Templater: Open insert template modal and Templater: Replace templates in the active file. If those appear, you're ready.
How do you set your template folder and organize templates?
Templater needs one folder to treat as your template library, set under Settings → Templater → Template folder location. Until you set this, Templater doesn't know which notes are templates.
Do this:
- Create a dedicated folder in your vault called
Templates(or_Templatesif you want it to sort to the top). - Go to Settings → Templater → Template folder location and select that folder.
- Drop each template into it as a normal Markdown note — the filename becomes the name you'll see in the insert list.
As your library grows past a handful of templates, organize with subfolders so the insert-template modal stays scannable:
Templates/Daily/Templates/Meetings/Templates/Projects/Templates/Snippets/(small reusable blocks)
Tip: Prefix template filenames with their type, like
meeting-1on1.mdorproject-new.md. With twenty templates, an alphabetized, prefixed list is far faster to scan than clever names.
Static vs. dynamic templates: what's the difference?
A static template is fixed boilerplate that comes out identical every time; a dynamic template computes values at the moment you insert it. A static meeting note always says "## Attendees." A dynamic one can stamp today's date, pull the file's title, or ask who attended — different output every time.
Dynamic behavior comes from two delimiters, and confusing them is the number-one beginner stumble:
<% %>is an output command. Whatever it evaluates to gets printed into your note.<% tp.date.now() %>writes the date.<%* %>(note the asterisk) runs JavaScript without printing. Use it for logic, variables, and loops. Nothing is written unless you explicitly do so.
Rule of thumb: if you want a value to appear in the note, use <% %>. If you're doing logic or setup, use <%* %>. A common mistake is wrapping a value-producing expression in <%* %> and then wondering why nothing shows up.
Today is <% tp.date.now("YYYY-MM-DD") %>
<%* const greeting = tp.date.now("HH") < 12 ? "Good morning" : "Good afternoon" %>
<% greeting %>, let's get to work.
The first line prints a date. The <%* %> block computes a variable silently, and the final <% greeting %> prints it. That split — compute quietly, print explicitly — is the core mental model.
What's the core Templater syntax you'll actually use?
You can build 90% of useful templates with just three families of functions: tp.date, tp.file, and tp.system. Here's the working subset.
Dates — tp.date.now() returns the current date, and you control the format and offset:
<% tp.date.now("YYYY-MM-DD") %>→2026-06-05<% tp.date.now("YYYY-MM-DD", -1) %>→ yesterday (the second argument is a day offset)<% tp.date.now("YYYY-MM-DD", 1) %>→ tomorrow<% tp.date.now("dddd") %>→ the weekday name, likeFriday
File info — pull metadata about the note itself:
<% tp.file.title %>→ the current note's title<% tp.file.creation_date("YYYY-MM-DD HH:mm") %>→ when the file was created<% tp.file.cursor() %>→ where your cursor lands after insertion (usetp.file.cursor(1),tp.file.cursor(2)to tab between multiple spots)
Interactive input — tp.system pauses and asks you:
- Free text:
<% tp.system.prompt("Meeting title?") %> - Pick from a list:
<% tp.system.suggester(["Low", "Medium", "High"], ["Low", "Medium", "High"]) %>— the first array is what's shown, the second is what's returned.
---
priority: <% tp.system.suggester(["Low","Medium","High"], ["Low","Medium","High"]) %>
created: <% tp.date.now("YYYY-MM-DD") %>
---
# <% tp.system.prompt("What's this note about?") %>
<% tp.file.cursor() %>
When you insert that, Templater asks for a priority, prompts for a title, stamps today's date, and parks your cursor in the body. No manual typing of any of it. Once your notes carry consistent frontmatter like this, they slot neatly into a wider system — see our complete guide to task management in Obsidian for where that leads.
How do you build a daily-note template?
A daily-note template's superpower is turning the note's own title into a formatted heading and into navigation links to the days around it. The trick: your daily-note filename is already a date (like 2026-06-05), so tp.file.title gives Templater a date string to work with via Moment.js.
A complete, copy-pasteable daily-note template:
---
date: <% tp.file.title %>
type: daily
---
# <% moment(tp.file.title, "YYYY-MM-DD").format("dddd, MMMM Do YYYY") %>
[[<% moment(tp.file.title, "YYYY-MM-DD").subtract(1, "days").format("YYYY-MM-DD") %>|← Yesterday]] | [[<% moment(tp.file.title, "YYYY-MM-DD").add(1, "days").format("YYYY-MM-DD") %>|Tomorrow →]]
## Focus
- <% tp.file.cursor() %>
## Tasks
- [ ]
## Log
## Notes
What's happening: the H1 reformats the filename into a friendly weekday heading. The two links use Moment's .subtract and .add to build wikilinks to the previous and next day's notes, so you can jump backward and forward through your journal. The cursor lands on your first focus item, ready to type.
Wire it up. Point your note-creation tool at this template:
- Using the core Daily notes plugin: Settings → Daily notes → Template file location → select this template.
- Using the Calendar community plugin: it respects the Daily notes template setting, so clicking a date applies it automatically.
Note: The classic gotcha — if you create a daily note by typing a new file manually instead of using the Daily notes/Calendar flow, the template won't apply. For deeper coverage of journaling workflows, see our complete guide to mastering Obsidian daily notes.
How do you auto-apply a template to every new note in a folder?
Templater's Folder Templates feature applies a chosen template to any note created inside a mapped folder, with zero manual inserting. This is the payoff most tutorials skip: a system where notes template themselves.
Set it up in two parts:
- Turn on the trigger. Go to Settings → Templater and enable Trigger Templater on new file creation. Without this, folder templates simply won't fire — it's the most common reason "it's not working."
- Map the folder. In Settings → Templater → Folder Templates, add a mapping like
Meetings→Templates/Meetings/meeting-default.md. Now every note created inside/Meetingsruns that template instantly.
A few caveats worth knowing up front:
- The trigger only fires on creation, not when you open or edit an existing note.
- If a folder template and the Daily notes template both try to claim the same note, you can get a clash — keep your daily notes in a folder that isn't also mapped in Folder Templates.
- "Trigger on new file creation" affects all new files, so very broad folder mappings (like mapping your whole vault) can surprise you. Map specific folders.
This is the kind of automation that makes a vault feel like a real productivity system rather than a pile of Markdown. If you want that whole system pre-built, the Obsibrain productivity template ships these folder-template mappings already wired so meetings, projects, and daily notes self-populate from day one.
Useful real-world templates (plus a faster way to get them)
Below are three templates you can drop into your Templates folder right now. Each combines the syntax from the earlier sections.
Meeting note — prompts for attendees and gives you an action-items section:
---
type: meeting
date: <% tp.date.now("YYYY-MM-DD") %>
attendees: <% tp.system.prompt("Attendees (comma-separated)") %>
---
# <% tp.system.prompt("Meeting title") %>
## Agenda
- <% tp.file.cursor() %>
## Notes
## Action items
- [ ]
Project note — sets status frontmatter from a pick-list and scaffolds milestones:
---
type: project
status: <% tp.system.suggester(["Planning","Active","On hold","Done"], ["Planning","Active","On hold","Done"]) %>
created: <% tp.date.now("YYYY-MM-DD") %>
---
# <% tp.file.title %>
## Goal
<% tp.file.cursor() %>
## Milestones
- [ ]
## Next actions
- [ ]
Daily note — the navigable journal template from the section above, reused as-is.
For readers who want to go further, Templater also supports user scripts via tp.user.* — reusable JavaScript functions you save in a scripts folder and call from any template. That's genuinely powerful for things like auto-generating a weekly review from your daily notes, and it's the natural next step once tp.date and tp.system feel comfortable. Connecting templated notes together with backlinks is what turns them into a real network — our guide to Obsidian linking covers how to make those connections count.
Here's the honest tradeoff, though: building, formatting, and debugging a full library of templates — meetings, projects, daily, weekly, habit trackers — is a project in itself. YAML typos, Moment.js format mistakes, and folder-template clashes eat hours. If you'd rather have the outcome than the build, Obsibrain ships an opinionated, ready-made set of templates and dashboards already configured and tested, so you skip straight to using them. And if you just want a few patterns to copy by hand, our 10 essential Obsidian template examples post is a quick starting library.
Common pitfalls and troubleshooting
Most Templater problems trace back to a handful of recurring mistakes. Check these first:
- Core Templates still conflicting. If templates behave oddly, confirm you're inserting via Templater, not the core Templates plugin. Running both with the same template folder causes double-processing.
- Template won't fire on manual creation. Folder templates only run on file creation through normal means, and only when Trigger Templater on new file creation is on. Manually typing a filename in a non-mapped folder applies nothing.
<% %>vs<%* %>printing errors. If a value isn't appearing, you probably used<%* %>(silent) when you wanted<% %>(print). If you get a stray "undefined" or a syntax error, you likely tried to print from inside a logic block.- Folder template overwriting your daily note. When both a Folder Template and the Daily notes template target the same note, behavior gets unpredictable. Separate their folders.
- Moment.js format-token mistakes. Tokens are case-sensitive:
YYYY(year) is notyyyy,MM(month) is notmm(minutes), andDD(day) is notdd. A wrong case is the usual cause of a date that comes out as garbage.
Frequently Asked Questions
Is Templater better than Obsidian's built-in Templates plugin?
Yes for anything dynamic. The core Templates plugin only does fixed substitution of values like {{date}} and {{title}}. Templater adds computed dates, interactive prompts, cursor placement, folder automation, and JavaScript. The only reason to stick with core Templates is if you genuinely never need anything beyond a static date stamp.
Do I need to know JavaScript to use Templater?
No, not for around 90% of real use. tp.date, tp.file, and tp.system.prompt/suggester cover daily notes, meetings, projects, and most everyday templates without writing a line of custom code. JavaScript only becomes necessary for advanced tp.user.* scripts.
Why isn't my Templater template being applied to new notes? Almost always one of two things: you haven't enabled Trigger Templater on new file creation in Settings → Templater, or you created the note outside the flow that applies templates (for daily notes, that means using the Daily notes/Calendar plugin rather than manually creating the file).
Can Templater run automatically without me inserting a template manually? Yes. Folder Templates apply a template to every note created in a mapped folder, and the Daily notes/Calendar settings apply your daily template on date click. Combined with the new-file-creation trigger, your notes template themselves.
Make it a habit
Templater pays off fastest when you stop thinking of templates as something you insert and start treating them as the default shape of every note. Install the plugin, set your template folder, build one daily-note template, then wire up a single Folder Template so one type of note builds itself. That first taste of a note that's already structured when you open it is usually what hooks people.
From there, add templates one at a time as you notice yourself retyping the same headings. Within a week or two you'll have a small library that quietly removes friction every single day — and if you'd rather skip the building entirely, a ready-made productivity template gets you there in an afternoon.
Obsibrain
Get the complete Obsidian second-brain system
Skip the 20-hour setup spiral. Templates, dashboards, and workflows ready in about 30 minutes — no coding required.
$49 one-time payment. Backed by our 30-day guarantee.

