Skip to content

Template

A Template choice creates a new note from a template file or applies a template to an existing note. Press a hotkey, answer any prompts, and QuickAdd builds the note - filling in dates, your answers, and links as it goes. Use it to spin up a book note, a meeting note, or a project page from a layout you keep once and reuse everywhere.

Templates use QuickAdd’s own format syntax - prompts, dates, and variables included - so no other plugin is required. If your templates come from the Templater plugin, see Coming from Templater for the QuickAdd-native way to do each familiar job.

The QuickAdd Template builder page: the Name field, the line that says what the choice does, the Template, Folder, and File name fields, Inputs, Steps, and More settings

  1. Create folders named Templates and Books, then create Templates/Book.md:

    Templates/Book.md
    ---
    author:
    status: reading
    ---
    # {{VALUE:title}}
    Started {{DATE}}
  2. Open Settings → QuickAdd and choose New choice → New note from a template.

  3. The choice’s settings open as a page of the settings window. Set Name to New book note. (Before QuickAdd 2.30.0, they open in a dialog; click the name at the top to rename it.)

  4. Set Template to Templates/Book.md. (In earlier versions, this is Template path.)

  5. In Note name, enter {{VALUE:title}}. (Before QuickAdd 2.30.0, this is File name format; turn its toggle on first.)

  6. In Folder, enter Books.

  7. Click More settings. Turn Open on. Set Opening location to Reuse current tab and View mode to Live Preview.

  8. Close Settings. Leaving the page saves it. (Before QuickAdd 2.30.0, choose Done first.)

  9. Run QuickAdd: Run from the command palette and pick New book note. Enter Dune for title and confirm with Ok.

QuickAdd creates Books/Dune.md from your template, with the title, date, and frontmatter filled in. Assign the choice a hotkey (⚡ icon, or Obsidian’s Hotkeys settings) once it behaves the way you want.

A bare token in frontmatter, like Title: {{VALUE:fileName}}, is not valid YAML, so Obsidian logs a console warning when it indexes the template file itself. The warning is cosmetic - QuickAdd reads the template as text and the created note is fine - but if you want a quiet console, wrap the token in quotes:

Title: "{{VALUE:fileName}}"

Two things to know about the quoted form:

  • QuickAdd escapes the filled-in value for the surrounding quotes, so answers containing " or ' can’t break the created note’s frontmatter.
  • Quotes normally make the property a string. For a typed property, declare the type on the token and the quotes are consumed: rating: "{{VALUE:rating|type:number}}" writes rating: 42, which Obsidian reads as a Number (same for |type:checkbox and |type:slider).

If you just want to spin up a note from a template in your template folder without maintaining a Template choice per file, use the New note from template command. It lists the templates in your configured folder, prompts for the new note’s name, and creates it in Obsidian’s default location.

New note from template uses a discovery-first title picker: as you type the new note name, QuickAdd shows matching existing notes and unresolved wikilink targets first. Choose an existing note to open it unchanged, or choose the Create new note row to create the note from the selected template.

The page starts with one line that says what the choice does, for example Creates Books/{title} from Book, opens it. It changes as you change the settings below it.

Under it are the settings most template choices need:

  • Template - the template file the note is made from.
  • Folder - the folder the note is created in. Leave it empty to use Obsidian’s “Default location for new notes”.
  • Note name - the new note’s name. Leave it empty to ask for the title.

When the template file uses Templater (it holds a <% tag), a line under Template says Templater runs after the note is created, the opening line ends with runs Templater, and Templater’s own prompts are listed in Inputs. If Templater isn’t installed, the line says so instead. See Using Templater with QuickAdd 3.

Then come Inputs and Steps. Everything else is behind More settings at the bottom: the other places a note can go, what happens when the note already exists, searching existing notes first, linking, opening the note, which day {{DATE}} is about, the command palette, the ribbon, and the icon. More settings opens by itself when one of those is changed from what a new choice has, so a choice you set up shows what you set. Once you open it, it stays open for that choice until Obsidian restarts.

Make a template from the builder: New template…

Section titled “Make a template from the builder: New template…”

When there are no template files yet, or Template is empty, New template… shows next to it. It asks for a name and creates a Markdown file with that name in your first template folder, in the folder of Obsidian’s Templates core plugin when you have none, or else in Templates. The new template starts with a heading the note’s title fills in:

Templates/Meeting.md
# {{VALUE:Title}}

QuickAdd puts its path in Template and opens it in a new tab behind Settings, ready to write once you close them. If a file with that name already exists, QuickAdd leaves it alone and creates nothing.

