From personal
Use when the user wants to add, view, complete, or organize items in Apple Reminders, or says "remind me", "add to my list", "todo".
How this skill is triggered — by the user, by Claude, or both
Slash command
/personal:apple-remindersThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Add items to any Apple Reminders list, view existing reminders, mark items complete, and create new lists. Pure AppleScript via `osascript` — no external deps.
Add items to any Apple Reminders list, view existing reminders, mark items complete, and create new lists. Pure AppleScript via osascript — no external deps.
Adapted from densign01/reminders-skill.
Parse the request:
osascript -e 'tell application "Reminders"
set listNames to {}
repeat with l in lists
set end of listNames to name of l
end repeat
return listNames
end tell'
osascript -e 'tell application "Reminders"
set targetList to list "LIST_NAME"
set reminderInfo to {}
repeat with r in (reminders in targetList whose completed is false)
set reminderName to name of r
set dueDate to due date of r
if dueDate is not missing value then
set reminderName to reminderName & " (due: " & (dueDate as string) & ")"
end if
set end of reminderInfo to reminderName
end repeat
return reminderInfo
end tell'
Step 1 — Pick the list. If unspecified, ask the user, showing available lists from the query above.
Step 2 — Check existing items to avoid duplicates (case-insensitive partial match):
osascript -e 'tell application "Reminders"
set targetList to list "LIST_NAME"
set reminderNames to {}
repeat with r in (reminders in targetList whose completed is false)
set end of reminderNames to name of r
end repeat
return reminderNames
end tell'
Step 3 — Parse items. Extract bullet/comma items, due dates ("tomorrow", "in 3 days", "Jan 15"), and notes (after a dash or in parens).
Step 4 — Present the plan and confirm:
## Adding to [List Name] (X new items)
**Will add:**
- Item 1
- Item 2 (due: tomorrow)
**Already on list (skipping):**
- ~~Item 3~~
Step 5 — Add via AppleScript. Without due date:
osascript -e 'tell application "Reminders"
set targetList to list "LIST_NAME"
make new reminder in targetList with properties {name:"ITEM_NAME"}
end tell'
With due date:
osascript <<'EOF'
tell application "Reminders"
set targetList to list "LIST_NAME"
set dueDate to (current date) + (1 * days) -- tomorrow
make new reminder in targetList with properties {name:"ITEM_NAME", due date:dueDate}
end tell
EOF
Batch insert (more efficient for multiple items):
osascript <<'EOF'
tell application "Reminders"
set targetList to list "LIST_NAME"
make new reminder in targetList with properties {name:"Item 1"}
make new reminder in targetList with properties {name:"Item 2"}
make new reminder in targetList with properties {name:"Item 3", due date:(current date) + (1 * days)}
end tell
EOF
osascript -e 'tell application "Reminders"
set targetList to list "LIST_NAME"
repeat with r in (reminders in targetList whose completed is false)
if name of r contains "SEARCH_TERM" then
set completed of r to true
return "Completed: " & name of r
end if
end repeat
return "Not found"
end tell'
osascript -e 'tell application "Reminders"
make new list with properties {name:"LIST_NAME"}
end tell'
| Input | AppleScript |
|---|---|
| today | (current date) |
| tomorrow | (current date) + (1 * days) |
| next week | (current date) + (7 * days) |
| in X days | (current date) + (X * days) |
| Monday, Tuesday, … | calculate days until that weekday |
| Jan 15, March 3, … | parse and construct date object |
For specific times:
set dueDate to (current date) + (1 * days)
set hours of dueDate to 14 -- 2 PM
set minutes of dueDate to 0
osascript only)Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub k4black/dotfiles --plugin personal