Prismer execution contract
This is the uniquely named prismer-apple-reminders skill, adapted from Hermes.
Use the actual tools exposed by the executing host; examples using terminal,
process, delegate_task, vision_analyze or browser_* are not tool registrations.
Missing dependencies do not hide this skill. Report command startup, version,
account/permissions and task-specific live verification separately. Use task-owned
artifact paths and existing user authorization; do not change shared accounts,
Runtime/provider configuration, global security settings or unrelated work.
See NOTICE.md and LICENSE for resource provenance. Runtime availability and
upstream-entry suppression are owned by the integration layer.
Apple Reminders
Use remindctl to manage Apple Reminders directly from the terminal. Tasks sync across all Apple devices via iCloud.
Prerequisites
Resolve SKILL_ROOT to this installed directory and run
python3 "$SKILL_ROOT/scripts/readiness.py" reminders, then remindctl --version.
The startup probe does not authorize EventKit or verify iCloud/notifications.
The audited 0.1.1 lacks --alarm: enable the alarm examples below only when the
installed add/edit help explicitly supports that flag. Otherwise report the
early-notification requirement blocked; do not silently substitute a due date.
- macOS with Reminders.app
- Install:
brew install steipete/tap/remindctl - Grant Reminders permission when prompted
- Check:
remindctl status/ Request:remindctl authorize
When to Use
- User mentions "reminder" or "Reminders app"
- Creating personal to-dos with due dates that sync to iOS
- Managing Apple Reminders lists
- User wants tasks to appear on their iPhone/iPad
When NOT to Use
- Scheduling agent alerts → use the actual Prismer task scheduler, not an invented cronjob tool
- Calendar events → use Apple Calendar or Google Calendar
- Project task management → use GitHub Issues, Notion, etc.
- If user says "remind me" but means an agent alert → clarify first
Quick Reference
View Reminders
bashremindctl # 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
Manage Lists
bashremindctl list # List all lists remindctl list Work # Show specific list remindctl list Projects --create # Create list remindctl list Work --delete # Delete list
Create Reminders
bashremindctl add "Buy milk" remindctl add --title "Call mom" --list Personal --due tomorrow remindctl add --title "Meeting prep" --due "2026-02-15 09:00"
Due Time vs Alarm / Early Nudge
When the installed version supports both, --due and --alarm are different fields:
--duesets the reminder's due date/time.--alarmsets the EventKit alarm/notification trigger. Timed due reminders may default to an alarm at the due time, but pass--alarmexplicitly when the user asks for an earlier nudge.
For a reminder due at 2:00 PM with a notification 30 minutes earlier:
bashremindctl add --title "Hairdresser" --due "2026-05-15 14:00" --alarm "2026-05-15 13:30"
To edit an existing reminder:
bashremindctl 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:
bashremindctl today --json
Read the actual version's JSON schema; the following fields are version-dependent:
dueDate: actual due timealarmDate: notification / early nudge time
Apple's public EKReminder docs list only reminder-specific properties. Alarm support comes from inherited EKCalendarItem behavior exposed by remindctl's --alarm flag.
Complete / Delete
bashremindctl complete 1 2 3 # Complete by ID remindctl delete 4A83 --force # Delete by ID
Output Formats
bashremindctl today --json # JSON for scripting remindctl today --plain # TSV format remindctl today --quiet # Counts only
Date Formats
Accepted by --due and date filters:
today,tomorrow,yesterdayYYYY-MM-DDYYYY-MM-DD HH:mm- ISO 8601 (
2026-01-04T12:34:56Z)
Rules
- Clarify Apple Reminders versus an agent scheduled task only when intent is ambiguous.
- Use the user's stated content/time authorization; clarify only missing fields.
- Use
--jsonfor programmatic parsing - Record host timezone and resolved timestamp. Read back the exact created ID; help/JSON success alone does not prove the notification was delivered.


