Rollover

approved

by Stefan Imbesi

Close the previous dated note and open the next one, in one command — date-stamped, with optional templating. - This plugin has not been manually reviewed by Obsidian staff.

62 downloadsUpdated 1mo agoMIT

Rollover

A lightweight Obsidian plugin for date-stamped note workflows. One command closes the previous dated note and opens the next one — renaming the old note to mark it done and creating a fresh, date-stamped note in the same folder.

It's fully configurable, so it adapts to any naming convention rather than a single hard-coded format.

What it does

Running Roll over to the next note:

  1. Finds the most recent open note in the target folder — a note whose name ends with your pending marker.
  2. Closes it by replacing the pending marker with your done marker, using Obsidian's FileManager.renameFile so internal links to the note update automatically.
  3. Creates a new note named with the next date, plus your label and pending marker, in the same folder.
  4. Fills the new note — optionally carrying over a copy of the previous note's content, or applying a template with token substitution (otherwise it's empty).

How the date is chosen: normally it's today's real date — so after you skip days (weekends, holidays) it jumps straight to today rather than a wrong in-between date. If the note you're closing is already dated today or later, it advances to the day after instead, so you never end up with two notes on the same date.

Example (default settings)

A folder containing:

2026-06-16 ✓
2026-06-17 —     ← today's open note

Run Roll over to the next note on 18 June and you get:

2026-06-16 ✓
2026-06-17 ✓     ← closed
2026-06-18 —     ← created

Commands

CommandDescription
Roll over to the next noteClose the most recent open note, then create the next dated note (today's, or the day after the closed note if that's already today or later).
Mark current note as doneClose only the active note (pending → done). Appears only when the active note's name ends with the pending marker.

Neither command sets a default hotkey — assign your own in Settings → Hotkeys.

Settings

Folder

  • Folder modeActive file's folder (default) or Fixed folder.
  • Fixed folder path — vault-relative path used in fixed mode (e.g. Journal/2026).

File naming (with live previews)

  • Date format — Moment.js tokens, e.g. YYYY-MM-DD.
  • Note label — optional text after the date, e.g. — Log.
  • Pending marker — marks an open note, e.g. .
  • Done marker — replaces the pending marker when closed, e.g. .

New note content

  • Carry over previous content — start today's note as a copy of the previous note's content, ready to edit (default off).
  • Template file — optional vault-relative .md path (with file autocomplete).

Behaviour

  • Open note on create — open the new note after creating it (default on).
  • Show notice when a note is closed — confirm when the previous note is marked done (default on).

Markers and labels become part of the file name, so avoid characters Obsidian disallows in note titles: * " \ / < > : | ? # ^ [ ].

Templating

If a template file is configured, its contents are copied into the new note with these tokens substituted:

TokenReplaced with
{{date}}Today's date in the configured date format
{{label}}The configured note label
{{day}}Full day name, e.g. Wednesday
{{isoDate}}Full ISO date, e.g. 2026-06-17

Content precedence: if Carry over previous content is on, today's note is seeded with a copy of the previous note instead — the template is then used only on the first run, when there's no previous note to copy. With both off, the note is created empty.

Works for many conventions

The pending/done markers, date format, and label are all configurable, so the same one-command workflow fits:

Use casePending → Done
Daily log2026-06-17 —
Freelancer work log2026-06-17 Work Log [pending][done]
Student lecture notes2026-06-17 — Lecture —
Researcher field notes2026.06.17 Field Note OPENDONE
Weekly standup2026-W25 — Standup —
Personal check-ins26.06.17 — Check in —

Development

npm install      # install dev dependencies
npm run dev      # watch build → main.js
npm run build    # type-check + minified production build

To test in a vault, copy (or symlink) manifest.json, styles.css, and the built main.js into <vault>/.obsidian/plugins/rollover/, then enable the plugin in Settings → Community plugins.

Releasing

Releases are produced by .github/workflows/release.yml. Bump the version, tag it (the tag must equal the manifest.json version, with no v prefix), and push the tag:

npm version patch          # updates manifest.json + versions.json, commits, tags
git push && git push --tags

The workflow builds the plugin and attaches main.js, manifest.json, and styles.css to a draft release — review it, then publish.

License

MIT

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.