Todoist

Manage tasks and projects in Todoist. Create, update, and organize to-dos and reminders

Todoist is a community skill for task and project management, covering task creation and updates, project organization, label and filter management, collaboration features, and productivity tracking for personal and team workflows.

What Is This?

Overview

Todoist provides AI agents with task and project management capabilities through a comprehensive API integration. It covers task creation that adds new to-do items with due dates, priorities, labels, and subtasks, project organization that groups related tasks into hierarchical structures with sections, label management that tags tasks for cross-project filtering and categorization, filter operations that create custom views based on dates, priorities, and labels, and collaboration features that share projects, assign tasks, and track team progress. The skill helps individuals and teams manage their work systematically across both simple personal workflows and complex multi-member projects.

Who Should Use This

This skill serves productivity application developers integrating comprehensive task management capabilities, personal assistant AI agents managing user to-do lists with intelligent scheduling, and automation engineers building workflow management systems for teams and individuals. It is also well suited for developers building integrations between Todoist and external tools like calendars, CRMs, or project tracking platforms.

Why Use It?

Problems It Solves

Managing tasks through manual entry in web or mobile apps becomes cumbersome when dealing with recurring workflows and batch operations. Integrating task management into AI assistant workflows requires API authentication and complex request formatting. Synchronizing tasks across multiple platforms and tools involves handling different data models and date formats. Building custom reminder and notification systems for task deadlines requires scheduling infrastructure, state management logic, and integration with multiple notification channels like email, SMS, and push notifications across devices.

Core Highlights

Task manager creates, updates, and completes tasks with due dates and priorities. Project organizer groups tasks into hierarchical structures with sections. Label system tags tasks for filtering and categorization. Collaboration engine shares projects and assigns tasks to team members.

How to Use It?

Basic Usage

import os
import requests

token = os.environ[
    'TODOIST_TOKEN']
headers = {
    'Authorization':
        f'Bearer {token}'
}

resp = requests.get(
    'https://api.todoist.com'
    '/rest/v2/tasks',
    headers=headers)
tasks = resp.json()
for task in tasks:
    print(
        f'{task["content"]}: '
        f'{task.get("due")}')

task_data = {
    'content':
        'Review report',
    'due_string': 'tomorrow',
    'priority': 3
}
requests.post(
    'https://api.todoist.com'
    '/rest/v2/tasks',
    headers=headers,
    json=task_data)

Real-World Examples

project = requests.post(
    'https://api.todoist.com'
    '/rest/v2/projects',
    headers=headers,
    json={
        'name': 'Q1 Planning'
    }).json()

tasks_to_add = [
    ('Define goals', 1),
    ('Set budget', 2),
    ('Assign teams', 3)
]
for content, priority in \
        tasks_to_add:
    requests.post(
        'https://api.todoist'
        '.com/rest/v2/tasks',
        headers=headers,
        json={
            'content': content,
            'project_id':
                project['id'],
            'priority': priority
        })

requests.post(
    f'https://api.todoist.com'
    f'/rest/v2/tasks/'
    f'{task_id}/close',
    headers=headers)

Advanced Tips

Use natural language due dates like tomorrow, next week, or every Monday to simplify task scheduling. Implement label-based filtering to create custom views that span multiple projects and categories, such as grouping all high-priority items across a team's active projects into a single actionable list. Leverage the sync API for offline support and efficient batch operations when creating many tasks at once, which reduces round trips and improves performance significantly.

When to Use It?

Use Cases

Build a personal AI assistant that creates tasks from voice commands and email action items. Integrate task management into project management workflows that automatically generate to-do lists from project plans. Create reminder systems that notify users about upcoming deadlines and overdue tasks through multiple channels. Teams can also use this skill to automate recurring sprint planning tasks, reducing manual setup at the start of each development cycle.

Related Topics

Task management, project planning, productivity tools, to-do lists, workflow automation, and time management.

Important Notes

Requirements

A Todoist account with an API token configured in environment variables for authenticating requests. Python with the requests library installed for making HTTP API calls. Network access to Todoist API endpoints for task, project, and label operations.

Usage Recommendations

Do: use natural language date parsing for user-friendly task scheduling. Organize tasks into projects and sections for better structure and findability. Implement error handling for network failures and invalid task data, including retry logic for transient errors and clear logging to help diagnose issues in production environments.

Don't: store API tokens in code repositories or share them publicly since they grant full account access. Create excessive tasks without cleanup since this clutters the interface. Poll the API continuously for updates when webhooks would be more efficient.

Limitations

Todoist API has rate limits that restrict the number of requests per minute, potentially throttling high-frequency operations. Some premium features like reminders and task comments may require paid subscription tiers. The sync API has a learning curve and different data model compared to the REST API.