Skip to content

TickTick

With a TickTick (or Dida365) account, Jimothy can:

  • start a run for each open task in a list, or with certain tags, then comment on the task and complete it when the run finishes;
  • create tasks, comment on them or complete them as a pipeline step, or after any step.
  1. In the TickTick web app, click your avatar, then Settings → Account → API Token. Create a token and copy it.
  2. In Jimothy, open Settings → Accounts & integrations and click Sign in under TickTick. You can also use the ⌘K palette (Sign in to TickTick).
  3. Leave Service on TickTick, or pick Dida365 if you use dida365.com.
  4. Paste the token into API token and click Sign in.

TickTick’s API doesn’t say whose token it is, so Jimothy checks the token by listing your lists. The account shows as TickTick, signed in as N projects. Rename it under Account name if you have several.

The token can do everything your TickTick account can. It’s stored encrypted with your OS keychain.

Open the project’s Triggers tab (or All triggers in the ⌘K palette), click Add trigger and choose TickTick.

Field Stored as Notes
TickTick account connectionId Which account reads the tasks and writes back.
List ticktick.projectIds One list to watch, or Every list.
Tags (all of) ticktick.tags Only tasks that have every one of these tags. New triggers start with jimothy.
Processed label claimLabel New triggers start with jimothy-ran. Jimothy adds it to each task as a tag when it starts a run, and skips tasks that have it. Remove the tag to run the task again.
Write back onStart, onSuccess, onFailure Comment on the task, and Complete it. New triggers comment when a run starts and finishes, and complete the task when the run succeeds.

Like every trigger, it also has Runs pipeline, Jimothy project and When it finds an issue: Start a run, or Add to a board to put each task on a board.

The trigger polls TickTick (every 2 minutes by default). TickTick has no webhooks. Its API doesn’t report when a task was last edited, so Run again when a processed issue is updated has no effect; use the processed label to re-run a task.

Each task becomes the run’s issue:

Template Value
{{issue.key}} TT- plus the task id
{{issue.id}} <list id>/<task id>, which the actions below take
{{issue.title}} The task title
{{issue.description}} The task’s notes
{{issue.url}} A link to the task in the web app
{{issue.labels}} The task’s tags
{{issue.priority}} high, medium or low, or empty
{{issue.raw.projectId}}, {{issue.raw.taskId}}, {{issue.raw.dueDate}}

Use these in an integration step or after a step. Every text field is a template.

Field Notes
Task Required. The task title, e.g. Review {{issue.key}}.
Notes Optional.
List Required; pick one of your lists. TickTick’s API can’t add tasks to the Inbox.
Tags Optional, comma-separated.
Due Optional. A date like 2026-10-08 makes an all-day task. A time needs TickTick’s format: 2026-10-08T09:00:00+0000.

The step’s output is Created TickTick task "<title>": <link>. Later steps can use {{steps.<id>.data.id}} (<list id>/<task id>) and {{steps.<id>.data.url}}.

Field Notes
Task id Required. Starts as {{issue.id}}, the task that started the run. Use {{steps.<id>.data.id}} for a task an earlier step created. Either way it’s <list id>/<task id>.
Comment Required.
Field Notes
Task id Required. Starts as {{issue.id}}.