Skip to main content
  1. Entry/

2025年のタスク管理

Obsidian Advent Calendar 2025、15日目の記事。

タスク管理を Todoist から Obsidian に移行して、1年以上経ったのでその後の様子をまとめてみる。 移行直後から新しく取り入れた項目については 🆕 をつけている。 逆に不要になった項目には取り消し線を入れている。

Todoist から移行した理由などは去年の記事を参照のこと。

タスク管理のルール #

  • すべて Obsidian 上で管理する
  • 🆕 PARAメソッド に則り、タスクを Project として扱う

今年の5月頃から PARA メソッドを導入した。 メモを以下の4つに分類するというもの。

  • Project 締切のあるタスク
  • Area of Responsibility 長期的な責務
  • Resource 関心があるもの
  • Archive 完了あるいは流れたタスク、関心がなくなったもの

SNS(確か Bluesky)で見かけて、シンプルなタスク管理方法という説明に興味を持ったのがきっかけ。

単発のタスク #

  • 🆕 タグ para=Project をセットしたノートを作る
    • ただし、覚え書き程度の軽微なものであれば、ノートの作成を省略し Daily note に箇条書きするだけでよいことにしている
  • 🆕 期日が決まっている場合はタグ due_date にその日付をセットする
  • 実行予定日が決まっているものは対象日の Daily note に記録する
  • 実行予定日が決まっていないものは専用のノートに記録する。実行日が決まり次第、その日の Daily note に移動する
    • 📝 タスクごとにノートを作る運用になったので、実行予定日未定ノートは不要になった

繰り返しタスク #

  • Plugin Silhouette を使用し、Daily notes に Silhouette: Insert tasks する

Templater の Daily note テンプレートで、タスク挿入コマンドを自動実行するようにしている。

<%* app.commands.executeCommandById("obsidian-silhouette:insert-tasks") -%>

その日の予定 #

🆕 昨年は繰り返しタスクの一つとして扱っていたが、管理方法を独立させた。

Google Calendar Importer は自作のプラグイン。 Daily note 上で実行すれば同日の予定をインポートすることができる。 前回利用を検討していた Google Calendar はオーバースペックだったので、 必要最小限の機能を持つプラグインを自分で作ることにした。

こちらも Daily note テンプレートで自動実行している。

<%* app.commands.executeCommandById("google-calendar-importer:import-google-calendar-events") -%>

Daily note を作るだけでその日の予定が自動挿入される。快適。

タスクの処理 #

  • チェックリストのチェック方法でタスクの状態を表す
    • [ ] 未着手
    • [>] 進行中
    • [/] 別日に持ち越し
    • [-] キャンセル
    • [b] 🆕 待ち
      • レビュー待ちなど、自分ではそのタスクが進められない状態になった時に使う
  • 別日に持ち越すタスク
    • 完了しなかった場合も、そのまま Daily notes に残す
    • 続きを実行する日の Daily notes にタスクをコピーする

待ち状態を表すようになった以外は昨年と変わらない。 チェックリストのタスク状態の表示には、テーマ MinimalAlternate checkboxes を利用している。

チェックマークのバリエーション

タスク管理の運用 #

ルールをいつ適用しているのか。

タスク整理のタイミング #

その日のタスクを整理するときに、前日の未着手&仕掛りタスクを次の実行日にコピーしている。 基本は前日の未完・仕掛りタスクを翌日に持ち越すことになる。 このあたりは変わらず。

🆕 仕掛りタスクのチェックマーク付け([/])は Apply patterns plugin で行っている。 未着手&仕掛タスクを移動し終わったら、 Apply Patterns: Apply pattern to whole document を実行している。

仕掛りにする設定

Dashboard でのタスク確認 #

🆕 Dataview ではなく、Bases を使うようになった。 公式機能なので今後のサポートも安定しているだろうというのと、自分の使い方であれば Bases の機能で十分だろうという判断から(単に新しい機能を使いたかったというのもある)。 Dashboard 用のノートを作り、そこで一覧できるようにしている。

