Install
$ agentstack add skill-atlasomnia-donna-starter-apple-reminders ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Apple Reminders
Use remindctl to manage Apple Reminders directly from the terminal. Tasks sync across all Apple devices via iCloud.
Prerequisites
- macOS with Reminders.app
- Install:
brew install steipete/tap/remindctl - Grant Reminders permission when prompted
- Check:
remindctl status/ Request:remindctl authorize - If macOS reports Full Access but
remindctl statusstill saysNot determinedorDenied, test AppleScript instead:
``bash osascript -e 'tell application "Reminders" to return name of every list' ` If AppleScript works, use Reminders AppleScript as a fallback for list/read/create operations; the TCC grant may apply to Terminal/Python but not the remindctl` binary context.
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 cronjob tool instead
- 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
- Things 3 — if the user's primary task manager is Things 3, note it has no terminal CLI; it exposes data only via URL scheme (
things://...) or manual export (File → Export → JSON/HTML).
Quick Reference
View Reminders
remindctl # 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
Pitfall — remindctl list can hang: remindctl list --all timed out after 180s in testing. Use remindctl today, remindctl week, or date-specific queries instead of broad list commands. If you must see everything, pipe through a timeout:
timeout 30 remindctl all 2>&1
Manage Lists
remindctl list # List all lists
remindctl list Work # Show specific list
remindctl list Projects --create # Create list
remindctl list Work --delete # Delete list
Create Reminders
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 Time vs Alarm / Early Nudge
--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:
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 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
remindctl complete 1 2 3 # Complete by ID
remindctl delete 4A83 --force # Delete by ID
Subtasks / Parent Reminders
remindctl 0.1.1 does not expose subtask/parent operations in add or edit. It can create and edit flat reminders only. If the user asks to reorganize existing reminders as subtasks, first verify whether a supported AppleScript/ReminderKit path exists on the current macOS version; do not assume remindctl can do it.
Fallback options, in order:
- Use the Reminders UI manually/with computer-use if accessible.
- If UI automation is not accessible and the user expects direct action, the local Reminders SQLite store contains
ZREMCDREMINDER.ZPARENTREMINDERandZCKPARENTREMINDERIDENTIFIER, but direct DB edits are fragile. Back up the active store first and verify with a read-only query afterward. Prefer this only for narrow, reversible edits.
Output Formats
remindctl 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
- When user says "remind me", clarify: Apple Reminders (syncs to phone) vs agent cronjob alert
- Always confirm reminder content and due date before creating
- Use
--jsonfor programmatic parsing
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: AtlasOmnia
- Source: AtlasOmnia/donna-starter
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.