# TickTick on boxd

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

- Page: https://boxd.sh/integrations/ticktick/
- CLI: `run ticktick` (14 commands, 4 marked common)
- SDK: `import { ticktick } from "@boxd/run"`; every parameter and response type is at `@boxd/run/ticktick`
- Triggers: none
- Connect: `run auth ticktick` (Sign in with TickTick), or https://app.boxd.sh/integrations/detail/ticktick
- All integrations: https://boxd.sh/integrations/ (Markdown: https://boxd.sh/integrations/index.md)

## From the shell

```sh
run auth ticktick      # once: prints a link to connect your account
run ticktick           # list its commands
run ticktick list-all-tasks
```

Parameters are flags (`--flag value`); object and array parameters take a JSON string. Output is YAML, or JSON with `--json`. Calls use your own connection; `--scope <name>` uses a connection shared with your team.

## From a script

```ts
import { every, ticktick } from "@boxd/run";

every("1 hour", async () => {
  const result = await ticktick.listAllTasks({});
  console.log(result);
});
```

Run it with `run ticktick.run.ts`. TickTick has no triggers; `every()` polls on a schedule, keeps the script running as a job, and wakes the machine when it is due.

## Commands

Required flags are listed; `run ticktick <command> --help` lists the optional ones. "common" marks what `run ticktick` shows without `--all`.

| Command | SDK method | Required flags | Optional | Description |
|---|---|---|---|---|
| `complete-task` | `ticktick.completeTask()` | `--project-id` `--task-id` | 0 | Marks a TickTick task as complete |
| `create-project` | `ticktick.createProject()` | `--name` | 4 | Create a new project (list) in TickTick |
| `create-task` | `ticktick.createTask()` | `--title` | 12 | Create a new task in TickTick |
| `create-task2` ·common ·deprecated | `ticktick.createTask2()` | `--projectId` `--title` | 11 | Use create-task instead |
| `delete-project` | `ticktick.deleteProject()` | `--project-id` | 0 | Permanently deletes a TickTick project by its ID |
| `delete-task` | `ticktick.deleteTask()` | `--project-id` `--task-id` | 0 | Permanently delete a specific task, irreversible, no recovery |
| `get-project-by-id` ·common | `ticktick.getProjectById()` | `--projectId` | 0 | Retrieve a specific TickTick project by its unique ID |
| `get-project-with-data` | `ticktick.getProjectWithData()` | `--projectId` | 0 | Retrieve a project's associated data (incomplete tasks, columns) |
| `get-task-by-project-and-id` ·common | `ticktick.getTaskByProjectAndId()` | `--project-id` `--task-id` | 0 | Retrieve a specific TickTick task by project ID and task ID |
| `get-user-project` | `ticktick.getUserProject()` | — | 0 | Retrieves all projects accessible to the authenticated user, including personal and shared projects |
| `list-all-tasks` ·common | `ticktick.listAllTasks()` | — | 3 | List all open/undone tasks across all user projects in one call |
| `oauth2-authorization-step1` | `ticktick.oauth2AuthorizationStep1()` | `--client-id` `--redirect-uri` `--scope` | 1 | Generate the TickTick OAuth2 authorization URL |
| `update-project` | `ticktick.updateProject()` | `--projectId` | 5 | Update an existing project |
| `update-task` | `ticktick.updateTask()` | `--projectId` `--taskId` | 12 | Update an existing task |

## Docs

- [run CLI](https://docs.boxd.sh/cli/run): Call connected integrations from the shell, connect new ones, and run automations.
- [Quickstart](https://docs.boxd.sh/guides/integrations/quickstart): Connect an integration, call it from the shell, and turn a script into an automation.
- [Connections](https://docs.boxd.sh/guides/integrations/connections): Connect an account once, for yourself or for your whole organization.
- [Scripts](https://docs.boxd.sh/guides/automations/scripts): Typed integrations, triggers, schedules and state in a .run.ts file.
- [Jobs](https://docs.boxd.sh/guides/automations/jobs): How a script becomes a background job: states, retries, sleep and wake.
- [Beyond the catalog](https://docs.boxd.sh/guides/automations/beyond-the-catalog): Reach your own APIs, databases and cloud accounts from a script.
