# Ticktick

TickTick is a cross-platform task management and to-do list application designed to help users organize their tasks and schedules efficiently.

- **Category:** productivity
- **Auth:** OAUTH2
- **Composio Managed App Available?** Yes
- **Tools:** 14
- **Triggers:** 0
- **Slug:** `TICKTICK`
- **Version:** 20260316_00

## Tools

### Complete Task

**Slug:** `TICKTICK_COMPLETE_TASK`

Marks a TickTick task as complete. Requires both the project_id and task_id, which can be obtained from TICKTICK_LIST_ALL_TASKS or TICKTICK_CREATE_TASK actions. This action is idempotent - completing an already-completed task will succeed without error. Completed tasks are removed from default/active views and appear only in completed task filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | Identifier of the task to mark as complete. |
| `project_id` | string | Yes | Project identifier containing the task to complete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project

**Slug:** `TICKTICK_CREATE_PROJECT`

Create a new project (list) in TickTick. Projects organize tasks and notes. Use this to set up a new project with optional customizations like color, view mode, and type. The created project's ID can be used with other actions like TICKTICK_CREATE_TASK.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `kind` | string ("TASK" | "NOTE") | No | Type of project: 'TASK' for task management or 'NOTE' for note-taking. Defaults to 'TASK' if not specified. |
| `name` | string | Yes | Name of the new project. This will be displayed in the TickTick interface. |
| `color` | string | No | Hex color code for the project appearance (e.g., '#F18181'). Must include the '#' prefix. |
| `viewMode` | string ("list" | "kanban" | "timeline") | No | Display mode for the project: 'list' for standard view, 'kanban' for board view, or 'timeline' for calendar view. Defaults to 'list' if not specified. |
| `sortOrder` | integer | No | Sort order value for positioning the project in lists. Can be negative, zero, or positive. Lower values appear first. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Task

**Slug:** `TICKTICK_CREATE_TASK`

Tool to create a new task in TickTick. Use after you have task details such as title, dates, and optional reminders or subtasks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `desc` | string | No | Extended description of the task |
| `items` | array | No | Checklist (subtask) items |
| `title` | string | Yes | Title of the task |
| `content` | string | No | Main content or notes of the task |
| `dueDate` | string | No | ISO 8601 due date/time, e.g., '2023-04-24T17:00:00+0000' |
| `isAllDay` | boolean | No | Set true for an all-day task |
| `priority` | integer | No | Task priority (0=None, 1=Low, 3=Medium, 5=High) |
| `timeZone` | string | No | Time zone identifier, e.g., 'America/Los_Angeles' |
| `projectId` | string | No | ID of the project (list) to add the task to. If omitted, the task is added to the Inbox. Use TICKTICK_GET_USER_PROJECT to get available project IDs. The Inbox does not appear in TICKTICK_GET_USER_PROJECT results; simply omit this field to target it. |
| `reminders` | array | No | List of reminder triggers in RFC 5545 format, e.g., ['TRIGGER:PT10M', 'TRIGGER:PT0S'] Malformed strings may be silently ignored rather than raising an error. |
| `sortOrder` | integer | No | Internal sort index |
| `startDate` | string | No | ISO 8601 start date/time, e.g., '2023-04-23T12:00:00+0000' |
| `repeatFlag` | string | No | RRULE string for recurrence, e.g., 'RRULE:FREQ=DAILY;INTERVAL=1' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Task (Deprecated)

**Slug:** `TICKTICK_CREATE_TASK2`

