home / skills / openclaw / skills / todoist-manager

todoist-manager skill

/skills/andreisuslov/todoist-manager

This skill helps you manage Todoist tasks, projects, labels, and comments via the CLI, enabling quick creation, updates, and querying.

npx playbooks add skill openclaw/skills --skill todoist-manager

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
3.7 KB
---
name: todoist
description: Manage Todoist tasks, projects, labels, and comments via the todoist CLI wrapper. Use when a user asks to add tasks, list todos, complete items, manage projects, or interact with their Todoist account.
---

# Todoist CLI

Manage Todoist via the REST API v2.

## Setup

1. Get API token: Todoist → Settings → Integrations → Developer → API token
2. Set environment variable:
   ```bash
   export TODOIST_API_TOKEN="your_token_here"
   ```
3. Make CLI executable:
   ```bash
   chmod +x ~/clawd/skills/todoist/scripts/todoist
   ```

## CLI Location

```bash
~/clawd/skills/todoist/scripts/todoist
```

## Quick Reference

### Tasks

```bash
# List all tasks
todoist tasks

# List with filter
todoist tasks --filter "today"
todoist tasks --filter "overdue"
todoist tasks --filter "#Work"
todoist tasks --project PROJECT_ID

# Quick views
todoist today
todoist overdue
todoist upcoming

# Get single task
todoist task TASK_ID

# Add task
todoist add "Buy groceries"
todoist add "Call mom" --due tomorrow
todoist add "Meeting prep" --due "today 3pm" --priority 4
todoist add "Review PR" --project PROJECT_ID --labels "work,urgent"
todoist add "Write docs" --description "Include examples"

# Update task
todoist update TASK_ID --content "New title"
todoist update TASK_ID --due "next monday"
todoist update TASK_ID --priority 3

# Complete / reopen / delete
todoist complete TASK_ID
todoist reopen TASK_ID
todoist delete-task TASK_ID
```

### Projects

```bash
# List projects
todoist projects

# Get project
todoist project PROJECT_ID

# Create project
todoist add-project "Work"
todoist add-project "Personal" --color blue --favorite

# Update project
todoist update-project PROJECT_ID --name "New Name"
todoist update-project PROJECT_ID --color red

# Delete project
todoist delete-project PROJECT_ID
```

### Sections

```bash
# List sections
todoist sections
todoist sections PROJECT_ID

# Create section
todoist add-section --name "In Progress" --project PROJECT_ID

# Delete section
todoist delete-section SECTION_ID
```

### Labels

```bash
# List labels
todoist labels

# Create label
todoist add-label "urgent"
todoist add-label "blocked" --color red

# Delete label
todoist delete-label LABEL_ID
```

### Comments

```bash
# List comments
todoist comments --task TASK_ID
todoist comments --project PROJECT_ID

# Add comment
todoist add-comment "Need more info" --task TASK_ID

# Delete comment
todoist delete-comment COMMENT_ID
```

## Filter Syntax

Todoist supports powerful filter queries:

| Filter | Description |
|--------|-------------|
| `today` | Due today |
| `tomorrow` | Due tomorrow |
| `overdue` | Past due |
| `7 days` | Due in next 7 days |
| `no date` | No due date |
| `#ProjectName` | In specific project |
| `@label` | Has label |
| `p1`, `p2`, `p3`, `p4` | Priority level |
| `assigned to: me` | Assigned to you |
| `created: today` | Created today |

Combine with `&` (and) or `|` (or):
```bash
todoist tasks --filter "today & #Work"
todoist tasks --filter "overdue | p1"
```

## Due Date Strings

Natural language due dates:
- `today`, `tomorrow`, `yesterday`
- `next monday`, `next week`
- `in 3 days`
- `every day`, `every weekday`
- `every monday at 9am`
- `Jan 15`, `2026-01-20`
- `today at 3pm`

## Priority Levels

| Value | Meaning |
|-------|---------|
| 1 | Normal (default) |
| 2 | Medium |
| 3 | High |
| 4 | Urgent |

## Output

All commands return JSON. Pipe to `jq` for formatting:

```bash
todoist tasks | jq '.[] | {id, content, due: .due.string}'
todoist today | jq -r '.[].content'
```

## Notes

- Requires `curl` and `jq`
- All output is JSON for easy scripting
- Task IDs are numeric strings (e.g., "8765432109")
- Project IDs are also numeric strings

Overview

This skill lets you manage Todoist tasks, projects, labels, sections, and comments via a CLI wrapper that talks to the Todoist REST API v2. It exposes commands for listing, creating, updating, completing, and deleting items, returning JSON output that is easy to script. Use it to automate or quickly manipulate your Todoist account from the command line or from automation scripts.

How this skill works

The CLI reads your TODOIST_API_TOKEN from the environment and issues REST API requests to Todoist v2. Commands map to common Todoist operations (tasks, projects, sections, labels, comments) and return JSON. You can filter task lists with Todoist filter syntax, pass natural-language due dates, and pipe JSON into jq for formatted output.

When to use it

  • Add, update, complete, reopen, or delete tasks from scripts or a terminal session.
  • Bulk-list tasks with complex filters (today, overdue, project, labels).
  • Create and manage projects, sections, and labels programmatically.
  • Attach, list, or remove comments on tasks and projects.
  • Export or back up Todoist data as JSON for integrations or archiving.

Best practices

  • Set TODOIST_API_TOKEN in your environment before running commands to avoid failures.
  • Pipe JSON output to jq for readable summaries or to extract specific fields.
  • Use filter queries (today, overdue, #Project, @label) to reduce API responses.
  • Test destructive commands (delete-task, delete-project) with a safe or test project first.
  • Prefer numeric IDs when scripting to avoid ambiguous names; task and project IDs are numeric strings.

Example use cases

  • Quickly add a task: todoist add "Buy groceries" --due tomorrow --priority 2
  • List all overdue high-priority tasks: todoist tasks --filter "overdue & p4" | jq
  • Create a project and section in automation: todoist add-project "Launch" && todoist add-section --name "In Progress" --project PROJECT_ID
  • Attach a comment to a task with follow-up details: todoist add-comment "Need more info" --task TASK_ID
  • Backup current tasks as JSON for archival: todoist tasks > todoist-backup-$(date +%F).json

FAQ

How do I supply the API token?

Set the TODOIST_API_TOKEN environment variable (export TODOIST_API_TOKEN="your_token_here").

What format does the CLI return?

All commands return JSON. Use jq to format or extract fields.