Apple Reminders
Overview
Use this skill to work with the local macOS Reminders app through the bundled helper at ../../scripts/apple_reminders.py. The helper uses a Swift/EventKit backend for core operations and AppleScript only for flag/unflag. Prefer the quick commands today, overdue, due, alarms-today, add, and done over raw JSON unless you need exact reminder fields.
Workflow
- Confirm the task is meant for Apple Reminders on macOS, not calendar events or another task app.
- Never run multiple Reminders helper commands in parallel. The helper serializes access to Reminders.app with a lock and timeout.
- For triage, start with
todayoroverdue. These default to the configured lists in../../config.json. - Use
list-liststo ground list names and aliases before writing if the target list is not obvious. - Prefer
addfor new reminders anddonefor completion. Uselistonly when you need a fuller list or raw JSON output. - Use
update,move-to-list,flag,unflag,reopen, anddeletefor lifecycle changes to an existing reminder. - If there are multiple similarly named reminders, identify the right one explicitly before mutating it.
Commands
List reminder lists and aliases:
/usr/bin/python3 ../../scripts/apple_reminders.py list-lists
Show reminders due today:
/usr/bin/python3 ../../scripts/apple_reminders.py today
Show overdue reminders:
/usr/bin/python3 ../../scripts/apple_reminders.py overdue
Show reminders whose alarm fires today:
/usr/bin/python3 ../../scripts/apple_reminders.py alarms-today
List reminders from one list alias:
/usr/bin/python3 ../../scripts/apple_reminders.py list \
--list todo
Add a new reminder:
/usr/bin/python3 ../../scripts/apple_reminders.py add \
--list todo \
--title "Zavolat Petrovi" \
--date tomorrow \
--time 09:00 \
--remind-minutes-before 30
Add a recurring reminder:
/usr/bin/python3 ../../scripts/apple_reminders.py add \
--list todo \
--title "Týdenní report" \
--date tomorrow \
--time 09:00 \
--repeat weekly \
--repeat-weekdays MO,WE,FR
Mark a reminder complete:
/usr/bin/python3 ../../scripts/apple_reminders.py done \
--list todo \
--title "Zavolat Petrovi"
Update a reminder:
/usr/bin/python3 ../../scripts/apple_reminders.py update \
--list todo \
--title "Zavolat Petrovi" \
--set-body "Po obědě" \
--priority 5
Move a reminder:
/usr/bin/python3 ../../scripts/apple_reminders.py move-to-list \
--list todo \
--title "Zavolat Petrovi" \
--to-list dovolena
Flag a reminder:
/usr/bin/python3 ../../scripts/apple_reminders.py flag \
--list todo \
--title "Zavolat Petrovi"
Delete a reminder:
/usr/bin/python3 ../../scripts/apple_reminders.py delete \
--list todo \
--title "Zavolat Petrovi"
Safety
- Treat
addanddoneas write operations. - Do not invent list names. Use the exact list or alias returned by
list-lists. - Duplicate detection defaults to
title+list+dueDate. Set--dedupe-by noneonly when a true duplicate is intended. donerequires a unique target. If several reminders match, refine by list or use the reminderid.flagandunflagare implemented through AppleScript because EventKit does not expose the flagged property.- macOS may prompt for Reminders automation access the first time the helper runs.
Output Conventions
- Use exact local dates and times when summarizing due reminders.
- Prefer compact human-readable output for
today,overdue, anddue. - When creating a reminder, echo the final list, title, due date, and remind time if present.
- When completing a reminder, echo the matched reminder
idand title.