Skip to content

Decorations ​

A decoration changes how a date looks wherever it is drawn — in a calendar, a navigation block, an interval list, a toolbar's period buttons — when the conditions you set are met. Use one to see at a glance which days have a note, which ones you worked out, which sprints are still open.

A decoration is two lists: conditions, which decide whether it applies, and styles, which decide what it paints. When to decorate joins the conditions: Decorate when all conditions are fulfilled or Decorate when any condition is fulfilled. A decoration with no conditions never applies.

You want to…Go to
Decorate every calendar, or every journal on a shelfWhere decorations live
Color days by a property, a tag or the titleFrontmatter property, Title and tags
Show how much you wroteNote size
Choose what a decoration paintsStyles
See more than three marks in a cellMarks shown per position
Find out why a date looks the way it doesFinding out why

Where decorations live ​

SectionFound onApplies toConditions
Calendar decorationsthe main settings pageday cells in every calendar, whatever journals are showndate and weekday only
Shelf decorationsa shelf's pageday cells while this shelf is shown, whatever journals it holdsdate and weekday only
Journal decorationsa journal's settings pagethe journal's own periodsall of them, by period length

A calendar showing All journals draws every shelf's decorations. Calendar decorations are the vault-wide layer, and the rest of this page calls them vault-wide.

A new journal already marks the periods that have a note: it starts with one journal decoration, Check if note exists, drawn as a small circle in the theme's accent color at the bottom center — or, for a custom interval journal, as an accent-colored border on the left. Edit or delete it like any other.

Conditions ​

Which conditions a journal decoration offers depends on the journal's period:

ConditionDailyWeekly, monthly, quarterly, annuallyCustom intervals
Check title, Check tags✓✓✓
Check frontmatter property✓✓✓
Check if note exists✓✓✓
Check note size✓✓✓
Check tasks✓✓✓
Check if a notelet exists✓✓✓
Check date, Check weekday✓
Check interval offset✓

A condition about a note — title, tags, a property, its size — needs the note to exist. On a date with no note it does not match. Check tasks is the exception: with Look in set to Notelets only or Note and notelets, a date with only a notelet can match, and a date with only a task note, or a dated checkbox line from anywhere in the vault, dated on it can match whatever Look in says, provided the journal shows it. None matches a date that has a note or notelet it looks in, or a task note or dated checkbox line the journal shows dated on it, where no counted task has the chosen status.

Title and tags ​

Match by contains, starts with or ends with, ignoring case. For tags, the # is optional on both sides: work matches #work and #workout with starts with.

Frontmatter property ​

Name the property, and the condition offers the comparisons that fit its type. The type comes from Obsidian's own property types, so set it in Obsidian first; a property Obsidian has not seen is treated as text.

Property typeComparisons
Text, listexists, does not exist, equals, does not equal, contains, does not contain, starts with, ends with
Numberexists, does not exist, equals, does not equal, <, <=, >, >=
Date, date & timeexists, does not exist, on, not on, before, on or before, after, on or after
Checkboxexists, does not exist, is true, is false
  • equals and does not equal on text are exact; the others ignore case. A list property matches when any of its items does.
  • A note without the property matches does not equal, does not contain and, on a date, not on — there is no value to break them — and nothing else except does not exist.
  • Date & time properties compare by the day; the time is ignored. A value that is there but is not a date matches only exists — every comparison fails, not on included.

Checkboxes. A ticked checkbox is is true, an unticked one is is false, and a note without the property at all is does not exist. A property added to a note but never ticked holds no value yet, so it matches exists but neither is true nor is false.

Example: A workout checkbox.

Note size ​

Unit — Words or Characters — compared with <, <=, > or >=. The count is the one Obsidian shows in its status bar: frontmatter is not counted, everything else is. Add two note-size conditions to one decoration to match a band, such as at least 250 and fewer than 1000 words.

Example: Word-count bands.

Tasks ​