Dashboard

Dashboard note の base クエリ例

```base
filters
  and:
    - para == "Project"
formulas:
  title: link(file.name, title)
views:
  - type: table
    name: In Progress
    groupBy:
      property: status
      direction: ASC
    order:
      - formula.title
      - tags
      - due_date
      - created_at
    sort:
      - property: created_at
        direction: ASC
```

タスク整理のタイミングで過去の未完了タスクを当日以降の Daily note にコピーしたり、 実行日未定ノートにコピーしたりしている。

Daily note からのタスク確認 #

🆕 Daily note に Bases のテーブルを表示し、締切が近いタスク、その日に完了したタスクを表示するようにした。 期限が近い(3日以内)のみ完了タスクと、その日に完了したタスクを抽出している。 見る頻度は Dashboard よりもこちらの方が高い。

Daily note

Templator でその日の関連タスクを抽出して表示する base クエリを生成するようにしている。

## Task (due date is coming, over due)
```base
filters:
  and:
    - file.hasTag("task")
    - para == "Project"
    - due_date != null
    - date(due_date) < date("<% tp.date.now("YYYY-MM-DD", 3, tp.file.title, "YYYY-MM-DD") %> 23:59:59")
formulas:
  title: link(file.name, title)
  tags: file.tags.filter(value != "#task")
views:
  - type: table
    name: Tasks
    order:
      - formula.title
      - status
      - formula.tags
      - due_date
      - created_at
    sort:
      - property: due_date
        direction: ASC
```

## Task (completed)
```base
filters:
  and:
    - file.hasTag("task")
    - status == "done"
    - date(archived_at) >= date("<% tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-MM-DD") %> 00:00:00")
    - date(archived_at) <= date("<% tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-MM-DD") %> 23:59:59")
formulas:
  title: link(file.name, title)
  tags: file.tags.filter(value != "#task")
views:
  - type: table
    name: Completed tasks
    order:
      - formula.title
      - status
      - formula.tags
      - due_date
      - completed_at
    sort:
      - property: completed_at
        direction: ASC

tag 表示は formula で files.tags.filter(value != "#task") としてすべての行に表示されてしまう #task を取り除いているが、 これをやると行を直接編集して tag を更新するという Bases の機能が使えなくなるので、単なる tags に戻すかも。

不満点 #

PARA メソッドの効能 #

PARA メソッドを導入したものの、うまく使えているのかどうかは不明・・・。 定期的に Area から Archive に移動するなど、メンテナンスしないといけない気はするが、できていない。

仕掛タスクの翌日引き継ぎ #

翌日へのタスク引き継ぎが未だに手動コピーなので、これをうまく自動化したいところ。 これも単機能のプラグインにしてしまえばよさそう。

Dashboard のカンバン表示 #

カンバンで表示したいが、Bases ではできない。 フォーラムにトピックがあるし、そのうち実装されそうではある。

その他 #

Coding Agent のお陰でオレオレプラグインが作りやすくなって非常に助かっている。 プラグインを見つけても、微妙にニーズにマッチしなくて運用を試行錯誤するよりも、欲しい機能を作らせてしまえばいいようになった。 Obsidian 関連だと、その日の活動をレポートとしてフォーマットして抽出するプラグイン を作ったりしている。

タスクの整理自体を生成AIに任せるという手もあるが、ヌケモレが発生しそうでまだ怖い。 その週のハイライトを作らせるくらいならいいかもしれない。

おわりに #

昨年は Todoist から Obsidian への乗り換えがメインだったが、 今年は Obsidian 上でのタスク管理をより簡便にする工夫ができた、はず。

タスク管理一つをとっても、専用アプリ・サービスを使ったり、 紙の上でアナログに管理したり、自分のようにテキストファイルで運用したり、様々な方法があるだろう。 普遍的な課題だけあって、解法がいくつもあっておもしろい。

それではみなさんも、来年もよい Obsidian ライフを。