timer

Safe
Calendar & Scheduling

Set timers and alarms. When a background timer completes.

SKILL.md

# Timer Set timers that run in the background. When they complete, you will receive a system notification and MUST respond with the reminder to notify the user. ## Quick Start ```bash # Set a 5-minute timer bash background:true command:"node {baseDir}/timer.js 5m" # Set a timer with a label bash background:true command:"node {baseDir}/timer.js 10m 'Check the oven'" # Set a timer in seconds bash background:true command:"node {baseDir}/timer.js 30s" # Set a timer in hours bash background:true command:"node {baseDir}/timer.js 1h" ``` ## Time Formats | Format | Description | Example | |--------|-------------|---------| | `Ns` | N seconds | `30s`, `90s` | | `Nm` | N minutes | `5m`, `15m` | | `Nh` | N hours | `1h`, `2h` | | `N` | N minutes (default) | `5` = 5 minutes | | `MM:SS` | Minutes and seconds | `5:30` | | `HH:MM:SS` | Hours, minutes, seconds | `1:30:00` | ## āš ļø CRITICAL: Timer Completion Notification When a timer completes, you receive a `System:` message like: ``` System: [2026-01-24 21:27:13] Exec completed (swift-me, code 0) :: ā° Timer complete! Check the pasta! ``` ### āŒ WRONG - Do NOT respond like this: ``` HEARTBEAT_OK šŸŽ‰ Your timer is complete! Check the pasta! ``` This response will be **filtered and NOT delivered** to the user! ### āœ… CORRECT - Respond like this: ``` ā° Timer Alert! Your timer is complete: Check the pasta! ``` Start directly with the notification message. Do NOT include HEARTBEAT_OK. **Why?** Responses starting with `HEARTBEAT_OK` followed by less than 300 characters are automatically suppressed and never reach the user. Your timer notification will be lost! ## Examples ### Cooking Timer ```bash bash background:true command:"node {baseDir}/timer.js 12m 'Pasta is ready!'" ``` When complete, respond: "ā° Your 12-minute timer is up! Pasta is ready!" ### Quick Reminder ```bash bash background:true command:"node {baseDir}/timer.js 2m 'Take a break'" ``` ### Pomodoro Session ```bash # Work session bash background:true command:"node {baseDir}/timer.js 25m 'Pomodoro done - time for a break!'" # After user is notified... # Break bash background:true command:"node {baseDir}/timer.js 5m 'Break over - back to work!'" ``` ### Multiple Timers ```bash bash background:true command:"node {baseDir}/timer.js 5m 'Tea is ready'" bash background:true command:"node {baseDir}/timer.js 10m 'Eggs are done'" bash background:true command:"node {baseDir}/timer.js 30m 'Meeting starts soon'" ``` ## Managing Timers ```bash # List all running timers process action:list # Check specific timer status process action:poll sessionId:XXX # View timer output process action:log sessionId:XXX # Cancel a timer process action:kill sessionId:XXX ``` ## Notes - Timers run as background processes with unique sessionIds - Completed timers exit with code 0 - Cancelled timers (via kill) exit with code 130 - Sound notification plays on macOS when timer completes (if `afplay` available) - Progress is logged every second (short timers) or every 10 seconds (long timers)

More in Calendar & Scheduling