Journal Folder

by Charl Fourie
5
4
3
2
1
Score: 54/100

Description

Category: Note Enhancements

The Journal Folder plugin enhances folder-based journaling in Obsidian by allowing any folder in the vault to serve as a journal without special setup. Notes within designated folders are organized by daily, weekly, monthly, or yearly types based on a fixed filename format, enabling multiple independent journals in a single vault. It features automatic headers with links to related entries, customizable date patterns for note titles and links, and folder-level configuration options. This flexibility supports tailored journal structures, such as project-specific logs or general personal journals. Future planned features include a dedicated journal folder view with a calendar and task management.

Reviews

No reviews yet.

Stats

25
stars
2,425
downloads
0
forks
656
days
0
days
352
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
5
total issues
1
open issues
4
closed issues
123
commits

Latest Version

a year ago

Changelog

Fixed styling issue where the header width is not 100%

README file from

Github

Journal Folder

An Obsidian community plugin that turns any folder in your vault into a journal. Drop a note named 2026-05-04.md (or 2026-W19.md, 2026-05.md, 2026.md) into a folder, add a one-line code block at the top, and the plugin renders a navigable header — backward/forward chips, a Today link, a More… popover with higher-order period jumps, and an optional inline calendar picker.

You can run as many independent journals as you like in the same vault. A folder per project, a folder for personal notes, a folder per client — each gets its own settings, its own sequence of notes, and its own header.

Daily note header rendered by the plugin


Why folder-based?

Most journaling plugins assume one global daily-notes folder. Journal Folder assumes nothing about where journals live or how many you keep. Conventions that hold:

  • A note's basename is its date. Filename formats are fixed; everything else (title, link labels, calendar visibility, folder title) is configurable.
  • Settings cascade from global → folder → embedded. Per-folder overrides go in journal-folder.md; per-header overrides go in the body of the code block.
  • The plugin only acts on files matching the date conventions, so the rest of the folder's contents are ignored.

The vault root is not supported as a journal folder — Obsidian's link resolution behaves differently there.

Recognised file names

Note type Filename format Example
Daily YYYY-MM-DD 2026-05-04.md
Weekly gggg-[W]ww 2026-W19.md
Monthly YYYY-MM 2026-05.md
Yearly YYYY 2026.md

The weekly format uses ISO week-year (gggg/gg). If you customise weekly title patterns, use gg/gggg for the year — YYYY or GGGG will desync the displayed year from the filename around year boundaries.

Install

The plugin is published to the Obsidian community plugin directory under the name Journal Folder. Open Settings → Community plugins → Browse, search for it, install, and enable.

To run from source, clone this repo and:

npm install
npm run build      # tsc --noEmit + production esbuild → main.js

Copy main.js, manifest.json, and styles.css into <vault>/.obsidian/plugins/journal-folder/.


The journal header

Every journal note gets a header by including a journal-header code block at the top:

%% EDITING %%
```journal-header
```

That's it. The plugin replaces the code block with a rendered header keyed off the note's filename. The leading %% EDITING %% comment is optional but recommended — without it, opening a note in edit mode lands the cursor on the code block, which causes the rendered header to flicker into source until you click away. With the comment, the cursor lands on the comment line first; reading view drops the comment entirely and renders the header at the very top.

[!TIP] Use the Templater plugin (or the core Templates plugin) to inject this block automatically into new notes in each journal folder.

What the header shows

Daily note

Daily note header

