dida365

Manage TickTick/Dida365 tasks and projects from the terminal. List, create, complete, update, and delete tasks and projects via the Dida365 Open API.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "dida365" with this command: npx skills add cshen/skills/cshen-skills-dida365

Dida365 — TickTick Task Manager ✅

Manage your TickTick / Dida365 tasks and projects directly from the CLI. Pure Python, zero external dependencies.

Prerequisites

  • TICKTICK_TOKEN environment variable must be set with a valid Dida365/TickTick Open API bearer token
  • If the token is missing, stop and tell the user to set it: export TICKTICK_TOKEN="..."
  • Token can be obtained at https://developer.dida365.com/manage

Tool Location

The CLI script is bundled with this skill:

{baseDir}/tt.py

All commands follow the pattern:

python3 {baseDir}/tt.py <command> [options]

When to Use This Skill

Activate when the user wants to:

  • List, view, or check their tasks or to-do items
  • Add, create, or schedule a new task
  • Complete, finish, or check off a task
  • Delete or remove a task
  • Update, edit, reschedule, or reprioritize a task
  • List, create, or delete projects (task lists/folders)
  • Anything related to TickTick, Dida365, their calendar tasks, or daily planning

Trigger phrases: "add a task", "what are my tasks", "mark it done", "show my to-dos", "create a project", "schedule", "my dida365", "ticktick", "what's on my plate", "to-do list", "任务" (Chinese for task), "待办" (to-do)

Commands Reference

List Projects

python3 {baseDir}/tt.py projects

Returns all projects with their IDs and names. Use project IDs or names in other commands.

List Tasks

# Inbox (default)
python3 {baseDir}/tt.py tasks

# Specific project (by name or ID)
python3 {baseDir}/tt.py tasks --project "Work"
python3 {baseDir}/tt.py tasks --project 6478a1b2c3d4e5f6a7b8c9d0

Shows pending (incomplete) tasks sorted by priority then start date.

Add a Task

python3 {baseDir}/tt.py add "Task title" [options]
OptionDescriptionDefault
--project <name|id>Target projectinbox
--priority <none|low|med|high>Priority levelnone
--start <YYYY-MM-DDTHH:MM:SS>Start date (timezone auto-appended)
--notes <text>Description body
--tag <tag1,tag2>Comma-separated tags

Examples:

# Simple task
python3 {baseDir}/tt.py add "Buy groceries"

# Full options
python3 {baseDir}/tt.py add "Deploy v2.0" \
  --project Work \
  --priority high \
  --start 2026-03-20T18:00:00 \
  --notes "Run regression suite first" \
  --tag "release,urgent"

Returns the created task's ID — save it for complete/update/delete operations.

Complete a Task

python3 {baseDir}/tt.py complete <taskId> [--project <name|id>]

If --project is omitted, inbox is assumed.

Update a Task

python3 {baseDir}/tt.py update <taskId> [options]
OptionDescription
--project <name|id>Project the task belongs to (default: inbox)
--title <text>New title
--priority <none|low|med|high>New priority
--start <YYYY-MM-DDTHH:MM:SS>New start date

Delete a Task

python3 {baseDir}/tt.py delete <taskId> [--project <name|id>]

Add a Project

python3 {baseDir}/tt.py add-project "Project Name" [--color "#FF6B6B"]

Delete a Project

python3 {baseDir}/tt.py delete-project <projectId>

Important Details

Date Format

  • User provides: YYYY-MM-DDTHH:MM:SS (e.g., 2026-03-20T18:00:00)
  • The script auto-appends +0800 (Asia/Shanghai timezone)
  • The API requires RFC 822 offset format (+0800, not +08:00)

Priority Mapping

User saysFlag valueAPI value
nonenone0
lowlow1
mediummed or medium3
highhigh5

Project Resolution

  • inbox → built-in inbox project
  • A 24-char hex string → used as-is (it's already an ID)
  • Anything else → case-insensitive name lookup via the API

Error Handling

All errors print to stderr and exit code 1. Common issues:

  • TICKTICK_TOKEN not set — user needs to export the token
  • Project 'X' not found — check project name with projects command
  • API errors — token may be expired or invalid

Behavioral Rules

  1. Always run commands with python3 — the script has no shebang-based auto-execution guarantee.
  2. When the user asks to add a task, ask for the brief task description at minimum, which is the notes for the command line. Infer priority/project/date from context if the user provides them naturally. Summarize the task details using no more than 10 words in ENGLISH and use that as the task title.
  3. When the user says "my tasks" or "what's on my plate", default to listing inbox tasks. Ask which project if they have context suggesting a specific one.
  4. After creating a task, report the task ID back to the user — they'll need it for complete/update/delete.
  5. After completing or deleting, confirm the action with the task ID.
  6. If a command fails, read stderr output and explain the issue to the user in plain language.
  7. Never hardcode task IDs — always get them from tasks output or add output first.
  8. Quote titles and notes that contain spaces when building the command.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

mail139

No summary provided by upstream source.

Repository SourceNeeds Review
General

nano-banana-2

Nano Banana 2 - Gemini 3.1 Flash Image Preview

Repository Source
44.8K153inferen-sh
General

qwen-image-2

Qwen-Image - Alibaba Image Generation

Repository Source
44.6K153inferen-sh
General

p-video

Pruna P-Video Generation

Repository Source
44.6K153inferen-sh