Help us improve
Share bugs, ideas, or general feedback.
From todoist-extensions
This skill should be used when the user asks to "call the Todoist API", "create/read/update/delete tasks or projects", "implement OAuth", "set up webhooks", "use the sync endpoint", "authenticate with Todoist", "handle Todoist data models", or any request involving the Todoist API v1 for building integrations or extensions. Load this skill before generating or reviewing any Todoist API code.
npx claudepluginhub caleb-terry/caleb-plugins --plugin todoist-extensionsHow this skill is triggered — by the user, by Claude, or both
Slash command
/todoist-extensions:todoist-apiThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Always load the detailed references when working with the Todoist API:
Automates Todoist task creation, updates, projects, sections, filtering, and bulk operations via Composio's Rube MCP toolkit. Use for programmatic task management workflows.
Syncs tasks bidirectionally between Claude Code and PM platforms including GitHub Projects, Linear, Notion, Asana, Trello, ClickUp, Monday.com, Todoist, and local storage. Handles credentials via env vars and resolves sync conflicts with internal state as source of truth.
Automates Todoist tasks (create/update/close/delete/bulk), projects, sections, filtering via Composio toolkit and Rube MCP tools.
Share bugs, ideas, or general feedback.
Always load the detailed references when working with the Todoist API:
references/api-endpoints.md — all REST endpoints for tasks, projects, sections, labels, comments, filtersreferences/sync-endpoint.md — sync endpoint for batched reads and writes with incremental syncreferences/authentication.md — OAuth2 flow, scopes, personal tokens, short-lived extension tokensreferences/webhooks.md — webhook registration, event types, HMAC verification, payload structurereferences/data-models.md — complete field-by-field schemas for all Todoist objectshttps://api.todoist.com/api/v1
All requests require: Authorization: Bearer {token}
Token sources:
references/authentication.md)x-todoist-apptoken header in UI extension requests| Method | Endpoint | Description |
|---|---|---|
| GET | /tasks | List tasks (filterable by project, section) |
| POST | /tasks | Create a task |
| GET | /tasks/{id} | Get a task |
| POST | /tasks/{id} | Update a task |
| DELETE | /tasks/{id} | Delete a task |
| POST | /tasks/{id}/close | Complete a task |
| POST | /tasks/{id}/reopen | Reopen a task |
| GET | /projects | List projects |
| POST | /projects | Create a project |
| GET | /projects/{id} | Get a project |
| POST | /projects/{id} | Update a project |
| DELETE | /projects/{id} | Delete a project |
| GET | /sections | List sections |
| POST | /sections | Create a section |
| GET | /labels | List labels |
| POST | /labels | Create a label |
| GET | /comments | List comments (by task_id or project_id) |
| POST | /comments | Create a comment |
| POST | /sync | Sync endpoint (read/write batched) |
All list endpoints use cursor-based pagination:
limit parameter (default varies by endpoint)next_cursor — pass as cursor in next requestnext_cursor is null, no more results| Scope | Access Level |
|---|---|
task:add | Create tasks only |
data:read | Read all data |
data:read_write | Read and write all data |
data:delete | Delete tasks, comments, etc. |
project:delete | Delete projects |
backups:read | Access user backups |
priority: 1 (normal) to 4 (urgent)due object: date (YYYY-MM-DD), optional time (HH:mm), optional timezone (IANA)deadline is separate from due — use for hard deadlines distinct from schedulingduration: amount (number) + unit ("minute" | "hour" | "day"){
"error_tag": "INVALID_ARGUMENT_VALUE",
"error_code": 40,
"error": "Invalid argument value",
"http_code": 400,
"error_extra": {
"argument": "priority",
"explanation": "must be between 1 and 4"
}
}
Handle 429 (rate limit) using error_extra.retry_after for backoff.