DEPRECATED: Use TICKTICK_CREATE_TASK instead. Tool to create a new task in a specified project. Use when you need to create a task with required title and projectId, plus optional dates, priority, reminders, and subtasks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `desc` | string | No | Description of the task or checklist |
| `items` | array | No | The list of subtasks (checklist items) for this task |
| `title` | string | Yes | Title of the task |
| `content` | string | No | Task content or notes |
| `dueDate` | string | No | Due date and time in yyyy-MM-ddTHH:mm:ssZ format |
| `isAllDay` | boolean | No | Set true for an all-day task |
| `priority` | integer | No | The priority of task: 0=None, 1=Low, 3=Medium, 5=High. Default is 0. |
| `timeZone` | string | No | The time zone in which the time is specified, e.g., 'America/Los_Angeles' |
| `projectId` | string | Yes | ID of the project (list) to add the task to. Use TICKTICK_GET_USER_PROJECT to get available project IDs. |
| `reminders` | array | No | Lists of reminders specific to the task in RFC 5545 format, e.g., ['TRIGGER:PT10M'] |
| `sortOrder` | integer | No | The order of task for sorting purposes |
| `startDate` | string | No | Start date and time in yyyy-MM-ddTHH:mm:ssZ format |
| `repeatFlag` | string | No | Recurring rules of task in RRULE format, e.g., 'RRULE:FREQ=DAILY;INTERVAL=1' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete TickTick Project

**Slug:** `TICKTICK_DELETE_PROJECT`

Permanently deletes a TickTick project by its ID. All tasks within the project will also be deleted. Note: This operation is idempotent - deleting a non-existent project ID returns success. Use TICKTICK_GET_USER_PROJECT to list available projects and their IDs before deletion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | string | Yes | The unique identifier of the TickTick project to delete. Obtain this from TICKTICK_GET_USER_PROJECT or TICKTICK_CREATE_PROJECT actions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Task

**Slug:** `TICKTICK_DELETE_TASK`

Tool to permanently delete a specific task — irreversible, no recovery. Use when you need to remove a task from a project after confirming both project and task IDs. Returns an empty data object on success; check status/success flags rather than response payload. When moving tasks between projects via create+delete, comments and history are lost.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | Task identifier to delete. |
| `project_id` | string | Yes | Project identifier containing the task to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project By ID

**Slug:** `TICKTICK_GET_PROJECT_BY_ID`

Tool to retrieve a specific TickTick project by its unique ID. Use when you need detailed information about a particular project after obtaining its project ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `projectId` | string | Yes | The unique ID of the project to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get project with data

**Slug:** `TICKTICK_GET_PROJECT_WITH_DATA`

Retrieve a project's associated data (incomplete tasks, columns). IMPORTANT: This endpoint only returns INCOMPLETE tasks. Completed tasks are automatically filtered out by the TickTick API. An empty tasks list means either the project has no tasks at all, or all tasks have been completed. For completed tasks, check the TickTick app or web interface directly. Columns are only present for kanban-style projects; list-view projects return an empty columns array. Join tasks to columns via each task's columnId field. For large projects, results may paginate at ~100 items per page — iterate all pages and deduplicate by taskId. Multiple tasks can share the same title; always use taskId for follow-up create, update, or delete calls. All filtering by name, tag, or other fields must be done client-side. Scope is project-only — Inbox and other projects are excluded.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `projectId` | string | Yes | Project identifier to retrieve data for |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Task By Project And ID

**Slug:** `TICKTICK_GET_TASK_BY_PROJECT_AND_ID`

Tool to retrieve a specific TickTick task by project ID and task ID. Use when you need detailed information about a particular task within a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | The unique ID of the specific task to retrieve |
| `project_id` | string | Yes | The unique ID of the project containing the task |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Projects

**Slug:** `TICKTICK_GET_USER_PROJECT`

Retrieves all projects accessible to the authenticated user, including personal and shared projects. Use this tool to list available projects before creating tasks or to get project IDs for other operations. Returns project metadata including name, color, view mode, and organization details. Always use returned projectId values (not project names) when calling TICKTICK_CREATE_TASK, TICKTICK_UPDATE_TASK, or TICKTICK_GET_PROJECT_WITH_DATA. The inbox project may not appear in results — omit projectId in TICKTICK_CREATE_TASK to target the inbox. Non-kanban projects return an empty columns array; check viewMode before assuming columns exist.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Tasks

