Resume a stopped timer
keeping_resume_timerResume a previously-stopped time entry as an ongoing timer. Uses dry-run preview before confirming the update.
Instructions
Resume a previously-stopped time entry as an ongoing timer. Implemented as POST /{orgId}/time-entries/{entry_id}/resume. Returns the resumed entry plus server_time_ms — the millisecond-precision server timestamp captured from the X-Server-Time-Ms response header (TIMER-02). When the header is missing or unparseable, server_time_ms falls back to the local clock and a warning is logged to stderr. NOTE: Keeping may return a different time_entry.id than the input entry_id — when the original entry's date is no longer 'today', Keeping creates a NEW ongoing entry rather than modifying the old one. Always read time_entry.id from the response; do not assume it matches your input. Cannot resume locked entries (returns a 403 error). DRY-RUN BY DEFAULT — call without confirm first to receive a would_post preview; call again with confirm: true ONLY after a human reviewed the preview.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set to true ONLY after a human has reviewed the would_post preview returned by a prior dry-run call. The MCP client (LLM) MUST NOT set this autonomously — wait for the human to type 'yes' / 'confirm'. | |
| entry_id | Yes | Numeric Keeping time-entry id of the previously-stopped entry to resume. | |
| organisation_id | No | Override KEEPING_ORG_ID; required for multi-org tokens. |