After a bit of a rocky start, Bases continues to get better and better. Now that the syntax is no longer changing beneath me, I feel it's finally safe to start spending some serious time with the newest Obsidian feature.
As I do, I'm often amazed at what this not-so-little core plugin can do.
In this post, I want to walk through how I used it to create a dynamic On This Day section in my Daily Note template file.
What is Bases?
Bases is a new core plugin that is currently available in the Insider releases available to Obsidian Catalyst supporters. It currently available in Insider releases to Obsidian Catalyst supporters. It basically brings Notion-type database capabilities to a collection of Obsidian notes, which is useful for organizing brings Notion-type database capabilities to a collection of Obsidian notes, which is useful for putting together things like book or video game libraries.
Here's an example of what it looks like from all the book notes I have in my vault (I'll be adding all 217 of these to LifeHQ shortly):

With Bases, you can set up different views for looking at your notes based on filters that you set up. Currently, there are only two types of views:
- Table - shows each note as a row in a table
- Cards - shows each note as a card in a grid (like my book notes image above)
You can add Bases in Obsidian in a couple of ways:
- You can open the Command Palette and select the
Create new base
command, which opens a new blank .base file - You can open the Command Palette and select the
Insert new base
command, which creates a new blank.base
file and embeds it in the open note at the current cursor location - You can insert a Bases code block and use the appropriate syntax to create the filter and view options you want to use
For this example, I used option 3. You can simply add a code block with three backticks, the word base, then close the code block with three more backticks, and a blank base will be added to your note without creating a whole separate .base file.
```base
```
If you view your note in Live Preview, you can now interact with the new Base and start configuring things.
This is one of the things I like best about Bases: you don't actually have to write the syntax by hand. You can play with the filter and view options in the Bases UI, then copy the syntax and paste it where you want it.
And that's exactly what I did, with an assist from YouTube.
Creating a View That Shows On This Day Notes
I have to give a big shoutout to Ed Nico for this excellent YouTube video he did on creating a formula that allows you to see notes that match the current day. His video is what unlocked things for me, though I've taken what he shared there in a little bit of a different direction.
The foundation of this is using a formula to return a value in a metadata property. Using Bases, you can create a property that uses a formula to display a value of true
or false
. You can then set a filter that shows only values of true
, which gives you a list of notes that match specific criteria listed in the file name.
Since all of my Daily Notes use the YYYY-MM-DD
format (i.e., 2025-07-21), I was able to isolate only notes that shared the same month and day formatting (07-21) and put them in a list.
Here's the formula from the video:
if(date(now()).month == date(file.name).month, if(date(now()).day == date(file.name).day, "TRUE", "FALSE"), "FALSE")
Basically, what this does is show a value of TRUE
if the month and date in the file name match. Which is great, but it's always a live view. If I view this on August 31st, it's going to show all of the other Daily Notes with 08-31 in the file name. This means that I can't have a historical view of what else happened "on this day" since it's always being updated to reflect the date and time of the system when looking at the note.
Fortunately, you can pull this off with the use of date tokens.
Adding the Daily Note Date Tokens
The first thing I did was replace the date(now()).month
and date(now()).day
with date and month tokens that would match the format of the specified Daily Note when created.
Here's what they look like:
{{DATE:MM}}
creates the month in a two-digit format (i.e., 07){{DATE:DD}}
creates the day in a two-digit format (i.e., 21)
Using these, I was able to rewrite the code to show files that matched the month and day associated with the Daily Note. It looked something like this:
if(date(file.name).month == "{{DATE:MM}}", if(date(file.name).day == "{{DATE:DD}}"
The ==
in the formula is used to show values that match. So using this, I was able to show all the notes that had the same month and day formatting in the file name, but it also showed the current Daily Note (which is unnecessary). So I added another part to this, which removes notes that have the same year in the file name as the current year:
if(date(file.name).year != "{{DATE:YYYY}}"
(The !=
indicates a value that does not match.)
Here's the final formula I ended up with:
if(date(file.name).month == "{{DATE:MM}}", if(date(file.name).day == "{{DATE:DD}}", if(date(file.name).year != "{{DATE:YYYY}}", "True", "False"), "False"), "False")
This formula returns a value of true
if:
- The month matches
- The day matches
- The year does NOT match
The result: A list of notes for On This Day that matches the formatting of the Daily Note where the base lives that does NOT include the current Daily Note.
A Few Other Minor Modifications
That's not all I've customized with this. Here's the full list of things my Bases code does
- It only looks at notes in the Daily Notes folder
- It creates a function using the formula up above called
on_this_day
- It renames the display names for the files to Daily Note
- It creates a Table view named On This Day
- It applies the formula as a filter
- It sorts the results in descending order (newest notes at the top)
Here's the full code snippet as it appears in my Daily Notes Template file:
```base
filters:
or:
- file.inFolder("Daily Notes")
formulas:
on_this_day: if(date(file.name).month == "{{DATE:MM}}", if(date(file.name).day == "{{DATE:DD}}", if(date(file.name).year != "{{DATE:YYYY}}", "True", "False"), "False"), "False")
properties:
file.name:
displayName: Daily Note
views:
- type: table
name: On This Day
filters:
and:
- formula.on_this_day.contains("True")
order:
- file.name
sort:
- property: file.name
direction: DESC
formula.on_this_day:
displayName: On This Day
```
And here's what it looks like at the bottom of my Daily Note:

The end result is that I can now create a new Daily Note, and the date tokens get replaced by the dates associated with that Daily Note, creating a historical On This Day section at the bottom.