Skip to content

Add the TickTick integration, connected with a personal API token - #76

Draft
luisKisters wants to merge 1 commit into
personalagentproxy:mainfrom
luisKisters:ticktick-integration
Draft

luisKisters wants to merge 1 commit into
personalagentproxy:mainfrom
luisKisters:ticktick-integration

Conversation

@luisKisters

Copy link
Copy Markdown

Adds TickTick as an integration, connected with a personal API token (TickTick → Settings → Account → API Token).

What an agent can do

  • Read tasks: lists (Inbox first) and the open tasks inside them, searched by title and notes.
  • Add tasks: title, notes and priority, inside a list.
  • Edit tasks: title, notes and priority. Only the changed fields are sent, so dates, tags, reminders and repeats are kept.
  • Complete tasks: the complete command, its own action. Status is a system field, so editing can't complete a task.
  • Nothing is ever deleted.

How

  • connections/ticktick/: a typed Open API v1 client (api.ticktick.com/open/v1), plus the connect and test routes. The token is checked on GET project and stored encrypted.
  • records/ticktick-connector.ts: ids are project:<list> and task:<list>:<task>. TickTick answers 200 for tasks that don't exist, so every write fetches the task first.
  • Errors: 401 → credentials_rejected, with the body dropped because it echoes the token. 429 → a new rate_limited error. Writes are never retried.
  • Web: a connect form, also in the welcome flow, with Test connection. Plus the logo, docs page, website logo and AGENTS.md.

Deferred: signing in through TickTick's MCP OAuth (not yet proven that its token works on the Open API), setting dates and time zones, subtasks, completed-task history, moving tasks.

Checks: typecheck, test, lint and build pass.

TickTick's tasks through its Open API v1, signed in with a personal API
token pasted on a form like the mailbox's, with Test connection. The
token is checked by listing the account's lists and stored encrypted;
a new connection gives agents Read tasks only.

One nested collection: the Inbox and the lists at the top, the open
tasks inside each (project:<list>, task:<list>:<task>). Title, notes
and priority are written, an edit sending only what changed; dates,
tags and checklists are shown only. Completing is a command of its own
on open tasks, needing Complete tasks, so editing never completes a
task. Tasks are never deleted.

The Open API client maps 401 to credentials_rejected without keeping
TickTick's answer (it repeats the token), 404 to not_found and 429 to
a new rate_limited error, and never retries. Docs page, catalog logo,
LogoDock tile and AGENTS.md updated.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant