harvest_restart_timer
Restart a stopped time entry timer in Harvest to resume tracking work hours for accurate time management.
Instructions
Restart a stopped time entry timer. Use about {"tool": "harvest_restart_timer"} for detailed workflow and examples.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Time entry ID |
Implementation Reference
- src/harvest-client.ts:104-108 (handler)Core handler function that implements the Harvest API call to restart a time entry timer via PATCH /time_entries/{id}/restart.async restartTimer(id: string) { return this.makeRequest(`/time_entries/${id}/restart`, { method: 'PATCH', }); }
- src/index.ts:129-138 (handler)MCP server request handler case that dispatches harvest_restart_timer calls to the HarvestClient.restartTimer method.case 'harvest_restart_timer': const restartedTimer = await harvestClient.restartTimer(typedArgs.id as string); return { content: [ { type: 'text', text: JSON.stringify(restartedTimer, null, 2), }, ], };
- src/tools.ts:62-72 (registration)Tool registration in the tools array, including name, description, and input schema requiring 'id' parameter.{ name: 'harvest_restart_timer', description: 'Restart a stopped time entry timer. Use about {"tool": "harvest_restart_timer"} for detailed workflow and examples.', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Time entry ID' } }, required: ['id'] } },
- src/tools.ts:65-71 (schema)Input schema definition specifying the required 'id' parameter of type string for the harvest_restart_timer tool.inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Time entry ID' } }, required: ['id'] }
- src/harvest-client.ts:425-466 (helper)Detailed documentation and usage examples for the harvest_restart_timer tool provided in the getAboutInfo method.'harvest_restart_timer': `# harvest_restart_timer Restarts a stopped time entry timer to resume time tracking. ## Purpose Resume timing on a previously stopped time entry, setting is_running to true and timer_started_at to current time. ## Parameters - \`id\` (string, required): The time entry ID to restart ## Example Usage **Restart a stopped timer:** \`\`\`json { "tool": "harvest_restart_timer", "id": "98765" } \`\`\` ## Response Format Returns the updated time entry with: - \`is_running\`: true - \`timer_started_at\`: Current timestamp - \`hours\`: Previous accumulated hours - All other time entry properties ## Requirements - Time entry must exist - Timer must not already be running - Only one timer can run at a time per user ## Workflow 1. Find stopped entry: harvest_list_time_entries 2. Restart timer: harvest_restart_timer 3. Work on the task 4. Stop when done: harvest_stop_timer ## Error Conditions - Entry not found: Invalid ID - Timer already running: Cannot restart running timer - Another timer running: Stop other timer first`,