The primary row shows: backward chip, More… button, Today (only if the note isn't today), forward chip. The folder title at the top is optional (see Folder title below).

  • Backward link — closest existing earlier daily note, or the note for the previous day if it doesn't exist yet but the date is today/future. Otherwise omitted.
  • Forward link — symmetric: closest existing later daily note, or the next day if today/future.
  • Today — links to today's daily note; only shown when the current note isn't today.
  • More… — opens the popover (next section).
Weekly note

Weekly note header

Backward/forward chips become weeks; Today always renders.

Monthly note

Monthly note header

Backward/forward chips become months; Today always renders.

Yearly note

Yearly note header

Backward/forward chips become years; Today always renders.

Without a folder title

If no folder title is configured, the row above the H1 is simply omitted:

Header with no folder title

The More popover

The chips on the primary row are deliberately minimal. Higher-order period jumps and lower-order period lists live in the More… popover so the bar stays uncluttered.

From a daily note

More popover, daily note

The View section lists higher-order periods that contain the current note: year (2026), month (May), week (W19). Each link is rendered only if a note exists for that period or if the period is current/future. The Show calendar / Hide calendar toggle on the right opens or closes the inline calendar picker (see next section).

From a weekly note

More popover, weekly note

A weekly note also exposes a Day section listing each day in the week, with the same exists/present/future filter applied to each link.

From a monthly note

More popover, monthly note (calendar visible)

A monthly note's lower-order section is Week. A yearly note's is Month (not shown — you've seen the pattern). The toggle on the right reads Hide calendar here because the calendar is currently visible.

The calendar picker

Toggle the calendar from the More popover and the inline picker appears below the header. It reflects the same exists/missing/today/current state the rest of the plugin uses, so you can see your whole journal at a glance:

Calendar with three months visible

Cell rules (apply uniformly across day/week/month/year cells):

  • Past + missing — italic, faded grey. Clicking opens a confirmation modal before creating the note (so you don't accidentally create back-dated entries).
  • Past + existing — accent colour, bold, underlined.
  • Present + missing — accent colour (same as future), no underline.
  • Present/future + existing — accent colour, bold, underlined.
  • Today — accent ring around the cell.
  • Current note — filled accent background. Travels with the note's time unit, so opening a monthly note paints the month cell, not the day:

Calendar viewed from a monthly note

Clicking a date that doesn't yet have a note creates it (with a confirm prompt for past dates). Arrows on the sides slide the visible month window by one month at a time.

The number of visible months is chosen automatically based on the available width, capped at 5. On mobile the cells enlarge for easier tapping and the picker drops to a single month:

Mobile calendar layout

You can have the calendar open by default for new sessions — see default-calendar-visible under Configuration. A manual toggle from the More popover wins over any default for the rest of the running Obsidian session, so navigating between folders with different defaults won't override an explicit choice.


Configuration

Settings are resolved in three layers, last wins:

  1. Global — set in Settings → Community plugins → Journal Folder. Persists in data.json.
  2. Folder — front-matter of a file named journal-folder.md in the same folder as the journal note. Subfolders never inherit from a parent folder's journal-folder.md — each folder controls its own settings.
  3. Embedded — body of the current journal-header code block, parsed line-by-line as key: value. Applies only to that one header.

Setting names are case-insensitive and tolerant of separators. All of the following are equivalent:

journal-folder-title: Atlas Migration
journal_folder_title: Atlas Migration
JOURNAL_FOLDER_TITLE: Atlas Migration
Journal folder title: Atlas Migration

Folder-level overrides

Drop a journal-folder.md in the journal folder and put any settings in the front matter:

---
journal-folder-title: Atlas Migration
default-calendar-visible: true
daily-note-title-pattern: dddd, Do MMMM YYYY
---

Notes about this folder go here. The body is ignored by the plugin.

[!CAUTION] Anything set at folder level applies to every journal header in that folder, but does not affect the actual folder name on disk. journal-folder-title is a display label only.

Per-header overrides (embedded config)

Settings inside a code block override both global and folder settings — but only for that single header:

%% EDITING %%
```journal-header
default-calendar-visible: true
daily-note-title-pattern: dddd, Do MMMM YYYY
```

Settings reference

All title patterns use moment.js format syntax.

Setting What it does
daily-note-title-pattern H1 title pattern for daily notes. Don't include sub-day units (hours, minutes).
daily-note-short-title-pattern Pattern used for chips/links pointing to daily notes. Keep it short — multiple chips render side by side.
daily-note-medium-title-pattern Pattern for daily-note links whose target is in a different year than the source — typically the short pattern plus the year, so the year change is explicit.
weekly-note-title-pattern H1 title pattern for weekly notes. Use gg/gggg for the year, not YYYY/GGGG — the filename uses ISO week-year and they desync at year boundaries.
weekly-note-short-title-pattern Chip/link pattern for weekly notes. Same gg/gggg caveat.
weekly-note-medium-title-pattern Cross-year weekly link pattern. Same caveat.
monthly-note-title-pattern H1 title pattern for monthly notes. Don't include sub-month units.
monthly-note-short-title-pattern Chip/link pattern for monthly notes.
monthly-note-medium-title-pattern Cross-year monthly link pattern.
yearly-note-title-pattern H1 title pattern for yearly notes. Don't include sub-year units.
yearly-note-short-title-pattern Chip/link pattern for yearly notes.
yearly-note-medium-title-pattern Cross-year yearly link pattern (rare; usually identical to short).
journal-folder-title Display title shown above the H1 in the header. Typically set per-folder, not globally.
use-folder-name-as-default-title If true and journal-folder-title isn't set, falls back to the folder name.
default-calendar-visible If true, the calendar picker is open when Obsidian starts. A manual toggle in the current session wins over this.

Folder title resolution

The header's folder-title row is resolved as:

  1. If journal-folder-title is configured (folder or embedded), use it.
  2. Else if use-folder-name-as-default-title is true, use the folder's actual name.
  3. Else omit the row entirely.

Tips

  • Templater with the Folder Templates feature is the cleanest way to ensure every new note in a journal folder starts with the journal-header code block. The core Templates plugin works too.
  • Hot-reload during development — if you're iterating on a custom build, the Hot Reload plugin will reload journal-folder whenever its main.js rebuilds.
  • Filename format is fixed. If you have an existing journal in a different format, rename the files to one of the four supported patterns. The display patterns are entirely up to you; only the filename is rigid.

Development

npm install
npm run dev        # esbuild watch → main.js (inline sourcemap)
npm run build      # type-check + production build
npm test           # vitest run
npm run test:watch # vitest watch

CLAUDE.md documents the architecture in more detail (plugin shell → feature set, settings resolution, the calendar/header components). It's worth a read if you're making non-trivial changes.

Regenerating the screenshots

Every screenshot in this README is produced by a Playwright harness in documents/screenshot-harness/. If you change the plugin's HTML or CSS, regenerate them with:

node documents/screenshot-harness/render.mjs

See documents/screenshot-harness/README.md for the why, the trade-offs, and how to add new scenarios.

License

GPL-3.0 — see LICENSE.md.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
MAKE.md
3 years ago by MAKE.md
Checklist
5 years ago by delashum
Thino
4 years ago by Quorafind
A quick capture plugin for Obsidian, all data from your notes.
File Color
3 years ago by ecustic
An Obsidian plugin for setting colors on folders and files in the file tree.
Longform
5 years ago by Kevin Barrett
A plugin for Obsidian that helps you write and edit novels, screenplays, and other long projects.
Consistent attachments and links
5 years ago by Dmitry Savosh
Obsidian plugin. Move note with attachments.
Auto Note Mover
4 years ago by faru
This is a plugin for Obsidian (https://obsidian.md).
Journals
2 years ago by Sergii Kostyrko
Zoottelkeeper
5 years ago by Akos Balasko
Obsidian plugin of Zoottelkeeper: An automated folder-level index file generator and maintainer.
Tasks Calendar Wrapper
3 years ago by zhuwenq
This plugin currently provides a timeline view to display your tasks from your obsidian valut, with customizable filters and renderring options.
Manual Sorting
a year ago by Kh4f
📌 DnD file sorting for Obsidian
Janitor
4 years ago by Gabriele Cannata
Performs various maintenance tasks on the Obsidian vault
Periodic PARA
3 years ago by YiBing Lin
Obsidian Plugin for combining P.A.R.A with Periodic Notes(LifeOS for Obsidian)
File Order
3 years ago by lukasbach
Obsidian plugin to reorder files with drag-and-drop by customizing a number-prefix in the filenames
Task Collector (TC)
5 years ago by ebullient
Manage tasks and logs within an Obsidian note.
Hide Folders
3 years ago by JonasDoesThings
Toggle the visibility of folders in the Obsidian.MD file navigator based on name-patterns
TickTickSync
2 years ago by thesamim
Task List Kanban
2 years ago by Chris Kerr
Dynamic Outline
a year ago by theopavlove
Adds a customizable GitHub-like floating table of contents to Obsidian.
Vantage - Advanced search builder
5 years ago by ryanjamurphy
Vantage helps you build complex queries using Obsidian's native search tools.
Daily Note Outline
3 years ago by iiz
Add a custom view which shows outline of multiple daily notes with headings, links, tags and list items
Dangling links
5 years ago by Graydon Hoare
obsidian plugin for displaying dangling links
Journal Review
3 years ago by Kageetai
Review your daily notes on their anniversaries, like "what happened today last year"
Daily Notes Viewer
4 years ago by Johnson0907
Folders to Graph
2 years ago by Ratibus11
Display your Obsidian vault folder structure into your graphs.
Folder Focus Mode
4 years ago by grochowski
Focus file explorer on chosen folder and its files and subdirectories, while hiding all the other elements.
Plugin Manager
3 years ago by ohm-en
Allows better management of Obsidian.md plugins.
Embedded Code Title
5 years ago by tadashi-aikawa
It is an Obsidian plugin which can embeds title to code blocks.
Proletarian Wizard Task Manager
a year ago by Charles Feval
Obsidian plugin ot manage todos and projects directly from your notes.
Task Marker
3 years ago by wenlzhang
An Obsidian plugin to change task status and append text with hotkeys and right-click context menu.
Recent Notes
a year ago by Kamil Rudnicki
Recent Notes Plugin for Obsidian
Org Mode
5 years ago by ryanpcmcquen
Add Org Mode support to Obsidian.
Note Folder Autorename
5 years ago by PJ Eby
Obsidian plugin to support folder-overview notes by keeping their folder in sync
Unique attachments
5 years ago by Dmitry Savosh
Obsidian plugin. Renames attachments, making their names unique.
Tag Page
3 years ago by Matthew Sumpter
An Obsidian plugin to create and manage dedicated Markdown pages for tags, with features to automatically populate and refresh content based on user-defined settings.
Improved Random Note
2 years ago by ShockThunder
TodoTxt
3 years ago by Mark Grimes
Obsidian plugin to manage todotxt files
Week Planner
4 years ago by Ralf Wirdemann
Emotion Picker
4 years ago by dartungar
Plugin for Obsidian.md that provides an easy way to insert emotions from a customizeable list.
Diarian
2 years ago by Erika Gozar
All-in-one journaling toolkit.
At People
3 years ago by Tobias Davis
Obsidian plugin to use the familiar @ notation to cross link to people.
Auto Glossary
3 years ago by Ennio Italiano
Obsidian plugin that allows user to create a glossary of notes or a MOC from a selected folder.
Contacts
3 years ago by vbeskrovnov
With this plugin, you can easily organize and manage your contacts within Obsidian. Simply create a note with contact information and use the plugin's features to quickly search, and sort through your contacts. Contacts plugin also helps you to remember birthdays of your contacts and keeps track of the last time you met them.
YouTube Template
2 years ago by sundevista
📺 A plugin that would help you to fetch YouTube videos data into your vault.
Journaling
2 years ago by Ordeeper
View daily notes in a journal-like format, similar to Logseq. It enhances note organization and facilitates better reflection by consolidating daily notes into a continuous journaling view.
Random Structural Diary
5 years ago by Timur Sidoriuk
Todo sort
3 years ago by Ryan Gomba
A plugin for Obsidian that sorts todos within a note
Boost Link Suggestions
3 years ago by Jacob Levernier
An Obsidian (https://obsidian.md) plugin for altering the order of inline link suggestions by link count and manual boosts.
Folder Links
a year ago by Stefan Rausch
Obsidian Plugin that enables using links to folders.
Project Garden
3 years ago by Ben Goosman
Automatic Renumbering
a year ago by Omri Levi
Automatically reorders checklists and numbered lists as you edit them.
Single File Daily Notes
2 years ago by Pranav Mangal
An Obsidian plugin to create and manage daily notes in a single file
PARA Shortcuts
4 years ago by gOAT
This plugin serves usefull commands to setup and manage your knowledge using the PARA method.
Structured
4 years ago by dobrovolsky
TagMany
3 years ago by Joshua Martius
Tag many Notes at once in Obsidian
Yesterday
2 years ago by Dominik Mayer
Obsidian plugin providing Yesterday journaling support
Automatic Tags
2 years ago by Jamalam
Add tags to new notes automatically based on their path
Note archiver
3 years ago by thenomadlad
Key-Value List
2 years ago by Christian Wannerstedt
Obsidian plugin which makes it easy to turn lists into formatted key value lists
Auto Folder Collapse
2 years ago by Dario Casciato
A plugin for Obsidian that automatically collapses all child folders when you collapse a parent folder. This helps keep your file explorer organized and clutter-free.
Packrat
4 years ago by Thomas Herden
Process completed instances of recurring items created by the Obsidian Tasks plugin
ChatCBT
2 years ago by Claire Froelich
AI-powered journaling plugin for your Obsidian notes, inspired by cognitive behavioral therapy
Tag Buddy
2 years ago by David Fasullo
Unlock powerful tag editing features in Reading Mode. Add, remove and edit tags across your vault. Use tag inboxes to level up any workflow with a powerful idea assembly line.
Metadata Auto Classifier
2 years ago by Beomsu Koh
AI-powered Obsidian plugin that automatically classifies and generates metadata (tags, frontmatter) for your notes.
Content Cards
a year ago by leo
Insert content cards in Markdown, such as timeline, highlightblock, target card, book information card, music information card, movie information card, photoes ablum, business card, content subfield, countdown, SWOT,BCG.
Fold Properties By Default
a year ago by Tommy Bergeron
Always have editor/metadata properties folded by default.
Linked Data Vocabularies
3 years ago by kometenstaub
Add linked data to the YAML of your Obsidian notes.
Auto Journal
3 years ago by Evan Bonsignori
Opinionated journaling automation like daily notes but with backfills for the days that you didn't open Obsidian.
Auto Tasks
a year ago by Jamie Hurst
Obsidian plugin to combine periodic notes with tags and tasks to automatically manage your daily, weekly and project TODO lists. Requires the "Periodic Notes" and "Tasks" plugins.
Broken Links
2 years ago by ipshing
VirtFolder
2 years ago by mr.grogrig
Creating a hierarchical structure like Luhmann's Zettelkasten
Note Chain
2 years ago by ZigHolding
Package my frequently used tools, highly personal plugins.
Prioritize
3 years ago by EloiMusk
Obsidian Plugin, to prioritize stuff in Obsidian
ZettelGPT
3 years ago by Overraddit
Turbocharge Your Note-taking with AI Assistance
Brainframe
3 years ago by pedersen
Lite Gallery
2 years ago by Jordan Poles
Note aliases
3 years ago by Pulsovi
This plugin manages wikilinks aliases and save them on the aliases list of the linked note
File chucker
3 years ago by Ken Lim
Flow
2 years ago by Ben Phillips
Implements key processes in David Allen's Getting Things Done (GTD) methodology
Journalyst
2 years ago by Justin Arnold
Nav Link Header
2 years ago by ahts4962
Display navigation links at the top of the notes in Obsidian
Auto File Organizer
a year ago by mofukuru
Obsidian plugin: Automatically organizes files into folders based on their extensions.
Order List
3 years ago by Henry Gustafson
Bellboy
4 years ago by Shaked Lokits
Opinionated file structure manager for the Obsidian knowledge base.
Desk
2 years ago by David Landry
A desk for obsidian
Potato Indexer
3 years ago by LoyalPotato
Obsidian plugin to generate index based on your selection
BuJo Bullets
a year ago by Will Olson
Alternate checkbox types for Obsidian to support Bullet Journal bullets
TODO Wrangler
3 years ago by Jeel Shah
An obsidian plugin to wrangle your Todos and put them in their place.
Extended Task Lists
2 years ago by joeriddles
Extended Markdown support for task lists in Obsidian.
Feeds
2 years ago by LukeMT, pashashocky, madx
Magic feeds dataview query for obsidian
Expiration-Date-Tracker
3 years ago by Marius Wörfel
Opsidian plugin to keep track of all expiration dates, for example, for your groceries.
Hierarchical Outgoing Links
2 years ago by Jason Motylinski
Obsidian.md plugin which displays outgoing links as a hierarchy
Index Notes
2 years ago by Alejandro Daniel Noel
Plugin that automatically generates index blocks based on tags
Tag Breakdown Generator
3 years ago by Hananoshika Yomaru
Break down nested tags into multiple parent tags
Day One Importer
2 years ago by Marc Donald
Easily convert your Day One journals into Obsidian markdown.
Sort Frontmatter
2 years ago by Kanzi
Sort frontmatter automatically
Highlight Helper
2 years ago by Chongmyung Park
Helper to collect highlight in Obsidian
Cluster
2 years ago by Lorens Osman
Cluster plugin mainly designed to simplify the process of note clustering on mobile devices and work well on PCs ether
Hierarchical Backlinks
a year ago by Jason Motylinski
Plugin which displays backlinks as a tree structure based on file paths
Clipper Catalog
a year ago by Greg K.
A catalog view that provides a powerful interface for all your clipped web articles and content. Easily organize, search, and manage your web clippings within your vault.
Simple Todo
a year ago by elliotxx
A minimalist text-based todo manager (Text-Based GTD) for efficient task management in Obsidian.
Theme by Folder
a year ago by Jinmu Go
Automatically switch Obsidian themes based on the folder of the opened note
Tag Tactician
a year ago by Scott Tomaszewski
Todos sort
a year ago by Jiri Sifalda
A plugin for Obsidian that sorts todos within a note
Missing Link File Creator
a year ago by Lemon695
The plugin creates both missing links and the corresponding files.
Mass Create
a year ago by vellikhor
Create large quantities of notes easily at one time.
Vault File Renamer
a year ago by Louan Fontenele
Vault File Renamer: Automatically standardizes file names to GitHub style (lowercase, no accents, only -, ., _) while preserving folder structure and file contents.
On This Day
a year ago by Jose Elias Alvarez
Show your daily notes from this day in a simple panel view. Inspired by Day One's On This Day feature.
Daily Prompt
2 years ago by Erl-koenig
Beautiful Contact Cards
a year ago by Seth Tenembaum
A plugin for the Obsidian text editor which renders "contact" code blocks with tappable links for phone, social media, etc.
TimeSaver
2 years ago by tommy.li
downloadPDF
a year ago by Frieda
Task Mover
a year ago by Mariia Nebesnaia
A plugin for obsidian to move unfinished tasks to the daily note automatically
LongtimeDiary
2 months ago by sawamaru
Show past Daily notes on the same day in previous years.
Organized daily notes
a year ago by duchangkim
Automatically organizes your daily notes into customizable folder structures for better organization and easier navigation.
MOC Link Helper
a year ago by Bogdan Codreanu
This obsidian plugins allows you to quickly see which notes you need to include in your MOC.
Current File Tags
a year ago by Trung Tran
Kikijiki Habit Tracker
a year ago by KIKIJIKI
Kikijiki Habit Tracker Plugin for Obsidian
WhatsApp backup importer
a year ago by Luigi Cerone
Obsidian plugin that allows you to import exported WhatsApp chat archives (in .zip format) into your vault.
Tab Group Arrangement
a year ago by situ2001
Arrange the tab groups of Obsidian in a more flexible way
Instant Above Divider
a year ago by SedationH
Abbrlink
a year ago by Q78KG
Accounting Journal and Ledger
8 months ago by Javier Ribal del Río
A lightweight Obsidian plugin for recording simple accounting journal entries during class, based on the Spanish libro diario and libro mayor (general ledger). Follows the double-entry bookkeeping system. Designed for educational use — not intended as a full-featured accounting solution.
Nav Weight
a year ago by shu307
A simple plugin designed to sort files in navigation based on markdown frontmatter (also known as metadata) for Obsidian.
e-Daiary
2 years ago by Thomas Campanholi
This plugin was created to make daily entries in a journal based on the day of the year.
Previous Daily Note
a year ago by Marcos Talau
Plugin for Obsidian that opens the previous daily note
Bottom to Top
a year ago by Henry Gustafson
Dropbox Photo Grid
a year ago by Ali Moeeny
Timestamper
6 months ago by René Coignard
Insert the current timestamp into your notes.