Template is the one required setting: the path to the template you want to insert. Paths are vault-relative; a leading / is ignored.

Template path
Templates/Book.md

QuickAdd supports markdown (.md), canvas (.canvas), and base (.base) templates. The created file uses the same extension as the template. If you want a new markdown note to include a live embedded Base dashboard, see Template: Create an MOC note with a link dashboard.

The template path supports format syntax, so the path can change from run to run. Named values ({{VALUE:client}}), dates ({{DATE:YYYY}}), fields, and global variables all work in the path. The same applies to the Capture choice’s Create file with template path.

You configure
Templates/{{VALUE:collectionName}} Template.md

Running the choice prompts for a collection name and resolves to a path like Templates/Games Template.md. The created file’s extension comes from the resolved path, so a placeholder that expands to .canvas or .base produces a canvas or base file.

A path is resolved with a path-safe subset of the format syntax:

  • Macros, inline JavaScript, and {{TEMPLATE:...}} inclusion are not run while computing a path.
  • {{TITLE}} cannot be used in a path (the title is derived from the created file, not the source template).
  • The note-relative placeholders {{FOLDER}}, {{FILENAMECURRENT}}, {{LINKCURRENT}}, and {{LINKSECTION}} are left as-is in a template path, since they describe the runtime note/folder context (the target folder, or the active note and the cursor’s heading) rather than the source template. {{FOLDER}} is still available in file names and template bodies.

Note name sets a format for the created file’s name, using format syntax - so file names can be dynamic too.

You configure
£ {{DATE}} {{NAME}}
You get (with a typed name of Manually-Written-File-Name)
£ 2021-06-12 Manually-Written-File-Name

{{NAME}} is a value you enter when invoking the template. Leave Note name empty and QuickAdd asks for the note title when you run the choice, the same as writing {{VALUE}}. Before QuickAdd 2.30.0, the field is File name format, with a toggle that hides it while off; off asks for the note title.

A slash in the format creates a folder, so the name can include a path. The file is created under New note location.

You configure
{{DATE:YYYY}}/{{VALUE}}
You get (typing Kickoff)
2026/Kickoff

{{FILENAMECURRENT}} names a folder after the note you are in, for example {{FILENAMECURRENT}}/{{VALUE}}.

Search existing notes before creating applies to Template choices that use the default note-title prompt. It opens the same discovery-first picker used by New note from template: matching notes and unresolved wikilink targets appear while you type, so you can open an existing note instead of creating a duplicate.

When selecting an existing note controls what selecting a match does:

Action Result
Open note Opens the note unchanged. This is the default.
Append template to bottom Adds the template at the end of the note, after one blank line.
Insert template at top Adds the template below the note’s frontmatter.
Replace entire note Replaces all content, including frontmatter, with the template.

Append and insert use the same frontmatter merging as the other template update actions. Applying a template to a selected note requires a Markdown template. The picker names the action beside each existing note, so an update is visible before you select it.

The selected note keeps its path and name. QuickAdd skips Note name, New note location, and the new-note collision setting. {{TITLE}} and the anonymous {{VALUE}} use the selected note’s basename, and {{FOLDER}} uses its folder. The template’s other inputs still appear, including in the one-page form.

An update finishes before the next Macro step runs and follows the choice’s linking, clipboard, and Open settings. Open note always opens the selected note without applying the template, inserting links, or copying links. When the choice asks which day it is about, it asks after the picker, and not at all when it only opens the selected note.

Selecting Create new note or an unresolved wikilink target continues with normal Template creation. If a new note’s path already exists handles any collision at that generated path. The standalone New note from template command keeps the Open note behavior for existing matches.

Most of the time you want today. That’s the default, and you can leave it alone.

Sometimes you don’t. Last week’s review, yesterday’s daily, the Friday you forgot to write. Which day is the calendar day {{DATE}} uses. The template file stays the same. {{TIME}} is still the time you ran the choice, so a “written at” stamp stays honest.

  • Today is the default.
  • Ask each time opens a date picker. Picker starts on is only the first value in that picker. You can still click another day.
  • Yesterday, Last week, Next week, and Last month cover the usual jobs. A weekly note with |startof:week still lands in the right week.
  • Custom… is any other jump from today, like three days back or last year.
  • A variable… is for a {{VDATE}} or a script that already has the day.

When it isn’t today, hold Shift in the QuickAdd menu and the same choice asks for the day. If you want a hotkey for that, see Command palette below. You don’t need a second Daily Note choice.

