NotionでOmnifocus風のタスクステーテスを実現する方法

NotionでOmnifocus風のタスクステーテスを実現する方法

こんにちは!copiです。

今日は、Notionを使ってObsidian風のタスク管理を行う方法について話します。
この記事を通じて、効率的なタスク管理システムを構築し、日々の生産性を向上させましょう。

目次
  1. OmnifocusとNotionの比較
  2. Omnifocusっぽいステータスの再現方法
  3. 実現方針
  4. まとめ

OmnifocusとNotionの比較

OmnifocusもNotionもどちらもタスクを管理することができます。

特にOmnifocusはタスク管理に特化しているため、Notionよりもタスク管理に向いているかもしれません。
ですがNotionはドキュメントと一緒に管理できたり、どちらが良いかは人次第なので一概にどちらが良いとは言えません。

今回NotionでOmnifocusっぽいタスク管理を行う方法を紹介するのは、僕自身がNotionをタスク管理以外でも使っていてOmnifocusも使っていたけどNotionで同じようなことができないかなと思ったからです。

Omnifocusっぽいステータスの再現方法

Omnifocusのタスクステータスを再現するためには、データベースを作成していくつかのプロパティを設定する必要があります。
中には関数も使うプロパティもあるので、ある程度Notionの関数について知識がある方が記事を理解しやすいですが、一度設定してしまえばOmnifocusっぽいタスク管理ができるようになります。

実現方針

今回実現するために1つの方針があります。

**基本的なフィルタリング項目はフィルターで設定せずじゃなく関数を使う**。
ということです。

例えば期限切れのタスクの条件や予測の条件など、Omnifocusで標準搭載されているものは関数を使っています。
関数ではチェックボックスのonかoffで表示しておいて、Notionのフィルターではチェックボックスがonかoffかだけでフィルタリングできるようにしています。

準備

まずはタスク管理用のデータベースを作成します。

このときデータベースの依存関係をチェックしてください。
タスクが特定の別タスクと連動してもよいように設定します。

この記事ではプロパティは英語で記載していますが、自分がわかりやすいような日本語でも問題ありません。
データベースが作成できたら、下記のプロパティを設定します。

プロパティタイプ説明
Statusステータスタスクのステータス
Doneチェックボックスタスクが完了したかどうかを示すプロパティ
Overdue関数タスクの期限が過ぎているかどうかを示すプロパティ
Flatチェックボックス重要なタスクを示すプロパティ
Forecast関数タスクの期限を示すプロパティ
Actionable関数実行可能なタスクを示すプロパティ
Contextマルチセレクトタスクのコンテキスト
Start Date日付着手開始日

プロパティができたら、次に関数のプロパティ設定をしていきます。

Status(ステータス)の設定

ステータスはOmnifocusの色と合わせた絵文字の丸を使っています。
ここは自分の好みに合わせて変更しても問題ありません。

1
if(prop("Done"), "🟢", if(prop("Overdue"), "🔴", if(prop("Flag"), "🟠", prop("Forecast") ? "🟡" : if(prop("Actionable"), "⚪" , "⚫"))))

それぞれの絵文字の意味は下記の通りです。

ステータス説明
🟢完了
🔴期限切れ
🟠フラグ付き
🟡forecast
未着手
着手不可能

今回絵文字のみでステータスを表現していますが、テキストでステータスを表現したり絵文字をあせてテキスト表示も可能です。

例えば完了であれば🟢の部分を

1
2
"完了" // テキストだけ
"🟢 完了" // 絵文字とテキスト

に変更すれば、対応できます。
絵文字とテキストを組み合わせる場合は絵文字の後に半角スペースいれるのがおすすめです。

Deadline(期限切れ)の設定

期限切れは期限が過ぎているかどうかを判定する関数で、チェックボックスでonかoffか表示します。
これ単体で使うというよりはNotionのフィルターでチェックボックスがonかoffかで期限切れのフィルタリングをしたいときに使います。

1
prop("Deadline") ? dateBetween(prop("Deadline"), now(), "days") <= -1 : false

着手可能か(Actionable)の設定

着手可能かはタスクが着手可能かどうかを判定する関数で、チェックボックスでonかoffか表示します。
ここはちょっと複雑なので意味がわからなければそのまま使ってください。

1
2
3
4
5
6
lets(
isNotActionableTag, includes(map(prop("Context"), current != "Waiting" && current != "Pending"), false),
isActionableDate, if(prop("Start Date").empty(), true, prop("Start Date") < now()),
isActionableTask, if(prop("Blocked by").empty(), true, not map(prop("Blocked by"), current.prop("Done")).includes(false)),
not prop("Done") and !isNotActionableTag and isActionableDate and isActionableTask
)

意味を紹介すると下記の4つの条件を満たしているかチェックしています。

  • ContextでWaitingやPendingが含まれていないかどうか
  • Start Date(開始日)が設定されているかどうか、設定されている場合は開始日が現在日以降かどうか
  • Blocked by(ブロックされているタスク)が空かどうか、空でない場合はブロックされているタスクが完了しているかどうか
  • タスクが完了していないかどうか

まとめ

NotionでOmnifocusっぽいタスク管理ステータスを実現することで、Omnifocusに慣れた人ならNotionを使って同じような感覚でタスク管理を行うことができます。

完全にOmnifocusと同じタスク管理がNotionでできるわけではありませんが、Notionの柔軟性を活かしてOmnifocusのようなタスク管理を行うことができるようになりました。

この記事を書いた人
KJ
KJ

初めてブログに触れたのはまだSNSが流行る前。そしてブログの楽しさをきっかけにシステムエンジニアになりました。会社員を経て独立して、人生の時間を有意義に過ごせるように日々暮らしています。 好きなことはディズニー、ライブ参加、旅行、飛行機・空港、整理収納、本、お酒、ゲーム、ObsidanやNotionのようなツールを触る、YouTubeを見るなどなど。 ■詳しいプロフィールが気になる人 こちらプロフィールを読んでください。

関連記事

  1. HOME
  2. NotionでOmnifocus風のタスクステーテスを実現する方法

注目記事