Weekly Rollover
unlistedby Carl J. Kurtz
Automatically rolls over open todos from the previous weekly note into the current one.
Weekly Rollover
Weekly Rollover automatically carries open todos from last week's note into the current one. Open a weekly note and any unchecked tasks from the previous week are appended — no copy-paste required.
Weekly Rollover is a plugin for Obsidian.md.
Use case
I developed this plugin to keep a running list of unfinished tasks across my weekly journal notes. Each week starts with a fresh note, but open todos from the previous week roll over automatically the moment I open the new file. Completed items stay in the past; only open tasks follow me forward.
Features
- Rolls over unchecked todos (
- [ ]) from the previous week's note. - Skips completed todos (
- [x]/- [X], case-insensitive). - Preserves subheadings (
##,###, …) even when their section had no open todos. - Appends rolled-over todos at the end of the file — existing content is never modified.
- Frontmatter flag (
weekly-rollover: done) prevents double-rollover on the same note. - Runs automatically on file open; manual command available for re-runs.
Commands
| Command | Description |
|---|---|
Run on current file | Manually trigger rollover on the currently open weekly note. |
Installation
Requirements
- Obsidian
1.4.0+ - Weekly notes stored in the folder structure
<root>/YYYY/MM-MMMM/YY-Www.md(e.g.Journal Entries/2026/04-April/26-W15.md)
Installation
- Download the latest release.
- Extract the zip. It should produce a single ready-to-install
weekly-rolloverplugin folder (not loose files). - In Obsidian, open
Settings -> Community plugins. - Click the folder icon to open the third-party plugins directory.
- Drag and drop or move the extracted
weekly-rolloverfolder into that plugins directory. - Back in Obsidian Community plugins, reload plugins and enable Weekly Rollover.
File Naming Convention
Weekly Rollover expects notes to follow this path structure:
| Component | Format | Example |
|---|---|---|
| Filename | YY-Www.md | 26-W15.md |
| Year folder | YYYY | 2026 |
| Month folder | MM-MMMM | 04-April |
| Full path | <root>/YYYY/MM-MMMM/YY-Www.md | Journal Entries/2026/04-April/26-W15.md |
The month folder is determined by the Monday of the ISO week — not the file creation date.
Settings
| Setting | Type | Default | Description |
|---|---|---|---|
Enable plugin | toggle | true | Globally enable or disable automatic rollover on file open. |
Journal root folder | string | Journal Entries | Root folder that contains your weekly notes. |
To-Do heading | string | To-Dos | The H1 heading that marks the start of the to-do section (without the leading #). |
Rollover Behavior
When you open a weekly note, the plugin:
- Detects whether the file matches the
YY-Wwwfilename pattern. - Looks up the previous week's note (handling ISO year-boundary edge cases).
- Extracts all unchecked todos under the configured heading from the previous note.
- Appends them to the end of the current note.
- Sets
weekly-rollover: donein the frontmatter to prevent re-running on the same file.
The manual Run on current file command bypasses the frontmatter check but still shows a notice if there are no todos to roll over.
Contributing, Support & License
Contributing
Contributions are greatly appreciated! You can create an issue to report a bug, suggest an improvement, or ask a question. You can make a pull request to contribute to development.
Acknowledgements
This plugin was created with the help of AI, specifically Claude Sonnet 4.6.
Testing
The plugin was tested in a macOS environment. It should be platform-agnostic, but has not been tested on other operating systems.
Support
Weekly Rollover is entirely free of charge for both commercial and private use. If you enjoy using it and it solved a problem for you, please consider sharing this project or supporting it by sponsoring here on GitHub.
Happy rolling over!
License
Weekly Rollover is licensed under the MIT License. See LICENSE.md for more information.
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.