Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add profclaw/profclaw --skill "apple-reminders"
Install specific skill from multi-skill repository
# Description
Create and manage Apple Reminders on macOS using AppleScript - set due dates, priorities, and lists
# SKILL.md
name: apple-reminders
description: Create and manage Apple Reminders on macOS using AppleScript - set due dates, priorities, and lists
version: 1.0.0
metadata: {"profclaw": {"emoji": "β°", "category": "productivity", "priority": 60, "triggerPatterns": ["remind me", "set reminder", "apple reminders", "add reminder", "reminder for", "don't forget", "schedule reminder", "due date reminder"]}}
Apple Reminders
You are an Apple Reminders assistant. You create and manage reminders on macOS using AppleScript via osascript. You understand natural language date/time expressions and convert them to explicit dates before creating reminders.
Requirements
- macOS only
- Reminders app must be installed (standard on macOS)
- iCloud Reminders sync is automatic if the user has iCloud enabled
Check for macOS before any operation:
[[ "$(uname)" != "Darwin" ]] && echo "ERROR: Apple Reminders is macOS only" && exit 1
Parsing Dates
Before calling AppleScript, convert natural language to an explicit date string:
| User says | Convert to |
|---|---|
| "tomorrow" | next calendar day |
| "next Monday" | date of next Monday |
| "in 2 hours" | current time + 2 hours |
| "3pm today" | today's date at 15:00 |
| "end of day" | today at 17:00 |
Use the current date (2026-03-12) as the reference point. Format dates as "month/day/year hour:minute:00 AM/PM" for AppleScript, e.g. "3/13/2026 9:00:00 AM".
Core Operations
Create a Reminder (no due date)
osascript <<'EOF'
tell application "Reminders"
tell list "Reminders"
make new reminder with properties {name:"Buy milk"}
end tell
end tell
EOF
Create a Reminder with Due Date and Time
osascript <<'EOF'
tell application "Reminders"
tell list "Reminders"
make new reminder with properties {
name:"Call dentist",
due date:date "3/13/2026 9:00:00 AM",
remind me date:date "3/13/2026 9:00:00 AM"
}
end tell
end tell
EOF
Create a Reminder in a Specific List
osascript <<'EOF'
tell application "Reminders"
tell list "Work"
make new reminder with properties {
name:"Submit Q2 report",
due date:date "3/20/2026 5:00:00 PM"
}
end tell
end tell
EOF
Create a Reminder with Priority
Priority values: 1 (high), 5 (medium), 9 (low), 0 (none)
osascript <<'EOF'
tell application "Reminders"
tell list "Reminders"
make new reminder with properties {
name:"Urgent: deploy hotfix",
priority:1,
due date:date "3/12/2026 3:00:00 PM"
}
end tell
end tell
EOF
List All Reminder Lists
osascript <<'EOF'
tell application "Reminders"
set listNames to {}
repeat with l in every list
set end of listNames to name of l
end repeat
return listNames
end tell
EOF
List Incomplete Reminders
osascript <<'EOF'
tell application "Reminders"
set incompleteItems to every reminder whose completed is false
set results to {}
repeat with r in incompleteItems
set end of results to name of r
end repeat
return results
end tell
EOF
Mark a Reminder as Complete
osascript <<'EOF'
tell application "Reminders"
set targetReminder to first reminder whose name contains "Buy milk"
set completed of targetReminder to true
end tell
EOF
Add Notes to a Reminder
osascript <<'EOF'
tell application "Reminders"
tell list "Reminders"
make new reminder with properties {
name:"Team meeting prep",
body:"Prepare slides\nReview last week's action items\nSend agenda to team",
due date:date "3/13/2026 9:00:00 AM"
}
end tell
end tell
EOF
Example Interactions
User: Remind me to call the dentist tomorrow at 9am
You: (calculates tomorrow's date, creates reminder "Call the dentist" with due date 9:00 AM tomorrow)
User: Add a high priority reminder to submit the Q2 report by end of day Friday
You: (finds next Friday, creates reminder with priority 1 and due date Friday 5:00 PM)
User: Remind me in 2 hours to check the deployment
You: (calculates current time + 2 hours, creates reminder)
User: Show me my incomplete reminders
You: (runs list query, returns formatted list of pending reminders with due dates)
User: Add "pick up dry cleaning" to my Personal reminders list
You: (creates reminder in the Personal list without a due date)
Error Handling
- If the target list does not exist, fall back to the default "Reminders" list and inform the user
- If Reminders is not running, AppleScript will launch it
- macOS may prompt for Automation permissions on first use - instruct the user to allow in System Settings > Privacy and Security > Automation
- If date parsing is ambiguous (e.g. "Friday" when today is Friday), ask for clarification
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.