事前コミットメントを主体としたタスク管理プラグインです。タスクの開始、終了、締め切りを事前に指定し、タイムラインビューで視覚的に管理できます。
-
タスクを作成
- [ ] 会議 @2026-02-05T14:00>15:00
-
タイムラインビューを開く
- コマンドパレット → "Task Viewer: Open Timeline View"
-
タスクを操作
- タスクカードをドラッグ&ドロップで移動・調整
- このリポジトリをクローン
npm installで依存関係をインストールnpm run buildでビルドmain.js、manifest.json、styles.cssをVaultの.obsidian/plugins/obsidian-task-viewer/にコピー
本プラグインでは、2つの方法でタスクを定義できます。
マークダウンファイルの任意の場所にタスクを記述する方法です。
基本構成として@start>end>deadlineという構成をとります。
- [ ] @2001-11-11>2001-11-12>2001-11-13 <!-- 完全な記法(SED型) -->
- [ ] @2001-11-11>2001-11-12 <!-- 締め切りの省略(SE型) -->
- [ ] @2001-11-11>>2001-11-13 <!-- 終了の省略(SD型) -->
- [ ] @>2001-11-12>2001-11-13 <!-- 開始の省略(ED型) -->
- [ ] @2001-11-11 <!-- 開始のみの指定(S-All型) -->
- [ ] @>2001-11-12 <!-- 終了のみの指定(E型) -->
- [ ] @>>2001-11-13 <!-- 締め切りのみの指定(D型) -->時刻を指定する場合はYYYY-MM-DDTHH:mmまたはHH:mmの形式で指定します。
- [ ] @2001-11-11T12:00 <!-- 開始のみの指定(S-Timed型) -->
- [ ] @2001-11-11T12:00>13:00 <!-- 同日の場合、日付省略可 -->
- [ ] @2001-11-11T12:00>2001-11-12T12:00
- [ ] @2001-11-11T12:00>2001-11-12T12:00>2001-11-13T12:00@記法を持つタスクは独立したタスクカードを生成します。インデントされた行は親タスクのカード内に表示されます。
- [ ] 会議 @2026-01-28T15:45>16:30>2026-01-31
- [ ] 準備 @14:15>15:45 # 親の日付を継承
- [ ] 片付け @16:30>17:00 # 親の日付を継承
- [ ] 報告 @>>2026-01-30 # 明示的な締切日付継承: 子タスクで時刻のみ(HH:mm)を指定すると、親タスクの日付を自動継承します。
ファイル全体を1つのタスクとして扱う方法です。プロジェクト管理や日次ノートに便利です。
---
tv-start: 2026-02-05
tv-end: 2026-02-07
tv-deadline: 2026-02-10
tv-status: ' '
tv-content: プロジェクト名
---
本文やサブタスクをここに記述
- [ ] サブタスク1
- [ ] サブタスク2| フィールド | 必須 | 説明 | 例 |
|---|---|---|---|
tv-start |
○* | 開始日時 | 2026-02-05 または 2026-02-05T14:00 |
tv-end |
終了日時 | 2026-02-07 または 2026-02-07T18:00 |
|
tv-deadline |
締切日時 | 2026-02-10 または 2026-02-10T23:59 |
|
tv-status |
タスクステータス(省略時は ) |
x, -, ! など |
|
tv-content |
タスク名(省略時は空。表示時はファイル名がフォールバック) | プロジェクト名 |
Note
tv-start, tv-end, tv-deadlineのいずれか1つは必須です。
Warning
時刻のみを記述する場合は、YAMLのsexagesimal記法を回避するため"14:00"のようにクォートで囲んでください。
Note
tv-content を省略した場合、UI表示ではファイル名フォールバックが使われ、AI Indexのcontentも basename で補完されます(inline/frontmatter)。
プロジェクト管理
---
tv-start: 2026-02-01
tv-end: 2026-02-15
tv-deadline: 2026-02-20
tv-content: ウェブサイトリニューアル
---
## サブタスク
- [ ] デザイン案作成 @2026-02-01>2026-02-05
- [ ] 実装 @2026-02-06>2026-02-12
- [ ] テスト @2026-02-13>2026-02-15日次ノート
---
tv-start: 2026-02-05
tv-content: 2026-02-05の計画
---
## タスク
- [ ] 朝のミーティング @09:00>10:00
- [ ] ドキュメント作成 @14:00>16:00frontmatterタスクでは、子要素の表示範囲を次のように定義します。
- 対象は設定された見出し(
Frontmatter Task Header/Frontmatter Task Header Level)配下のみ - その見出し配下で、最初の連続リストブロックのみ表示対象
- リスト項目はチェックボックス付き(
- [ ])だけでなく、通常の箇条書き(-)と番号付き(1.)も対象 - ネストされた子孫行も表示対象
- 空行、またはルートレベルの非リスト行で連続ブロックは終了
- 見出し外のリストや後続ブロックは表示対象外
Note
frontmatterカードの子トグルは1セットのみ描画されます(重複表示しません)。
タスク完了時に自動実行されるコマンドを==>の後に記述します。
- [ ] タスク名 @日付 ==> コマンド名(引数)タスク完了時に、コマンドを削除した新しいタスクを生成します。
- [ ] 週次レビュー @2026-01-01 ==> next(1week)
# 完了後:
- [x] 週次レビュー @2026-01-01 ==> next(1week)
- [ ] 週次レビュー @2026-01-08タスク完了時に、コマンドを維持した新しいタスクを生成します。
- [ ] 毎日の振り返り @2026-01-01 ==> repeat(1day)
# 完了後:
- [x] 毎日の振り返り @2026-01-01 ==> repeat(1day)
- [ ] 毎日の振り返り @2026-01-02 ==> repeat(1day)タスク完了時に、タスク行を指定したファイルに移動します。
- [ ] 完了したらログへ @2026-01-01 ==> move([[log.md]])| 記法 | 意味 |
|---|---|
1day / 1days |
1日 |
1week / 1weeks |
1週間(7日) |
1month / 1months |
1ヶ月 |
1year / 1years |
1年 |
すべてのタスクで共通
- タスク完了: チェックボックスをクリック
- 削除: 右クリック → Delete
- 複製: 右クリック → Duplicate
- ファイルを開く: 右クリック → Open
時刻を持つ24時間未満のタスクを表示します。
- 移動ハンドル: タスクカードをドラッグして時刻を変更
- 伸縮ハンドル: 上下の端をドラッグして開始・終了時刻を調整
24時間以上のタスクや、時刻のないタスクを表示します。
- 移動ハンドル: タスクカードをドラッグして日付を変更
- 伸縮ハンドル: 左右の端をドラッグして開始・終了日を調整
「設定された開始時刻」を日付の境界とします。デフォルトでは5:00です。
@2026-02-05T05:00→ 2026-02-05のタスク@2026-02-05T04:00→ 2026-02-04のタスク(前日扱い)
| 設定項目 | 説明 | デフォルト |
|---|---|---|
| Start Hour | 1日の開始時刻(0-23) | 5 |
| Frontmatter Task Keys | Configurable frontmatter keys for task metadata | tv-start / tv-end / tv-deadline / tv-status / tv-content / tv-timer-target-id / tv-color |
| Pomodoro Work Minutes | ポモドーロの作業時間 | 25 |
| Complete Status Chars | 完了を示すステータス文字 | ['x', 'X', '-', '!'] |
| Excluded Paths | スキャンから除外するパス | [] |
AI Indexの1行(NDJSON)は、次のフィールドを持ちます。
| フィールド | 説明 |
|---|---|
id |
正規化タスクID |
contentHash |
差分検知用ハッシュ |
parser |
inline / frontmatter など |
sourcePath |
Vault相対パス |
locator |
タスク位置アンカー(ln:<number> / blk:<blockId> / tid:<timerTargetId> / fm-root) |
status |
todo / done / cancelled / exception / unknown |
content |
タスク本文(inline/frontmatter で空の場合はファイル basename を補完) |
start |
開始日時(ISO形式またはnull) |
end |
終了日時(ISO形式またはnull) |
deadline |
締切日時(ISO形式またはnull) |
tags |
contentから抽出したタグ配列 |
raw |
元記法文字列(設定で有効時のみ) |
更新時刻は行単位ではなく ai-task-index.meta.json の generatedAt を参照してください。
allDay、durationMinutes、readOnly はv3で削除され、updatedAt はv4で削除され、sourceLine/sourceCol はv5で locator に統合され、v6で content 空値の basename 補完(inline/frontmatter限定)が追加されました。
複数デバイス間でObsidianを同期している場合(obsidian-self-hosted-livesyncなど)、タスク完了時のコマンドはローカル操作を行ったデバイスでのみ実行されます。同期先のデバイスでは重複実行されません。
Note
複数デバイスで同時に同じファイルを操作した場合、誤検出の可能性があります。通常の使用(片方のデバイスで操作、他方は同期のみ)では問題ありません。
実装の詳細、タスク型の仕様、CSS命名規則などはDEVELOPER.mdをご覧ください。
MIT License