Scripts and the CLI can pass a day too: executeChoice("Weekly review", {}, { date: "last week" }), or date=ask if you want the picker.

Decide where the note is created: New note location

Section titled “Decide where the note is created: New note location”

Folder covers the two common cases: a folder you type, or Obsidian’s default location when it is empty. For anything else, use New note location under More settings, a dropdown with four modes:

  • Obsidian default - use Obsidian’s “Default location for new notes” setting.
  • In a specific folder - create the note in the folder(s) you configure below. One folder creates the note there; several folders open a suggester asking which to use. Drag a folder’s handle, or focus the handle and press ArrowUp / ArrowDown, to change the suggester order. An Include subfolders toggle (shown only in this mode) lets the suggester offer the selected folders and their subfolders. In QuickAdd 2.30.0 or later, a folder you typed but didn’t Add is added when you close the builder; earlier versions drop it.
  • Same folder as current note - create the note next to the currently active file (falls back to the vault root if no file is open).
  • Ask for folder each time - prompt you to pick any folder in the vault each time the choice runs.

Switching modes hides the fields that don’t apply, but your configured folder list is kept - switching back restores it.

Folder paths support format syntax, including {{VALUE}}, named values such as {{VALUE:client}}, dates, and global variables:

In a specific folder
Projects/{{VALUE:client}}/{{DATE:YYYY}}

This prompts for a client and creates the file under that client’s folder for the current year.

Section titled “Link to the new note: Link to created note”

Link to created note controls whether QuickAdd inserts a link to the note it just created - handy for leaving a trail in the note you were in. Three modes:

  • Enabled (strict) - require the configured link destination to be available
  • Enabled (skip if unavailable) - insert the link when possible and skip silently when a current-note destination has no focused Markdown editor
  • Disabled - never append a link

With either enabled mode, Link destination controls where the link is written:

  • Current note - insert the link into the active Markdown editor
  • Specified note - append the link to the bottom of an existing Markdown note, such as an index or MOC, without opening that note

For Current note, strict mode keeps the legacy behavior and requires a focused Markdown editor. For Specified note, QuickAdd validates the destination note before creating the new note. It appends a normal link at the bottom of that file; it does not create the index file, insert under a heading, update properties, or remove duplicate links.

For the Current note destination, Link placement chooses the spot:

  • Replace selection - replaces any selected text with the link (default)
  • After selection - preserves the selected text and places the link after it
  • End of line - places the link at the end of the current line
  • New line - places the link on a new line below the cursor
  • In frontmatter property - adds the link to a named frontmatter property

When In frontmatter property is selected, set the property name and choose how strictly QuickAdd should handle missing or non-list properties:

  • Create or convert (default) - create the property if it is missing, or convert an existing scalar value into a list before appending the new link. Object values still throw an error.
  • Create if missing - create the property if it is missing. Existing scalar/object values still throw an error.
  • Require list - append only to an existing list property. Empty/null properties are treated as empty lists; missing properties and existing scalar/object values throw an error.

Link type is shown for any Current note body placement (Replace selection, After selection, End of line, and New line). Choose whether QuickAdd inserts a Link ([[Note]]) or an Embed (![[Note]]). An embed transcludes the linked note’s contents at the placement position, so for example New line + Embed drops ![[Note]] on its own line. The inline placements (After selection, End of line) insert the embed inline on the same line. The In frontmatter property placement and the Specified note destination stay link-only.

Link display text is shown for the selection placements (Replace selection, After selection) with the Link type. It chooses what the inserted link displays. Selected text keeps your highlight as the link’s display text:

You do
Select "Meeting with Mark", run a Template choice whose file name format is
20240101 {{SELECTED}}
You get
[[20240101 Meeting with Mark|Meeting with Mark]]

With nothing selected (or when the selection can’t be represented safely inside a link), QuickAdd inserts the plain link instead. Multi-line selections are collapsed to a single line for the display text, and vaults using Markdown-style links get [Meeting with Mark](20240101%20Meeting%20with%20Mark.md).

Copy link to clipboard copies a link to the created file after the Template choice runs. This works separately from Link to created note, so you can copy the link without inserting it into the current note, or do both. The copied link is a vault-path wikilink, ready to paste into another note.

Open opens the created file. When enabled, additional file-opening controls appear (these are shared with the Capture choice):

  • Opening location - where to open the file: Reuse current tab, New tab, Split pane, New window, Left sidebar, or Right sidebar.
  • Split direction - shown only when the location is Split pane. Arrange the new pane as Split right or Split down.
  • View mode - how to display the opened file: Source, Preview, Live Preview, or Default.
  • Focus new pane - shown for every location except Reuse current tab. Focus the opened tab immediately after opening.

