# todoist > Todoist REST API v2経由でタスクを取得・作成・完了する。タスク管理やgoodmorningコマンドで使用。 - Author: Masahiko Ebisuda - Repository: ebibibi/ebibibi-claude-settings - Version: 20260205144814 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/ebibibi/ebibibi-claude-settings - Web: https://mule.run/skillshub/@@ebibibi/ebibibi-claude-settings~todoist:20260205144814 --- --- name: todoist description: Todoist REST API v2経由でタスクを取得・作成・完了する。タスク管理やgoodmorningコマンドで使用。 allowed-tools: Bash(bash *) --- # Todoist タスク管理スキル Todoist REST API v2を使ってタスクの取得・作成・完了を行うスキル。 ## このスキルが行うこと - Todoistのタスク一覧を取得(フィルタ指定可能) - タスクの作成・完了 - プロジェクト・ラベル情報の取得 ## 環境変数 `~/.bashrc` に設定済み: - `TODOIST_API_TOKEN` - Todoist REST API認証トークン **注意:** スクリプトは `${TODOIST_API_TOKEN}` を自動参照する。未設定時は `~/.bashrc` から直接抽出するフォールバックあり。 ## スクリプト すべての操作は以下のスクリプト経由で実行する: ```bash bash ~/.claude/skills/todoist/scripts/todoist.sh [options] ``` ## タスク取得 ### 基本的な取得 ```bash # 今日と期限切れのタスク bash ~/.claude/skills/todoist/scripts/todoist.sh tasks --filter "(overdue | today)" # 全タスク(フィルタなし) bash ~/.claude/skills/todoist/scripts/todoist.sh tasks # 特定プロジェクトのタスク bash ~/.claude/skills/todoist/scripts/todoist.sh tasks --project PROJECT_ID ``` ### よく使うフィルタ | フィルタ | 用途 | |---------|------| | `(overdue \| today)` | 期限切れと今日のタスク | | `(@毎日 \| @毎月) & (overdue \| due: today)` | 定期タスク(期日あり) | | `!(@毎日 \| @毎月)` | 定期タスク以外 | | `overdue` | 期限切れのみ | | `today` | 今日のタスクのみ | | `7 days` | 今後7日間のタスク | | `p1` | 優先度1(最高)のタスク | | `#プロジェクト名` | 特定プロジェクトのタスク | | `@ラベル名` | 特定ラベルのタスク | | `no date` | 期日なしのタスク | ### レスポンス形式 タスクはJSON配列で返される。主要フィールド: ```json { "id": "1234567890", "content": "タスク名", "description": "", "priority": 1, "labels": ["毎日"], "due": { "date": "2026-02-03", "string": "毎日", "is_recurring": true }, "project_id": "2168926891", "url": "https://app.todoist.com/app/task/1234567890" } ``` **priority値:** 1=通常, 2=低, 3=中, 4=最高(P1)。API上の値はUIと逆順。 ## タスク作成 ```bash # 基本的な作成 bash ~/.claude/skills/todoist/scripts/todoist.sh task-create --content "新しいタスク" # オプション付き bash ~/.claude/skills/todoist/scripts/todoist.sh task-create \ --content "重要タスク" \ --priority 4 \ --due "tomorrow" \ --labels '"毎日"' ``` | オプション | 説明 | |-----------|------| | `--content TEXT` | タスク名(必須) | | `--project ID` | プロジェクトID | | `--priority 1-4` | 優先度(4が最高=P1) | | `--due STRING` | 期日(下記の受付形式を参照) | | `--labels` | ラベル(JSON配列形式: `'"label1","label2"'`) | ### --due に指定できる形式 | 形式 | 例 | 状態 | |------|-----|------| | 日付 | `"2026-03-01"` | ✅ | | 英語キーワード | `"today"`, `"tomorrow"` | ✅ | | 日本語キーワード | `"毎日"`, `"毎週月曜日"` | ✅ | | 相対表現(英語) | `"next monday"`, `"in 3 days"` | ✅ | | 曖昧な表現 | `"this week"`, `"来週"` | ❌ 非対応 | **曖昧な表現は非対応。** "this week"等を使うとTodoistが `Invalid date format` を返す。具体的な日付(`"2026-02-07"`)か、明確なキーワード(`"friday"`)を使うこと。 ## タスク完了 ```bash bash ~/.claude/skills/todoist/scripts/todoist.sh task-close TASK_ID ``` ## タスク詳細取得 ```bash bash ~/.claude/skills/todoist/scripts/todoist.sh task-get TASK_ID ``` ## プロジェクト一覧 ```bash bash ~/.claude/skills/todoist/scripts/todoist.sh projects ``` ## ラベル一覧 ```bash bash ~/.claude/skills/todoist/scripts/todoist.sh labels ``` ## goodmorningコマンドとの連携 goodmorningコマンドからTodoistタスクを取得する場合: ```bash # Step 1: 今日と期限切れのタスクを取得 bash ~/.claude/skills/todoist/scripts/todoist.sh tasks --filter "(overdue | today)" # Step 2: 結果をjqで整形(必要に応じて) bash ~/.claude/skills/todoist/scripts/todoist.sh tasks --filter "(overdue | today)" | jq '.' ``` ### タスク分類ルール(goodmorning用) | カテゴリ | 条件 | 扱い | |----------|------|------| | **追跡対象** | `[[ノート名]]`を含む | Obsidianノートを読んで進捗確認 | | **重要タスク** | priority=4(P1)またはリンクあり | 優先表示 | | **定型タスク(無視)** | `@毎日`ラベル かつ リンクなし | 基本スキップ | | **期限切れ** | due.date < today | 警告表示 | ## Obsidianとの連携 - タスク内の `[[ノート名]]` は「起点ノート」として扱う - 起点ノートに関連資料・サブノートのリンクを追記して情報を集約 - Todoistから起点ノートを開けば関連情報にすべてたどり着ける状態を維持 ## トラブルシューティング ### 認証エラーが出る場合 スクリプトは `${TODOIST_API_TOKEN}` を参照する。エラーが出る場合: 1. `env | grep TODOIST` でトークンが設定されているか確認 2. 設定されていない場合、`source ~/.bashrc` を実行 3. それでもだめならスクリプトが `~/.bashrc` から直接抽出するフォールバックが動作する ### フィルタが効かない場合 - `|` の前後にスペースが必要: `(overdue | today)` (正) vs `(overdue|today)` (誤) - ラベルは `@` 接頭辞: `@毎日` - プロジェクトは `#` 接頭辞: `#Inbox` - 日本語フィルタも使用可能(Todoist側が対応)