README file from
GithubDaily Note Carryover
An Obsidian plugin that creates today's daily note by copying yesterday's daily note at a time you choose.
If you keep a running list of tasks, habits or context in your daily note, this saves you from copying yesterday's note by hand every morning.
What it does
At the configured time, the plugin looks for yesterday's daily note and, if today's note does not exist yet, creates it with exactly the same content.
The rules are deliberately narrow and predictable:
- It never overwrites. If today's note already exists, nothing happens.
- It never invents content. If yesterday's note does not exist, nothing is created.
- It copies verbatim. The body and the frontmatter are copied as they are. This version does not rewrite dates inside the note.
- It runs once per day. After a scheduled run the day is marked as done, so a note you deliberately delete later that day is not silently recreated. Use the command to create it again.
Installation
From Obsidian (once released)
Settings → Community plugins → Browse, search for "Daily Note Carryover", install and enable it.
Manually
- Download
main.js,manifest.jsonandstyles.cssfrom the releases page. - Copy them into
<Vault>/.obsidian/plugins/daily-note-carryover/. - Reload Obsidian and enable the plugin in Settings → Community plugins.
Settings
| Setting | Description | Default |
|---|---|---|
| Daily note folder | Folder that contains the daily notes. Leave it empty to use the vault root. Missing folders are created when a note is added. | (vault root) |
| Date format | Moment.js format used to build the file name. Slashes create subfolders, for example YYYY/MM/YYYY-MM-DD. |
YYYY-MM-DD |
| Create today's note automatically | Turns the scheduled run on or off. | On |
| Creation time | Time of day on a 24 hour clock (HH:mm). |
05:00 |
| Open the note after creation | Opens today's note as soon as it has been created. | Off |
The settings tab shows a live preview of the two paths the current folder and format resolve to, so you can check them against your existing notes before relying on the schedule.
These settings are independent of the core Daily notes plugin. Point them at the same folder and format if you want both to agree.
Running it by hand
The plugin adds one command to the command palette:
- Daily Note Carryover: Create today's note from yesterday's note
The same action is available as a calendar icon in the left ribbon.
Both apply the same rules as the scheduled run, ignoring the time of day, and always report what happened. Use them to trigger the copy early, to recreate a note you deleted, or to check your configuration.
Scheduling and its limits
Please read this before relying on the plugin.
- Obsidian has to be running. The plugin is code inside Obsidian; it cannot do anything while the app is closed. There is no background service and no server.
- A missed run is caught up at startup. If Obsidian was closed at the configured time, the plugin checks again once the vault has loaded and creates today's note then, provided the configured time for today has already passed.
- If the configured time has not passed yet, nothing happens. Starting Obsidian at 03:00 with a creation time of 05:00 does not create the note early; the scheduled run happens at 05:00 if the app is still open, otherwise at the next startup.
- Mobile background execution is not guaranteed. iOS and Android suspend apps aggressively, so a scheduled run on mobile normally happens when you next open Obsidian rather than at the exact time.
- Sync is not coordinated. If several devices are open at the configured time, each of them tries to create the note. Obsidian creates the file only once, but your sync solution may still report a conflict; running the plugin on a single primary device avoids this entirely.
- The clock is checked once a minute, so the run may be up to a minute late.
Privacy
The plugin works entirely offline. It makes no network requests, contains no telemetry or analytics, and reads and writes nothing outside the daily note folder in your vault. Its settings are stored in data.json inside the plugin folder like any other Obsidian plugin.
Compatibility
- Desktop and mobile (
isDesktopOnly: false). - Requires Obsidian 1.5.7 or later.
Development
The project uses pnpm.
pnpm install # install dependencies
pnpm dev # build and watch into main.js
pnpm build # type check and produce a production main.js
pnpm lint # ESLint, including eslint-plugin-obsidianmd
pnpm test # Vitest unit tests
Source layout:
src/
main.ts # plugin lifecycle only
settings.ts # settings interface and defaults
commands/index.ts # command registration
core/
carry-over-daily-note.ts # the copy operation
carryover-service.ts # notices and opening the note
daily-note-path.ts # date formatting and path building
scheduler.ts # the once-a-minute due check
time.ts # HH:mm parsing
ui/
ribbon.ts # left ribbon icon
settings-tab.ts # settings tab
日本語
前日の Daily Note をコピーして、当日の Daily Note を指定時刻に自動作成するプラグインです。
- 当日のノートが既にある場合は上書きしません。
- 前日のノートが無い場合は何も作成しません。
- 本文と Frontmatter はそのままコピーされ、この版ではノート内の日付を自動置換しません。
- 保存先フォルダ、ファイル名の日付形式、実行時刻、作成後に開くかどうかを設定できます。
- コマンドパレットの Create today's note from yesterday's note、または左リボンのカレンダーアイコンから手動実行できます。
制限事項として、Obsidian が起動していない間は動作しません。指定時刻に起動していなかった場合は、次回起動時(その日の指定時刻を過ぎていれば)に作成します。モバイルではバックグラウンド実行が保証されないため、実際にはアプリを開いたタイミングで作成されるのが通常です。外部通信と Telemetry は一切ありません。