**Slug:** `TICKTICK_LIST_ALL_TASKS`

Tool to list all open/undone tasks across all user projects in one call. This is a composite operation that internally fetches all projects and aggregates their tasks. Use when you need a comprehensive view of pending work across the entire account. Note: Only returns open/undone tasks; completed task history is not available in TickTick OpenAPI v1.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Optional maximum number of tasks to return. Applied after aggregating all tasks. |
| `projectIds` | array | No | Optional list of specific project IDs to include. If omitted, all projects are included. |
| `includeClosedProjects` | boolean | No | Whether to include tasks from closed/archived projects. Defaults to False. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate OAuth2 Authorization URL

**Slug:** `TICKTICK_OAUTH2_AUTHORIZATION_STEP1`

Tool to generate the TickTick OAuth2 authorization URL. Use to redirect the user to obtain the authorization code (step 1). Re-run this tool if downstream TickTick calls return HTTP 401 (expired/invalid token) to obtain a fresh authorization code.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `scope` | string | Yes | Space-separated permission scopes. Available scopes: 'tasks:read', 'tasks:write'. If a downstream call returns HTTP 403 insufficient_scope, re-run this tool with the correct scopes. |
| `state` | string | No | An opaque value passed back to your redirect URI for CSRF protection and to maintain request state (optional). |
| `client_id` | string | Yes | Your TickTick application's client ID obtained from the Developer Center. |
| `redirect_uri` | string | Yes | The exact redirect URI registered with your TickTick application; the authorization code will be sent here after user approval. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Project

**Slug:** `TICKTICK_UPDATE_PROJECT`

Tool to update an existing project. Use when you need to modify project details like name, color, sort order, view mode, or kind after selecting a project ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `kind` | string ("TASK" | "NOTE") | No | Kind of the project, 'TASK' or 'NOTE' |
| `name` | string | No | New name of the project |
| `color` | string | No | Hex color code for the project, e.g. '#F18181' |
| `viewMode` | string ("list" | "kanban" | "timeline") | No | View mode for the project |
| `projectId` | string | Yes | The unique project ID (24-character hex string) to update. Obtain this from TICKTICK_GET_USER_PROJECT or TICKTICK_CREATE_PROJECT. |
| `sortOrder` | integer | No | Sort order value for positioning the project in lists. Can be negative, zero, or positive. Lower values appear first. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Task

**Slug:** `TICKTICK_UPDATE_TASK`

Tool to update an existing task. Use after confirming the taskId and projectId. Omitting optional fields resets them to null — include all existing field values in every payload. Cannot move a task to a different project; use TICKTICK_CREATE_TASK + TICKTICK_DELETE_TASK instead. Fields outside the input schema (e.g., columnId, assignee) are silently ignored.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `desc` | string | No | Extended description of the task |
| `items` | array | No | Checklist (subtask) items |
| `title` | string | No | New title of the task |
| `taskId` | string | Yes | Task identifier to update |
| `content` | string | No | Content or notes of the task |
| `dueDate` | string | No | ISO 8601 due date/time, e.g., '2023-04-24T17:00:00+0000' |
| `isAllDay` | boolean | No | Set true for an all-day task |
| `priority` | integer | No | Task priority (0=None, 1=Low, 3=Medium, 5=High) Only 0, 1, 3, 5 are valid; other integers are rejected. |
| `timeZone` | string | No | Time zone identifier, e.g., 'America/Los_Angeles' |
| `projectId` | string | Yes | Project identifier containing the task |
| `reminders` | array | No | List of reminder triggers in RFC 5545 format, e.g., ['TRIGGER:PT10M'] |
| `sortOrder` | integer | No | Internal sort index for ordering tasks |
| `startDate` | string | No | ISO 8601 start date/time, e.g., '2023-04-23T12:00:00+0000' |
| `repeatFlag` | string | No | RRULE string for recurrence, e.g., 'RRULE:FREQ=DAILY;INTERVAL=1' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