Put {{CURSOR}} in the template body to choose where typing starts. The marker works for new notes and existing-note updates. The destination must be focused in an editing mode, either already or through Open. Reading view and background panes keep their state.

Try the meeting note example to create a dated note and start typing under Notes.

Add to command palette registers the choice as an Obsidian command, so you can bind a hotkey to it. It is the same switch as the lightning bolt in the choice list.

Once it is on, and Which day isn’t Ask each time, a second toggle appears: Also add “Name (pick a day)”. That registers one more command that asks which day before it runs, so you can have one hotkey for today’s note and another for any other day, from the same choice. Your main hotkey keeps using Which day.

Show in ribbon adds an icon to Obsidian’s ribbon that runs the template choice. The icon and its tooltip are the choice’s icon and name. The setting saves as soon as you flip it. A choice nested inside a macro doesn’t have it. To put a button that runs it in a note instead, see Buttons in notes.

If the note already exists decides what QuickAdd does when a note with the target name is already there. The setting works in two steps: first pick a high-level behavior, then a follow-up field appears for the two behaviors that need a detail.

With Search existing notes before creating enabled, this setting is called If a new note’s path already exists. It applies to new-note creation. Selecting an existing match has its own action.

  • If the note already exists - choose Ask every time, Update existing note, Create another note, or Keep existing note.
  • Update action - shown only when you choose Update existing note.
  • New note naming - shown only when you choose Create another note.

QuickAdd prompts you to choose one of these actions each time the target path already exists:

  • Append to bottom
  • Append to top
  • Overwrite note
  • Increment trailing number
  • Append duplicate suffix
  • Do nothing

These options modify the existing markdown, canvas, or base file:

  • Append to bottom - adds the template content to the end of the existing file, with exactly one blank line between the note and the template, however the note ends. An empty note gets the template with no blank line above it.
  • Append to top - adds the template content to the beginning of the existing file.
  • Overwrite note - replaces the existing file content with the template.

These options keep the existing file untouched and create a new file instead:

  • Increment trailing number - changes trailing digits only while preserving zero padding when present. For example, note009.md becomes note010.md.
  • Append duplicate suffix - keeps the full base name and adds (1), (2), and so on. For example, note.md becomes note (1).md.

Selecting Keep existing note applies the same result as choosing Do nothing from the prompt:

  • Do nothing - leaves the existing file unchanged and opens it automatically. This does not require the separate Open setting.

The Inputs group, above Steps, lists what the template choice asks for when it runs, in the order it first appears: in the file name, then in the folders, then in the template file. Each row shows the input’s name, its kind (value, date, field, file, or math), and where it is defined. With no file name format, QuickAdd asks for the note’s title, which is listed as the value defined in the file name.

Two controls change how a value, date, or file input is asked for, without editing the placeholder:

  • Label - the title of its prompt, and of its field in the one-page form. Leave it empty to keep the placeholder’s own, shown greyed out in the field.
  • Optional - whether you can leave it empty. It starts as the placeholder says, with |optional or without.

Both save as soon as you change them. A run that is given the value up front, from the CLI or a URI, isn’t affected. Rename the placeholder and the input asks as the placeholder says again.

An input from the template file reads Defined in and the file’s name. Click the name to open the file, and change the placeholder there.

A Templater prompt in the template file, tp.system.prompt("Guest") or tp.system.suggester(...), is listed after the file’s own inputs and reads Asked by Templater, in and the file’s name. It has no controls: Templater asks it when it runs, after QuickAdd’s prompts, and it isn’t part of the one-page form.

A template choice nested inside a macro lists its inputs without the controls.

The last group in the builder, Steps, lists what the template choice does, one line per step, for example Creates {title}, Links it on a new line here, and Opens it. The list follows the settings as you change them.

Add a step adds something to do after the template choice:

  • Run a script - a script step with no file yet. Click Choose file on it to pick the script.
  • Open a note - an Open File step. Set the note in its settings.
  • Link it - links the note on a new line in the current note.
  • Run Templater - runs Templater on the note.
  • Wait - a pause of 100 ms.

Adding a step turns the choice into a macro. QuickAdd saves the template choice, makes it the macro’s first step, adds the new step after it, and opens the macro builder. The choice keeps its name, its command, and its hotkey. To change the template choice’s settings later, use the gear on its step in the macro.

A template choice that is already a step inside a macro lists its steps but has no Add a step button.