Auto Journal
approvedby Evan Bonsignori
Opinionated journaling automation like daily notes but with backfills for the days when Obsidian wasn't opened.
Auto Journal
The core Daily notes plugin for Obsidian doesn't backfill notes for the days when Obsidian wasn't opened. This plugin does.
It uses an opinionated folder structure that isn't configurable:
- Daily Notes:
ROOT / YEAR / MONTH / DAY - - Monthly Notes:
ROOT / YEAR / {custom-name} / MONTH -
You can customize the date format of YEAR, MONTH, DAY, or set/remove the ROOT, but this plugin depends on organizing the filesystem by YEAR/MONTH/DAY.
The base of the filename in each folder should not be changed, e.g. DAY - for Daily Notes or MONTH - for Monthly Notes.
For instance, by default Daily Notes will be created like so,
Journal/2023/August/11 -
You can add whatever you'd like after the title,
Journal/2023/August/11 - Work, Dog Park, Climb with Friends & Grab Dinner
But make sure not to change the day part of the title, 11 -
Backfilling
When enabled, backfilling will create notes for previous days of the month/year when you didn't open the plugin.
For Daily Notes:
For yearbackfill will create a folder for each month before today and a note with the day prefix, e.g.11 -for each day of the month before todayFor monthbackfill will create a note with the day prefix, e.g.11 -for each day of the month before today
For Monthly Notes:
For yearbackfill will a note each month before today month prefix, e.g.January -for each month of the year before this month
Templating
You can include a configurable token (default {{auto-journal-date}}) in a template to be replaced by the date that the file would have been created in a backfill rather than the date it was actually created on.
You can also use flexible inline date format tokens like {{auto-journal-date:YYYY-MM-DD}} or {{auto-journal-date:dddd, MMMM Do YYYY}} to specify the date format directly within the token.
By default, all variables from the core Templates plugin are supported using the settings from the core Templates plugin for date formatting e.g. {{title}}, {{date}}, {{time}}
However, {{date}} and {{time}} will use the day that you opened Obsidian and Auto Journal ran to create note files on, rather than the date that a backfilled note would have if it was created on the date the note represents.
Commands
Opening:
- Today's daily/monthly note
- The next/previous from today (if running a command from a non-note file)
- The next/previous from the current note (if running a command from a note file)
can be done via the command prompt with the following Auto Journal: commands:
Open today's daily noteOpen next daily noteOpen previous daily noteOpen today's monthly noteOpen next monthly noteOpen previous monthly note
You can assign hotkeys to any of these commands in the native Obsidian Settings -> Hotkeys tab.
Navigation buttons
You can add buttons to navigate to the next, previous or today's daily/monthly note via an auto-journal-navigation code block.
Inside the codeblock include the type of the button followed by a colon (:) and the button text you want it to display, like today-daily: Today's note.
For previous and next buttons in your daily notes, you could add the following code block:
```auto-journal-navigation
previous-daily: Previous Note
next-daily: Next note
```
and they'd look something like this,

The following button types are supported:
today-dailyprevious-dailynext-dailytoday-monthlyprevious-monthlynext-monthly
You can add CSS to the following classes to change the styling and/or positions of the buttons,
auto-journal-navigation-containerfor the containing<div>auto-journal-navigation-buttonfor all the<button>sauto-journal-dailyfor all thedailytype buttonsauto-journal-monthlyfor all themonthlytype buttonsauto-journal-todayfor all thetodaytype buttonsauto-journal-nextfor all thenexttype buttonsauto-journal-previousfor all theprevioustype buttons
Or you can adjust the CSS of a specific button using the button's id which is the same as its type. For instance a next-daily button has the id that can be accessed in CSS via #next-daily
Plugins that pair well for daily journaling
-
Custom File Explorer sorting Since the default names of each journal are the full names of the months e.g.
Januarythe followingsortspecfile placed in the root folder of your journal will organize them in the correct order on your filesystem.-
Click to see sortspec
--- sorting-spec: | target-folder: /* README Check-Ins January... February... March... April... May... June... July... August... September... October... November... December... ... < a-z assets ---
-
-
Templater: Useful for inserting dates and other properties into your journal entry template.
-
Required: You must enable the "Trigger Templater on new file creation" setting for templater to work with Auto Journal
-
Click to see journal template
--- date: {{auto-journal-date}} tag: journal --- # <% moment(tp.frontmatter.date).format("dddd, MMMM DD, YYYY") %> 📆 ## People 👤 - ## Grateful For 💙 ## Photos 📸The frontmatter date set via Auto Journal token can be consumed by Templater in other functions, e.g.
<% moment(tp.frontmatter.date).format("dddd, MMMM DD, YYYY") %>
-
-
Reminder Can include a reminder combined with Templater to be notified when a monthly check-in is due to be filled out.
-
Click to see check-in template
--- date: {{auto-journal-date}} tag: check-in --- # **<% moment(tp.frontmatter.date).format("MMMM, YYYY") %> Check In** 📆 - [ ] Fill out Check In 📆 <% moment(tp.frontmatter.date).format("YYYY-MM-DD") %> ### 1. How are you? How was this month? ### 2. What did you prioritize this month? ### 3. Where do you see yourself in 1, 3, & 5 years? Has your long term vision changed? ### 4. Are your habits and goals aligned with this current vision? If so what needs to be changed to meet them? ### 5. Is there anything missing from your life? ### 6. Take back to reflect on the month. What progress did you make? What are you grateful for? ### 7. What are looking forward to in the next month?The above example uses the Tasks Plugin date format which must be set in Reminder's settings.
-
-
@ Symbol Linking I keep a
Peopledirectory at the top of my journal that I regularly link to with the@symbol. You can configure this plugin to only look for links in that directory when typing@. -
Google Photos Useful way to include photos in each of your entries while storing them in a separate app. This plugin will create thumbnails so you can still see the photos, but they'll be hosted by Google and not take up space in your vault.
Installing
The preferred method is adding this through the built-in community plugin browser in Obsidian.
Manual installation
- Create a new folder in your vault,
.obsidian/plugins/auto-journal - Download and move the files from the latest release in the Releases Page to the new folder,
.obsidian/plugins/obsidian-auto-journal - In Obsidian go to
Settings -> Community Plugins - Enable community plugins if they aren't already enabled, then and enable the checkbox for
Auto Journal
Contributing
Please open an issue with any suggestions or bug reports.
See contributing docs if you'd like to open a PR.
Acknowledgements
The Obsidian team for creating a wonderful product :purple_heart:
The implementation borrows from:
- suggest.ts and the file-suggest.ts and folder-suggest.ts that implement it are copyrighted works of Liam Cain, obsidian-periodic-notes.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.