| name | tickward | ||
|---|---|---|---|
| description | Manage tickward countdown projects, timers, spaces, and share links through the versioned public API. | ||
| license | AGPL-3.0-only | ||
| compatibility | Requires a tickward API key. Read-only keys can inspect resources; full-access keys can create, update, and delete resources. | ||
| metadata |
|
Use this skill when a user wants to manage countdown timers, organize them into spaces, or create static share links.
- List, create, update, and delete projects.
- List, create, update, archive, and delete timers.
- List, create, update, and delete spaces.
- Create, inspect, and delete timer share links.
- Manage webhook endpoints from Settings for event-driven integrations.
- Use MCP clients for agent workflows when a remote endpoint or API key is configured.
Use a Bearer API key in the Authorization header:
Authorization: Bearer tw_your_api_key
Use read-only keys for questions and full-access keys for requested changes.
Remote MCP connections use OAuth scopes. If a write fails with
insufficient_scope, tell the user which required_scope is missing and ask
them to reconnect the MCP client with that scope.
- Check
GET /capabilitiesbefore choosing a workflow. - Resolve the target project with
GET /projects. - For a new project with spaces or timers, call
POST /projects/previewbeforePOST /projects. - Create missing spaces before creating timers assigned to those spaces.
- Create timers with
label,target_date, andtimezone. - Create share links only after the user asks to share a timer.
- Confirm before deleting any project, timer, space, or share link.
- Send
Idempotency-Keyon write requests that may be retried.
For a full read of everything the key can access, call GET /sync once
instead of listing projects and fanning out to per-project timers and spaces
requests. Save the returned ETag; on later polls send it as
If-None-Match. Treat 304 Not Modified as nothing changed. On 429, wait
for the Retry-After value before retrying.
- Public API base URL:
https://tickward.com/api/v1. - Request fields use snake_case.
- Dates use ISO 8601 strings.
- Timezones use IANA timezone names such as
Europe/Warsaw. - When reading timers, use
effective_target_datefor the current countdown date. For recurring timers,target_dateis the original schedule anchor. - When confirming timer changes, show
project_name, timer label, and date. Do not show raw project ids unless the user asks for ids. - When confirming space or share changes, show
project_name. Share responses includetimer_labelwhen the timer still exists. Idempotency-Keyreplays the same write response for up to 24 hours when the method, path, query, and JSON body match.- Generate
Idempotency-Keywith a random UUID plus an operation prefix, for exampletimer-create-${crypto.randomUUID()}. DELETE ...?dry_run=truepreviews project and space deletes without mutating data.POST /projects/previewreturns aplan_hash; send it asexpected_plan_hashwhen creating the project.- Webhook delivery is asynchronous. Self-hosted deployments must run the scheduler tick endpoint for delivery and retry.
- Errors use
{ "error": { "type": "...", "message": "...", "remediation": { "hint": "..." } } }.