Obsidian – タスク管理

person writing bucket list on book

単なる1つの作業で終わるタスクもありますが、一連の流れとしてプロジェクト的に管理するタスクや、会議の前後に発生するタスクなど、多種多様のタスクを遅滞なく完了していく必要があります。ここでは、 Obsidian - Dataview を活用したタスク管理方法について説明します。

タスク管理項目

Obsidian 素のままでは、タグやチェックマークを利用したタスク管理がメインとなると思いますが、 Obsidian - Dataview を利用すると、実行予定日や実施日など様々な項目を利用して、管理や抽出が可能となります。

  • Title (タイトル)
  • zettelkasten 方式でファイル名では内容が不明なので、 Obsidian - Dataview で内容を把握できるようなタイトルを全ノートで設定します。
  • DueData (期限日)
    • タスクの期限日です。
  • PlanDate (作業予定日)
    • 簡単に終わらない一連のタスクは実施予定日を設定し、「本日のタスク」に表示します。
  • Worked (作業日)
    • 実際に作業をした日です。この日付を入力すると「本日のタスク」から「本日実施タスク」に移し、残りのタスクにフォーカスできるようにしています。
  • Completed (完了日)
    • タスクが本当に完了した日を登録し、以後のタスク対象に挙げないようにします。委託分などやキャンセル分などは、ステータスはそのままに完了日を登録して完了扱いにします。
  • Status (ステータス)
    • #todo/inbox
      • 振り分け待ち。可及的速やかに予定を決める必要があります。自分は基本的にこれは利用せずに、作成時に他のステータスを設定するようにしています。
      • 振り分けに迷うようであれば、このステータスを一時的に利用し、仕事の合間に振り分ける必要があります。
    • #todo/next
      • 期限日以前であろうとも早く終わらせるべきタスク。タスクは早めに処理した方がリラックスできます。タスクが多いだけで気が滅入りますし、完了マークを付けるために仕事するようなものですから。
    • #todo/active
      • 時間を見つけて対応すべきタスク。緊急ではないが、マメに確認するべきタスク。作業予定日を利用すれば、そちらで対応してもいいと思います。
    • #todo/delegated
      • 誰かに依頼したタスク。完全にお任せして終わりであれば、依頼した日を完了日としてタスクを終わらせていいですが、見届けが必要なら完了を確認してから完了日を登録しましょう。
    • #todo/scheduled
      • 予定済みのタスク。会議などで決めるタスクが相当すると思いますが、 Obsidian では簡単にノートの関連付けができるので、リンクしておいた方が分かり易いとも思います。
    • #todo/preparation
      • #todo/scheduled でもいいかもしれませんが、自分は会議用のノートはこのステータスで管理しています。
    • #todo/waiting
      • 問い合わせなどの回答待ちや、状況の変化を待っているタスクです。期限日を利用して、適宜督促するのに利用します。#todo/delegated は自部門、#todo/waiting は他部門や他社などに利用しています。
    • #todo/someday
      • 覚書程度で、週次や月次のレビューで見直した方がいいタスクです。
    • #todo/canceled
      • キャンセルになったタスクです。キャンセルになったことを明確にするため、キャンセルのステータスにして、完了日を登録します。
  • Project (プロジェクト)
    • プロジェクト管理を行う場合に利用します。
  • Client (相手先)
    • 自分は営業関係の仕事なので、外部のクライアントとの会議が多いのですが、社内であっても相手先部門を登録しておくと、その部門で検索がしやすいです。
  • Parent (元ノート)
    • タスク発生元となったノート
      • Obsidian - Note Refactor で利用しています。

タスク登録方法

テンプレートの利用

Obsidian - Templater を利用して、ある程度自動的に設定できます。

Alfred の利用

Alfred の Alfred - Workflow|Workflow や Alfred - Snippet|Snippet を利用して項目を登録できます。以下は、ノートにタスク関連項目を追加する Alfred - Snippet|Snippet です。

# Title:: 
> Status:: #todo/<% tp.file.cursor(48) %>
> Task:: <% tp.file.cursor(49) %>
> Project::  [[<% tp.file.cursor(50) %>]]
> Client::  [[<% tp.file.cursor(51) %>]]
> DueDate:: <% tp.file.cursor(52) %>
> PlanDate::
> Estimated:: <% tp.file.cursor(54) %>
> Spent::
> Worked::
> Completed::
<% tp.file.cursor(55) %>

作成時に DueDate も決める場合には、 Alfred - Workflow のオプションで日数を指定して期限日を入力することもできます。自分は、 Obsidian - Natural Language Dates で日付を入力するようにしています。

タスク管理ノート

期限超過タスク

## 期限超過タスク
```dataview
table Status, Title, Task, DueDate, Client from #todo and !"templates" and !"personal"
where (Completed = "N" or !Completed or Completed = "")
and DueDate and DueDate < date(today)
sort DueDate asc
```

本日のタスク

## 本日のタスク
table Status, Title, Task, Client, DueDate from #todo and !"templates" and !"personal"
where (Completed = "N" or !Completed or Completed = "")
and ((DueDate and DueDate = date(today)) or (PlanDate and (PlanDate = date(today) or contains(PlanDate, date(today)))))
sort DueDate asc
```
</code></pre>
<h3>次のタスク</h3>
<pre><code>## 次のタスク
table Title, Task, Client, DueDate from #todo/next and !"templates" and !"personal"
where (Completed = "N" or !Completed or Completed = "")
and (!DueDate or DueDate > date(today))
sort DueDate asc
```

直近タスク

## 直近タスク
```dataview
table Status, Title, Task, Client, DueDate from #todo and !"templates" and !"personal"
where (Completed = "N" or !Completed or Completed = "")
and (DueDate and (DueDate > date(today)) and (DueDate <= (date(today) + dur(7 day))))
sort DueDate asc
```

待ちタスク

## 待ちタスク
```dataview
table Title, Task, Client, DueDate from #todo/waiting and !"templates" and !"personal"
where !Completed and (!DueDate or DueDate > date(today))
sort DueDate asc
```

委託タスク

## 委託タスク
```dataview
table Title, Task, Client, DueDate from #todo/waiting and !"templates" and !"personal"
where !Completed and (!DueDate or DueDate > date(today))
sort DueDate asc
```

今月タスク

```dataview
table Status, Title, Task, Client, DueDate from #todo and !"templates" and !"personal"
where (Completed = "N" or !Completed or Completed = "")
and (DueDate and (DueDate > (date(today) + dur(7 day))) and (DueDate <= date(eom)))
sort DueDate asc
```
</code></pre>
<h3>本日完了タスク</h3>
<pre><code>## 本日完了タスク
```dataview
table Status, Title, Task, Client, DueDate from #todo and !"templates" and !"personal"
where Completed and Completed = date(today)
sort DueDate asc
```
</code></pre>
<h3>未完了全タスク</h3>
<pre><code>```dataview
table Status, Title from #todo and !"templates" and !"personal"
where !Completed
```

日別の管理

各日付のタスクを調べるためには、date(today) ではなく対象日付を指定する必要があります。日付をファイル名とする日誌を自動作成し、this.file.day を利用して該当日の実績を把握することができます。詳細は、 日誌テンプレート - Obsidian を参照してください。

会議のタスク管理

(会議テンプレート - Obsidian) のタスク管理 を参照してください。

広告

%d