Check tasks asks a question about the tasks a period holds. Left at As in listing with no Narrow further rows, it asks the same question that period's task listing answers, so a decoration that lights a day and a listing that shows nothing for it cannot disagree. An explicit Status replaces the journal's own Status condition, and Narrow further replaces its conditions of the same type, so either can make the dot and the listing answer differently: Any · Done lights a day whose only task is done while the default listing shows nothing. It is one row that reads as a sentence:

  • Which tasks — Any matches when at least one task has the status. All matches when the period has at least one task and every one of them has the status; a period with no tasks never matches. None matches when the period has a note or notelet it looks in, or a task note the journal shows or a dated checkbox line it shows dated in it, and no task has the status — so a note with no tasks matches, a day whose only task note or dated line is done matches None · Open, and a date with nothing at all does not.
  • Status — As in listing, Open, Done or All. Open is To-do, In progress and On hold; Done is Done and Cancelled; All is any status. As in listing asks whatever the journal's own task listing asks: its Status condition if the journal's listing filter has one, Open if it does not. Edit that filter and every dot that follows it changes meaning with it. A dated checkbox line from another journal's note answers to that journal's whole listing filter instead, status included, the way the listing shows it: on a weekly journal that shows every status, a dot set to As in listing still does not take a done line from a daily note as a match when the daily journal's filter shows only open tasks.
  • Look in — Note only, Notelets only or Note and notelets, which is the default. With notelets only, a date can match without a period note.
  • Task date — which of a task note's dates places it in the period: Scheduled or due date, the default, or one of Due date, Scheduled date, Start date, Done date and Created date. It also picks which date of a dated checkbox line places it.

Task notes and dated checkbox lines count toward the question alongside the period's checkbox tasks, so a dot can light a day that has no note at all: one task note scheduled on it, or one - [ ] Ship it 📅 2026-10-30 line in a project note due on it, is enough for Any · Open. Only the task notes and dated lines the cell's journal shows count (task notes, dated lines). Look in does not narrow either — a task note is neither the period's note nor one of its notelets, and a dated line counts by its date wherever it sits.

Narrow further counts only the tasks that match its Heading and Tag conditions, with an and/or control for combining them. The journal's own listing filter always applies as well: a Heading or Tag condition you add here replaces the journal's conditions of that type, the journal's other conditions still apply, and the control decides how they combine. The question is then asked of the tasks that remain. A journal whose filter keeps only tasks under ## Tasks therefore ignores an unticked habit under ## Habits when All · Done is asked. Under Or, the journal's conditions join yours rather than limiting them, which is how a Tasks view block with the Or mode behaves too. Task notes are filtered the way a listing filters them: a Tag condition here matches a task note's own tags, a Heading condition does not apply to one, and of the journal's own filter only its Status condition reaches them.

Not a task items are excluded entirely and never supply the "at least one task" that All needs. Rolled over tasks are neither open nor done: they never satisfy Open or Done, but they are still counted, so a period holding one alongside done tasks does not match All · Done.

Which checkbox items count as tasks at all, and which status each checkbox marker reads as, are set on the Tasks settings block. By default a plain [ ] is To-do, [x]/[X] is Done, [/] is In progress and [-] is Cancelled; any other marker — a theme's [>], say — reads as To-do, which is open, unless you add it to the status map yourself.

A decoration can carry more than one Check tasks condition, so "some task is open" and "no task is done" can sit side by side.

Upgrading from earlier versions ​

Versions before this one had two conditions, Check if note has open tasks and Check if all tasks are completed. On upgrade they become Check tasks rows with the status written out: Any · Open and All · Done, both looking in Note and notelets. Your decorations are not otherwise touched, but several things change on days you already decorate:

  • Tasks are now read through the journal's listing filter, so on a journal that has one, some dots go dark.
  • Notelets are read too, so some dots light that did not.
  • Dated checkbox lines from anywhere in the vault count too: a journal shows every dated line by default, so a line in a project note due on a day can light that day's dot with nothing turned on.
  • Markers are read through the status map. Any marker other than a space used to count as completed; now [/] reads as In progress and a marker the map does not name — a theme's [>], say — reads as To-do, both open, so a day holding one no longer matches All · Done.
  • A rolled-over task is neither open nor done.

Has notelet ​

Matches a period with at least one notelet. Pick Notelet types to count only those; pick none to count a notelet of any type.

Date and weekday ​

Check date takes a Day, a Month and a Year, each of which can be Any day, Any month or Any year — 25 December of any year, or every day of March 2026. Check weekday takes a set of Weekdays.

Interval offset ​

