ticktick

TickTick task/project integration toolkit for OAuth2 authorization, token refresh, and typed task/project operations. Use when users need to authenticate with TickTick, run task/project CRUD workflows, or operate the OpenClaw/Codex wrapper via token.json.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ticktick" with this command: npx skills add one0x393/ticktick-calendar

TickTick Skill

Operate TickTick task/project workflows with strict contracts, runtime token management, typed API access, and OpenClaw-ready action wrappers.

Quick Reference

SituationAction
First-time OAuth authorization neededRun npm run ticktick:cli -- auth-url, then auth-exchange with callback URL
Token expired but refresh token existsUse runtime/CLI auto-refresh path (getAccessTokenWithAutoReauth)
Token missing or refresh failedReauthorize from emitted URL and rerun command
Need task creation/update/completeUse runtime.useCases.createTask/updateTask/completeTask or skill actions
Need task/project listingUse runtime.useCases.listTasks/listProjects or CLI commands
Need OpenClaw action integrationUse skill-entry/ticktick-skill.mjs and expose 5 MVP actions
Need error categorization for UX/retryHandle TickTickDomainError categories from src/shared/error-categories.ts

Capabilities

  • OAuth2 contract + runtime token client
    • Authorization URL build/callback parse
    • Authorization-code exchange
    • Refresh-token renewal
  • Typed API client with timeout/retry/error typing
    • HTTP timeout and exponential backoff for retryable failures
  • Core usecases (MVP 5)
    • create_task
    • list_tasks
    • update_task
    • complete_task
    • list_projects
  • OpenClaw/Codex wrapper entrypoints
    • skill-entry/token-manager.mjs
    • skill-entry/ticktick-skill.mjs
    • scripts/ticktick-cli.mjs

Prerequisites

Required environment variables:

  • TICKTICK_CLIENT_ID
  • TICKTICK_CLIENT_SECRET
  • TICKTICK_REDIRECT_URI

Optional runtime defaults:

  • TICKTICK_OAUTH_AUTHORIZE_URL (default: https://ticktick.com/oauth/authorize)
  • TICKTICK_OAUTH_TOKEN_URL (default: https://ticktick.com/oauth/token)
  • TICKTICK_API_BASE_URL (default: https://api.ticktick.com/open/v1)
  • TICKTICK_API_TIMEOUT_MS (default: 10000)
  • TICKTICK_API_MAX_RETRIES (default: 3)
  • TICKTICK_API_RETRY_BASE_DELAY_MS (default: 250)
  • TICKTICK_OAUTH_SCOPE
  • TICKTICK_USER_AGENT

Token and notification options:

  • TICKTICK_TOKEN_PATH (default: ~/.config/ticktick/token.json)
  • TICKTICK_REAUTH_WEBHOOK_URL
  • TICKTICK_REAUTH_NOTIFY_COOLDOWN_MS
  • TICKTICK_REAUTH_NOTIFY_STATE_PATH

OpenClaw Setup (Recommended)

OpenClaw integration is provided through createTickTickOpenClawSkill in skill-entry/ticktick-skill.mjs.

Skill action surface

Expose the following actions:

  • create_task
  • list_tasks
  • update_task
  • complete_task
  • list_projects

Runtime/token behavior

  1. Parse env via parseTickTickEnvFromRuntime.
  2. Resolve token path (options.tokenPath -> TICKTICK_TOKEN_PATH -> default path).
  3. Load access token with auto refresh (getAccessTokenWithAutoReauth).
  4. On missing/expired token without valid refresh token:
    • raise ReauthRequiredError
    • optionally notify via webhook
    • surface reauthorization URL to caller.

CLI Workflow (Practical)

1) Generate OAuth URL

npm run ticktick:cli -- auth-url

2) Exchange callback for token file

npm run ticktick:cli -- auth-exchange --callbackUrl "http://localhost:3000/oauth/callback?code=...&state=..."

3) Run actions

npm run ticktick:cli -- list-projects
npm run ticktick:cli -- list-tasks --projectId <projectId> --limit 20
npm run ticktick:cli -- create-task --projectId <projectId> --title "Write docs" --priority 3
npm run ticktick:cli -- update-task --taskId <taskId> --priority 5
npm run ticktick:cli -- complete-task --taskId <taskId>

Programmatic Workflow

  1. Load env: parseTickTickEnvFromRuntime()
  2. Build runtime: createTickTickRuntime({ env, getAccessToken })
  3. Execute usecases via runtime.useCases.*
  4. Handle category-mapped errors in caller for retry/UX behavior
  5. Persist/rotate token outside process memory when used in production

Error Mapping Contract

Normalize API/runtime errors to domain categories:

CategoryTypical Source
auth_401Invalid/expired access token
auth_403Scope/permission denied
not_found_404Missing task/project resource
rate_limit_429TickTick rate-limited request
server_5xxTickTick server-side failure
networkTimeout, transport, DNS, fetch failures
validationInput contract or payload mismatch
unknownNon-classified fallback

Verification Gates

Run after any implementation or integration change:

npm run typecheck
npm test

If either gate fails, do not finalize until fixed or explicitly accepted by user.

Troubleshooting

Token file not found

  • Symptom: ReauthRequiredError with message about missing token file
  • Action: run auth-url -> complete browser consent -> run auth-exchange

Token expired and refresh unavailable

  • Symptom: runtime/CLI asks for reauthorization URL
  • Action: complete OAuth again and persist new token JSON

401/403 on valid token

  • Verify OAuth app scopes and redirect URI alignment
  • Confirm .env values match TickTick app configuration

429/5xx spikes

  • Check retry settings:
    • TICKTICK_API_MAX_RETRIES
    • TICKTICK_API_RETRY_BASE_DELAY_MS
  • Add higher-level caller backoff if workload is bursty

References

  • README.md
  • docs/openclaw-skill-guide.md
  • skill-entry/token-manager.mjs
  • skill-entry/ticktick-skill.mjs
  • scripts/ticktick-cli.mjs
  • src/core/ticktick-runtime.ts
  • src/core/ticktick-usecases.ts
  • src/api/ticktick-api-client.ts
  • src/api/ticktick-gateway.ts
  • src/shared/error-categories.ts

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

bilibili-reader-skill

B站收藏夹视频智能总结:随机选取收藏视频,阅读字幕/评论/弹幕,生成中英双语总结PDF

Registry SourceRecently Updated
General

OpenClaw Growth Engineer

OpenClaw-first growth autopilot for mobile apps. Correlate analytics, crashes, billing, feedback, store signals, and repo context into proposal drafts that c...

Registry SourceRecently Updated
General

Atoll Api

Interact with the Atoll project management API for managing tasks, projects, goals, KPIs, initiatives, milestones, comments, members, teams, labels, dependen...

Registry SourceRecently Updated
General

task-distributor

Expert task distributor specializing in intelligent work allocation, load balancing, and queue management. Masters priority scheduling, capacity tracking, an...

Registry SourceRecently Updated