Joplin – Daily Journal Plugin

Automate Your Daily Journal in Joplin

I’ve been using Joplin as my self-hosted notes app for a while now, and one habit I wanted to build was a daily journal — a note that captures everything I touched that day. Notes I updated, todos I worked on, things I checked off. Joplin is, in fact, my entire GTD system. Notebooks are sorted by project, notes, and todos. I use the awesome Embed Search plugin to build start pages. It’s all linked. I hide the sidebar and notelist, even; the only time I need them is when starting a new project. Otherwise, with a combination of notebook names, tags, and todo’s, I have an entire GTD system.

What I really wanted was a journal so I could review what I had worked on and when.

The problem: I never remembered to write it.

So I built a plugin to do it for me.

What It Does

The Daily Journal plugin runs automatically every night at a configurable time (default 11pm). When it fires, it creates a note that looks like this:

Journal — 2025-03-04

## 📝 Notes Updated
- [Client proposal draft](:/<note-id>)
- [Meeting notes — Tuesday](:/<note-id>)

## ☐ Todos Updated
- [Follow up with accountant](:/<note-id>)

## ✅ Todos Completed
- [Send invoice to client](:/<note-id>)

Three sections: notes you touched, open todos you worked on, and todos you completed. Everything is a live internal link, so you can click straight through to any note from your journal.

The note lands in a tidy folder hierarchy: Journal / 2025 / 03 / Journal 2025-03-04. After a few months you end up with a proper archive of your days without any manual effort.

Setup

Install the plugin, then configure it under Tools → Options → Daily Journal:

  • Journal notebook path — the existing notebook to put everything under (e.g. Victor Wiebe/Journal) (this is the default, because it’s the notebook path that I use; go ahead and configure it to your own choosing).
  • Daily run time — when to create the note each day (24-hour format)
  • Tags — optional comma-separated tags applied to every journal note
  • Year / Month folder formats — defaults to YYYY and MM

That’s it. Leave Joplin running and the note will appear each night.

Manual Commands

Two commands are available from the Tools menu:

  • Create today’s journal note (Ctrl+Shift+J) — run it any time, doesn’t wait for the scheduled time
  • Create journal note for a specific date (Ctrl+Shift+Alt+J) — for retroactive entries; set the date in Tools → Options → Daily Journal → “Date to create” first, then run the command

Why Self-Hosted Matters Here

The plugin uses Joplin’s internal data API directly — it never touches the network, never calls an external service, and stores everything in your own Joplin database. If you’re running Joplin with a self-hosted sync target, your journal data stays entirely under your control. That was a hard requirement for me.

Get It

The plugin is available on the Joplin plugin registry. Search for Daily Journal in Tools → Options → Plugins.

Or grab the code from my self-hosted Gitea: Daily Journal Code


Built with the Joplin Plugin API. Tested on Joplin v3.6.

Author: Victor Wiebe

Leave a Reply

Your email address will not be published. Required fields are marked *