Set, list, and cancel reminders using natural language like "remind me to call mom tomorrow at 3pm" or a structured format like "Call mom | tomorrow 3pm". Use this skill whenever the user wants to set a reminder, create an alert, schedule a nudge, manage their reminders, or says things like "remind me", "set a reminder", "don't let me forget", "what reminders do I have", or "cancel my reminder". Also trigger when the user pastes something in the "task | time" format. This skill handles parsing times, creating scheduled tasks, and managing the reminder lifecycle.
A fast, lightweight reminder system with a one-time setup that lets each user choose how they want reminders to work.
The first time someone uses this skill, check if a preferences file exists at ~/.config/quick-reminders/preferences.json. If it doesn't, run the setup flow before doing anything else.
The setup should ask three things using the AskUserQuestion tool:
1. How should reminders be delivered?
2. What input format do you prefer?
Call mom | tomorrow 3pm (fast and structured)Call mom / tomorrow 3pm (same idea, different separator)3. Do you want recurring reminders?
After the user answers, save their choices to ~/.config/quick-reminders/preferences.json:
{
"notification_method": "desktop",
"input_format": "natural",
"recurring_enabled": true
}
Then confirm setup is complete with a quick summary like: "You're all set! You'll get desktop notifications, just tell me what to remind you about naturally, and recurring reminders are enabled. Try setting your first one!"
On all future uses, read the preferences file silently and follow the user's choices without asking again.
If the user ever says "reset my reminder settings" or "change my reminder preferences," delete the preferences file and re-run setup.
The input format depends on what the user chose during setup. Regardless of the chosen format, always be flexible -- if someone configured pipe format but types a natural sentence (or vice versa), still handle it gracefully. The preference just sets the primary/suggested format.
Natural language (default): Just say something like "remind me to call the dentist tomorrow at 2" or "don't let me forget to submit the report on Friday at 5."
Pipe format:
<what to remember> | <when>
Slash format:
<what to remember> / <when>
One-time examples:
Take medicine | 30 minutesTeam sync / march 10 2pmRecurring examples (if enabled):
Take vitamins | every day 8amWater plants / every monday and thursday 9amUnder the hood, reminders are implemented as scheduled tasks using the create_scheduled_task / list_scheduled_tasks / update_scheduled_task tools.
The method depends on the user's preference:
Desktop notification (default): Create a scheduled task with a prompt that tells Claude to notify the user. This is the simplest option and requires no extra tools.
Email: Create a scheduled task whose prompt tells Claude to send an email to the user using the Gmail tools (gmail_create_draft + send, or similar). The email subject should be "Reminder: [task]" and the body should be brief.
Calendar event: Instead of a scheduled task, create a Google Calendar event at the specified time with a reminder/alert. Use the calendar tools if available.
~/.config/quick-reminders/preferences.json.date command) so you can calculate relative times correctly.0 8 * * *).taskId: A short kebab-case slug derived from the task (e.g., call-mom, weekly-review). If a collision exists, append a number.description: The reminder text exactly as the user wrote it.prompt: Varies by notification method (see above).cronExpression: The cron string (in local time).When the user asks to see their reminders (e.g., "what reminders do I have", "show my reminders", "list reminders"):
list_scheduled_tasks.When the user wants to cancel a reminder (e.g., "cancel the call mom reminder", "remove my weekly review reminder", "stop reminding me about vitamins"):
list_scheduled_tasks to find the matching task.update_scheduled_task with enabled: false.Keep responses short and snappy. The whole point of this skill is speed. Don't over-explain.
Good: "Done! I'll remind you to call mom tomorrow at 3pm." Bad: "I've successfully created a scheduled reminder for you. The reminder is set to trigger at 3:00 PM tomorrow, March 4th, 2026. At that time, you'll receive a notification reminding you to call your mom. You can manage this reminder at any time by asking me to list or cancel your reminders."
If the time is ambiguous (e.g., "tuesday" but there are two possible Tuesdays), pick the nearest future one and mention which date you chose.