| name | timer |
| description | Countdown timers with alarm beep and stopwatches with elapsed time. For short durations (seconds to minutes). Use scheduler for longer/complex tasks. Tools: timer. |
Timer Skill
Simple countdown timers and stopwatches. When a timer expires, it plays an acoustic alarm (beep). That's it – no complex tasks, no sub-agents, just a beep.
Use the timer tool for:
- Countdown timers that need an acoustic alarm when time is up
- Stopwatches for tracking elapsed time
Examples: "egg timer 20 seconds", "Set a timer for 3 minutes", "Start stopwatch for running"
NOT suitable for: Complex tasks that need execution (e.g. sending SMS, making HTTP requests, running TTS). Use the scheduler tool instead for tasks that require a sub-agent to execute instructions.
Tool: timer
Start a countdown timer
{
"action": "start_timer",
"duration_ms": 180000,
"label": "3 minute timer"
}
The duration_ms is the countdown duration in milliseconds (e.g. 180000 = 3 minutes).
The label is optional. If provided, it will be used when describing the timer to the user.
When the timer expires, it will play a beep and be automatically removed from the list.
Start a stopwatch
{
"action": "start_stopwatch",
"label": "Running stopwatch"
}
The label is optional. Stopwatches count up from the start time and can be queried for elapsed time or stopped.
List all active timers and stopwatches
{
"action": "list"
}
Returns all currently active timers and stopwatches.
Get status of a timer or stopwatch
{
"action": "get_status",
"timer_id": "timer_1234567890_abcd"
}
For countdown timers: Returns remaining time.
For stopwatches: Returns elapsed time.
Stop a stopwatch
{
"action": "stop",
"timer_id": "stopwatch_1234567890_abcd"
}
Stops the stopwatch and removes it from the list. Returns the final elapsed time.
Note: Can only be used on stopwatches. Use cancel to delete a countdown timer.
Cancel a timer or stopwatch
{
"action": "cancel",
"timer_id": "timer_1234567890_abcd"
}
Cancels and removes a timer or stopwatch from the list.
Workflow: Set a timer
Examples: "egg timer 20 seconds", "Set a timer for 3 minutes"
IMPORTANT: Use the timer tool when the user wants an acoustic alarm. Use the scheduler tool only when the user wants a complex task executed (e.g. "send SMS", "remind me to call", "check calendar").
Time calculation: Use datetime tool with action: "now" to get the current time (Unix timestamp in milliseconds) for any time-related calculations. Do NOT calculate timestamps manually.
- Calculate duration in milliseconds (e.g. 20 seconds = 20000 ms, 3 minutes = 180000 ms)
timer → start_timer with:
duration_ms: calculated duration
label (optional): user-friendly label (e.g. "egg timer")
- Confirm: "Timer started: 20 seconds" or "Timer started: 3 minutes"
Workflow: Start a stopwatch
Examples: "Start stopwatch for running" / "Start a stopwatch"
timer → start_stopwatch with:
label (optional): user-friendly label (e.g. "Running")
- Confirm: "Stopwatch started: Running"
Workflow: Check stopwatch elapsed time
Examples: "How long has the stopwatch been running?" / "What's the elapsed time?"
timer → list → find the stopwatch by label or type
timer → get_status with the found timer_id
- Report elapsed time to user: "The stopwatch has been running for 5 minutes and 23 seconds"
Workflow: Stop a stopwatch
Examples: "Stop the running stopwatch" / "Stop the stopwatch"
timer → list → find the stopwatch by label
timer → stop with the found timer_id
- Confirm: "Stopwatch stopped: 5 minutes 23 seconds"
Workflow: List all timers
Examples: "What timers are running?" / "Show me all timers"
timer → list
- Report all active timers and stopwatches to the user (describe by label and time, NOT by ID)
Workflow: Cancel a timer
Examples: "Cancel the timer" / "Delete the timer"
timer → list → find the timer by label or description
timer → cancel with the found timer_id
- Confirm: "Timer cancelled"
Examples
"Egg timer 20 seconds"
- Calculate: 20 seconds = 20000 ms
timer → start_timer with duration_ms: 20000, label: "egg timer"
- Confirm: "Timer started: 20 seconds"
"Set a timer for 3 minutes"
- Calculate: 3 minutes = 180000 ms
timer → start_timer with duration_ms: 180000
- Confirm: "Timer started: 3 minutes"
"Start stopwatch for running"
timer → start_stopwatch with label: "Running"
- Confirm: "Stopwatch started: Running"
"How long has the stopwatch been running?"
timer → list → find stopwatch with label "Running"
timer → get_status with the found timer_id
- Report: "The stopwatch has been running for 5 minutes and 23 seconds"
"Stop the running stopwatch"
timer → list → find stopwatch with label "Running"
timer → stop with the found timer_id
- Confirm: "Stopwatch stopped: 5 minutes 23 seconds"
"What timers are running?"
timer → list
- Report all timers: "You have 2 active timers: a 3-minute timer and a running stopwatch"
Important rules
- Timer = acoustic alarm only: The timer tool only plays a beep when time is up. For complex tasks (SMS, HTTP, TTS, etc.), use the
scheduler tool instead.
- Time calculations: Use
device tool with get_time action to get the current time (now_ms) for any time-related calculations. Do NOT calculate timestamps manually.
- Timer IDs are internal: Never show timer IDs to the user. Describe timers by their label and time.
- Auto-removal: Timers are automatically removed when they expire. Stopwatches are removed when stopped.
- Multiple timers: Multiple timers and stopwatches can run in parallel.
- Duration format: Always use milliseconds for
duration_ms (e.g. 20 seconds = 20000, 1 minute = 60000, 3 minutes = 180000).
- Stop vs Cancel: Use
stop only for stopwatches (returns elapsed time). Use cancel for any timer/stopwatch (just removes it).