Best for
- User mentions "reminder" or "Reminders app"
- Creating personal to-dos with due dates that sync to iOS
- Managing Apple Reminders lists
NousResearch/hermes-agent/skills/apple/apple-reminders/SKILL.md
Apple Reminders via remindctl: add, list, complete.
Decision brief
Use remindctl to manage Apple Reminders directly from the terminal. Tasks sync across all Apple devices via iCloud.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/NousResearch/hermes-agent --skill "skills/apple/apple-reminders"Inspect the Agent Skill "apple-reminders" from https://github.com/NousResearch/hermes-agent/blob/f5be9236e00ddf2f2a412697f267078fc4ee068e/skills/apple/apple-reminders/SKILL.md at commit f5be9236e00ddf2f2a412697f267078fc4ee068e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
macOS with Reminders.app
User mentions "reminder" or "Reminders app"
Scheduling agent alerts → use the cronjob tool instead
--due and --alarm are different fields:
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 85/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 225,255 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Use remindctl to manage Apple Reminders directly from the terminal. Tasks sync across all Apple devices via iCloud.
brew install steipete/tap/remindctlremindctl status / Request: remindctl authorizeremindctl # Today's reminders
remindctl today # Today
remindctl tomorrow # Tomorrow
remindctl week # This week
remindctl overdue # Past due
remindctl all # Everything
remindctl 2026-01-04 # Specific date
remindctl list # List all lists
remindctl list Work # Show specific list
remindctl list Projects --create # Create list
remindctl list Work --delete # Delete list
remindctl add "Buy milk"
remindctl add --title "Call mom" --list Personal --due tomorrow
remindctl add --title "Meeting prep" --due "2026-02-15 09:00"
--due and --alarm are different fields:
--due sets the reminder's due date/time.--alarm sets the EventKit alarm/notification trigger. Timed due reminders may default to an alarm at the due time, but pass --alarm explicitly when the user asks for an earlier nudge.For a reminder due at 2:00 PM with a notification 30 minutes earlier:
remindctl add --title "Hairdresser" --due "2026-05-15 14:00" --alarm "2026-05-15 13:30"
To edit an existing reminder:
remindctl edit 87354 --due "2026-05-15 14:00" --alarm "2026-05-15 13:30"
The Reminders UI may show or group the item by the alarm time because that is when the notification fires. Verify with JSON instead of assuming the due time moved:
remindctl today --json
Expected shape:
dueDate: actual due timealarmDate: notification / early nudge timeApple's public EKReminder docs list only reminder-specific properties. Alarm support comes from inherited EKCalendarItem behavior exposed by remindctl's --alarm flag.
remindctl complete 1 2 3 # Complete by ID
remindctl delete 4A83 --force # Delete by ID
remindctl today --json # JSON for scripting
remindctl today --plain # TSV format
remindctl today --quiet # Counts only
Accepted by --due and date filters:
today, tomorrow, yesterdayYYYY-MM-DDYYYY-MM-DD HH:mm2026-01-04T12:34:56Z)--json for programmatic parsing