For custom intervals: Count from From start or From end, and a Day — for example, day 1 from the start matches the interval's first day, and day 3 from the end matches the third-from-last day. A decoration with an offset condition marks that day in calendars; the interval's other decorations mark the interval in interval lists.

Repeating a condition ​

Title, tag, property, date, offset, tasks and note-size conditions can be added more than once. Weekday, has note and has notelet can appear once each: a second copy could not say anything the first does not.

Styles ​

Add style on the decoration's canvas:

  • Background — click the cell to add one.
  • Color — the date's text; click the number to set it.
  • Border — click the outline to add one. Border mode is Linked (one border all round) or Per side, each side with a Width, a Style — Solid, Dashed, Dotted, Groove, Double — and a color.
  • Shape — a square, circle or triangle in one of nine positions, sized relative to the font size: 1 means the same size as a letter.
  • Icon — any Obsidian icon, in one of nine positions, sized the same way.
  • Corner — a triangle in a corner; click a corner to add one.

Every color can be transparent, a theme color, or a custom color.

When several decorations apply ​

Decorations are applied vault-wide first, then the shelf's, then the journal's.

  • Background, text color, each border side, each corner hold one value. The most specific decoration wins: a journal's background beats a shelf's, which beats a vault-wide one. A transparent color still counts, so a journal can clear what a shelf painted. A border side that is not shown does not count, so a decoration drawing only a left border leaves another decoration's top border in place.
  • Shapes and icons never replace each other; they collect in their position.

Marks shown per position ​

Marks shown per position, on the main settings page, caps how many shapes and icons each of a cell's nine positions draws, collapsing the rest into a badge you can hover to see them all. 3 by default, or Unlimited. The badge reads +N and takes one of the places, so a cap of 3 shows two marks and +N. The marks kept are the most specific ones — the journal's before the shelf's, the shelf's before vault-wide. The cap changes only what is drawn, never what matched.

Example: A shelf color and a crowded cell.

Finding out why a date looks the way it does ​

  • Match badge. Each decoration in a settings list says how often it matched recently: "Matched 3 of the last 90 days", or "Matched nothing in the last 26 weeks". The window is 90 days, 26 weeks, 12 months, 8 quarters, 5 years or 20 intervals, counted back from today — or forward, for a journal that has not started. A note-size decoration shows no count — working it out would mean reading every note in the window — but still says "No notes yet" when the window holds no notes at all.
  • Explain decorations. Right-click a decorated cell — in a calendar, a navigation block, or a toolbar's period buttons — and choose Explain decorations. The Decoration breakdown lists, property by property, which decoration painted each background, border and mark, and which ones it overrode.
  • Inspect a date. From any decorations section, Inspect a date takes a Date and a Shelf in view and shows everything decorating that date across all three sections, or says that nothing does.

If a decoration's settings can't be changed at all — fields that do not respond — another plugin may be interfering. See Troubleshooting.

Examples ​

A workout checkbox ​

Set workout to the Checkbox type in Obsidian, then give the daily journal two decorations:

DecorationConditionStyle
1Check frontmatter property — workout is truea green Background
2Check frontmatter property — workout is falsea grey Background
The note's workoutThe day's cell
truegreen
falsegrey
no workout propertynot decorated
added with Obsidian's Add property and never ticked — it writes workout:not decorated

Word-count bands ​

The five-decoration row of dots from Coming from Calendar, at the bottom center, and one more decoration with two note-size conditions — Words >= 250 and Words < 1000 — drawing a dot at the top left:

WordsRow of dots, cap of 3Row of dots, UnlimitedBand dot
10011—
60022✓
80033✓
13002 and +35—

Days with one, two and three dots in a row, a band dot above two of them, and a +3 badge on the longest noteDays with one, two and three dots in a row, a band dot above two of them, and a +3 badge on the longest note

A shelf color and a crowded cell ​

A daily journal on a shelf. The shelf has a decoration painting every day blue; the journal has one painting every day rust, and seventeen more drawing marks — five circles at the top right and twelve squares at the bottom left. With Marks shown per position at 3:

  • every day is rust — the journal's background beats the shelf's;
  • the top right shows two circles and +3, the bottom left two squares and +10.

Days painted rust, each with two circles and a +3 badge at the top right and two squares and a +10 badge at the bottom leftDays painted rust, each with two circles and a +3 badge at the top right and two squares and a +10 badge at the bottom left