Daily Note Carryover

by Seiichi Arai
5
4
3
2
1
Score: 50/100

Description

Creates today's daily note at a scheduled time by copying yesterday's daily note.

Reviews

No reviews yet.

Stats

0
stars
18
downloads
0
forks
9
days
9
days
9
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
3
commits

README file from

Github

Daily 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

  1. Download main.js, manifest.json and styles.css from the releases page.
  2. Copy them into <Vault>/.obsidian/plugins/daily-note-carryover/.
  3. 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 は一切ありません。

License

0BSD