todoist-organize-tasks

star 215

Intelligently organize Todoist projects, tasks, labels and sections — search before creating, learn user patterns, smart decomposition

theexperiencecompany By theexperiencecompany schedule Updated 3/1/2026

name: todoist-organize-tasks description: Intelligently organize Todoist projects, tasks, labels and sections — search before creating, learn user patterns, smart decomposition target: todoist_agent

Todoist: Organize Tasks & Projects

When to Activate

User wants to create a project, organize tasks, set up a task structure, or batch-manage their Todoist workspace.

Step 1: Understand Current Workspace

Before creating anything, gather context:

TODOIST_GET_ALL_PROJECTS → existing projects, hierarchy, colors
TODOIST_GET_ALL_PERSONAL_LABELS → existing labels

Think:

  • Does a similar project already exist? (fetch all with TODOIST_GET_ALL_PROJECTS, then filter by name)
  • What naming conventions does the user follow? (capitalization, emojis, prefixes)
  • What labels exist? Can we reuse them?

Step 2: Search Before Creating

Always search first:

TODOIST_GET_ALL_PROJECTS() → filter by project name to check for duplicates
TODOIST_GET_ALL_PERSONAL_LABELS() → filter by label name to check if label exists

If a matching project exists:

  • Ask user: "I found a project called 'X'. Should I add tasks there or create a new one?"
  • Don't silently create duplicates

Step 3: Create Project Structure

When creating a new project:

TODOIST_CREATE_PROJECT(
  name="Project Name",
  color="blue",           # Match user's color patterns
  view_style="list",      # or "board" for kanban
  parent_id="..."         # For sub-projects
)

Then add sections for logical groupings:

TODOIST_CREATE_SECTION(project_id, name="Planning")
TODOIST_CREATE_SECTION(project_id, name="In Progress")
TODOIST_CREATE_SECTION(project_id, name="Done")

Step 4: Smart Task Decomposition

Break down the user's request into tasks intelligently:

Priority mapping:

  • 4 = Urgent (p1 in Todoist UI)
  • 3 = High (p2)
  • 2 = Normal (p3)
  • 1 = Low (p4)

Date intelligence:

  • Use due_string for natural language: "tomorrow", "next Monday at 3pm", "every Friday"
  • Use due_date for specific dates: "2025-03-15"
  • Set duration + duration_unit for time estimates
TODOIST_CREATE_TASK(
  content="Task title",
  project_id="...",
  section_id="...",
  priority=3,
  due_string="next Monday",
  labels=["existing-label"],
  description="Additional context"
)

Sub-tasks: Use parent_id to create hierarchy:

TODOIST_CREATE_TASK(content="Parent task", project_id=...) → get task_id
TODOIST_CREATE_TASK(content="Sub-task 1", parent_id=task_id)
TODOIST_CREATE_TASK(content="Sub-task 2", parent_id=task_id)

Step 5: Labels & Organization

Create labels only if they don't exist:

TODOIST_GET_ALL_PERSONAL_LABELS() → no label named "urgent"
TODOIST_CREATE_LABEL(name="urgent", color=30)  # berry_red

Label strategy:

  • Use existing labels when possible
  • Follow user's naming: lowercase, kebab-case, etc.
  • Don't create redundant labels (e.g., "important" when "priority" exists)

Step 6: Confirm Structure

After creating, present the structure:

Project: "Q1 Marketing Plan" (blue)
  Planning (3 tasks)
    - Research competitors (due: Mon, p2)
    - Define target audience (due: Tue, p2)
    - Set budget (due: Wed, p1)
  Execution (2 tasks)
    - Launch campaign (due: next Fri, p1)
    - Monitor metrics (recurring: every Mon, p3)
  Labels used: marketing, q1

Anti-Patterns

  • Creating projects without checking existing ones
  • Creating new labels when matching ones exist
  • Setting all tasks to the same priority
  • Omitting due dates when the user implied a timeline
  • Flat task lists when hierarchy would be clearer
Install via CLI
npx skills add https://github.com/theexperiencecompany/gaia --skill todoist-organize-tasks
Repository Details
star Stars 215
call_split Forks 28
navigation Branch main
article Path SKILL.md
More from Creator
theexperiencecompany
theexperiencecompany Explore all skills →