apple-reminders
Use remindctl to inspect and manage Apple Reminders on macOS 14+, including show/list/add/edit/complete/delete/status/authorize workflows, due dates, alarms, recurrence, and location triggers.
The English summary is being prepared. Showing the original description.
See how to installFiles included (128)
- SKILL.md6.6 KB
- .github/release-allowed-signers102 B
- .github/workflows/ci.yml2.0 KB
- .github/workflows/clawsweeper-dispatch.yml9.5 KB
- .github/workflows/codeql.yml1.6 KB
- .github/workflows/pages.yml1.3 KB
- .github/workflows/release.yml2.6 KB
- .gitignore87 B
- .mac-release.env.example294 B
- .node-version8 B
- .swift-format2.0 KB
- .swiftlint.yml1.5 KB
- CHANGELOG.md7.3 KB
- docs/assets/readme-banner.jpg49.3 KB
- docs/CNAME13 B
- docs/commands.md6.0 KB
- docs/index.md2.0 KB
- docs/install.md654 B
- docs/manual-tests.md2.8 KB
- docs/permissions.md1.3 KB
- docs/RELEASING.md5.4 KB
- LICENSE1.0 KB
- Makefile1.8 KB
- package.json1.2 KB
- Package.resolved388 B
- Package.swift1.3 KB
- pnpm-lock.yaml4.6 KB
- README.md9.6 KB
- scripts/build-docs-site.mjs30.9 KB
- scripts/build-macos-universal.sh1.1 KB
- scripts/build-release.sh548 B
- scripts/check-coverage.sh1.1 KB
- scripts/check-macos-artifact.sh811 B
- scripts/check-release-metadata.sh2.6 KB
- scripts/check-release-source.sh3.2 KB
- scripts/check-release-version.sh976 B
- scripts/check-release.sh2.0 KB
- scripts/download-release-assets.sh9.2 KB
- scripts/extract-release-notes.sh491 B
- scripts/generate-version.sh1.2 KB
- scripts/package-macos-candidate.sh1012 B
- scripts/release-config.sh750 B
- scripts/render-homebrew-formula.sh2.2 KB
- scripts/report-coverage.py1.7 KB
- scripts/test-coverage.py1.8 KB
- scripts/test-release-caller.py3.6 KB
- scripts/test-release.sh23.1 KB
- scripts/verify-homebrew-formula.sh1.9 KB
- scripts/verify-homebrew-install.sh497 B
- scripts/verify-macos-binary.sh3.7 KB
- scripts/verify-macos-release.sh5.2 KB
- Sources/RemindCore/AsyncTimeout.swift5.1 KB
- Sources/RemindCore/DateParsing.swift3.7 KB
- Sources/RemindCore/Errors.swift1.9 KB
- Sources/RemindCore/EventKitDateHelpers.swift209 B
- Sources/RemindCore/EventKitLocation.swift2.3 KB
- Sources/RemindCore/EventKitReminderSnapshot.swift2.9 KB
- Sources/RemindCore/EventKitStore.swift11.5 KB
- Sources/RemindCore/IDResolver.swift1.4 KB
- Sources/RemindCore/ListResolver.swift2.5 KB
- Sources/RemindCore/Models.swift5.6 KB
- Sources/RemindCore/ProcessWait.swift1015 B
- Sources/RemindCore/ReminderAlarmMutation.swift804 B
- Sources/RemindCore/ReminderFilter.swift3.6 KB
- Sources/RemindCore/RemindersAuthorization.swift1.0 KB
- Sources/RemindCore/RemindersStoreConvenience.swift196 B
- Sources/RemindCore/ReminderURLNoteMirror.swift3.2 KB
- Sources/RemindCore/SystemOperationCancellation.swift1.2 KB
- Sources/remindctl/CommandHelpers.swift3.7 KB
- Sources/remindctl/CommandRouter.swift4.2 KB
- Sources/remindctl/Commands/AddCommand.swift6.3 KB
- Sources/remindctl/Commands/AuthorizeCommand.swift1.1 KB
- Sources/remindctl/Commands/CompleteCommand.swift1.4 KB
- Sources/remindctl/Commands/CompletionCommand.swift1.6 KB
- Sources/remindctl/Commands/DeleteCommand.swift1.7 KB
- Sources/remindctl/Commands/DoctorCommand.swift2.2 KB
- Sources/remindctl/Commands/EditCommand.swift7.2 KB
- Sources/remindctl/Commands/ExportCommand.swift3.6 KB
- Sources/remindctl/Commands/InfoCommand.swift1.1 KB
- Sources/remindctl/Commands/LinkCommand.swift2.5 KB
- Sources/remindctl/Commands/ListCommand.swift8.0 KB
- Sources/remindctl/Commands/OpenCommand.swift2.7 KB
- Sources/remindctl/Commands/SearchCommand.swift2.0 KB
- Sources/remindctl/Commands/ShowCommand.swift2.0 KB
- Sources/remindctl/Commands/StatusCommand.swift844 B
- Sources/remindctl/CommandSignatures.swift1.3 KB
- Sources/remindctl/CommandSpec.swift429 B
- Sources/remindctl/Console.swift1.0 KB
- Sources/remindctl/HelpPrinter.swift3.3 KB
- Sources/remindctl/OutputFormatting.swift7.9 KB
- Sources/remindctl/OutputLists.swift1.5 KB
- Sources/remindctl/ParsedValues+Decode.swift647 B
- Sources/remindctl/PermissionsHelp.swift1.0 KB
- Sources/remindctl/RemindctlMain.swift139 B
- Sources/remindctl/ReminderLinks.swift439 B
- Sources/remindctl/Resources/Info.plist655 B
- Sources/remindctl/RichReadDiagnostics.swift3.4 KB
- Sources/remindctl/RuntimeOptions.swift1.3 KB
- Sources/remindctl/Version.swift115 B
- Tests/RemindCoreTests/AsyncTimeoutTests.swift3.3 KB
- Tests/RemindCoreTests/AuthorizationStatusTests.swift1.4 KB
- Tests/RemindCoreTests/DateParsingTests.swift6.1 KB
- Tests/RemindCoreTests/ErrorsTests.swift981 B
- Tests/RemindCoreTests/IDResolverTests.swift4.0 KB
- Tests/RemindCoreTests/ListResolverTests.swift1.8 KB
- Tests/RemindCoreTests/ModelsTests.swift3.8 KB
- Tests/RemindCoreTests/PriorityTests.swift758 B
- Tests/RemindCoreTests/ProcessWaitTests.swift1.6 KB
- Tests/RemindCoreTests/ReminderAlarmMutationTests.swift2.1 KB
- Tests/RemindCoreTests/ReminderFilteringTests.swift6.5 KB
- Tests/RemindCoreTests/ReminderFilterParseTests.swift669 B
- Tests/RemindCoreTests/ReminderItemCodingTests.swift1.4 KB
- Tests/RemindCoreTests/ReminderSnapshotTests.swift3.4 KB
- Tests/RemindCoreTests/ReminderURLNoteMirrorTests.swift7.2 KB
- Tests/remindctlTests/CommandRouterTests.swift1.8 KB
- Tests/remindctlTests/EditCommandDateUpdateTests.swift2.4 KB
- Tests/remindctlTests/ExportCommandTests.swift1.6 KB
- Tests/remindctlTests/HelpPrinterTests.swift2.3 KB
- Tests/remindctlTests/ListActionTests.swift1.7 KB
- Tests/remindctlTests/ListCommandTests.swift4.5 KB
- Tests/remindctlTests/LocationCommandTests.swift755 B
- Tests/remindctlTests/PermissionsHelpTests.swift407 B
- Tests/remindctlTests/RecurrenceParsingTests.swift1.5 KB
- Tests/remindctlTests/ReminderLinksTests.swift380 B
- Tests/remindctlTests/RuntimeOptionsTests.swift414 B
- Tests/remindctlTests/SearchCommandTests.swift935 B
- Tests/remindctlTests/URLCommandTests.swift1.3 KB
- version.env24 B
SKILL.md (original)
Review the instructions the agent will receive before you install.
Apple Reminders
Use remindctl for Apple Reminders on macOS. It uses Apple's public EventKit APIs, so changes sync through the normal Reminders/iCloud path.
Prerequisites
- macOS 14+ with Reminders.app
remindctlinstalled and available onPATH- Install with
brew install steipete/tap/remindctl - Reminders access for the terminal app that runs
remindctl - Use
remindctl statusto check permission state before mutating data
Use This Skill When
- The user wants to manage Apple Reminders from the terminal
- The user asks for reminders, reminder lists, due dates, completion, deletion, or permission status
- The user wants reminders that appear on iPhone, iPad, or Mac via Apple Reminders
Do Not Use This Skill When
- The user wants a non-Reminders agent alert, cron job, or timed chatbot reminder
- The user wants calendar events instead of reminders
- The user needs native Reminders sections, tags, smart lists, attachments, or Apple's private "Urgent" toggle
Current Command Model
remindctldefaults toshow todayshowaccepts filters:today,tomorrow,week,overdue,upcoming,open,completed,all, or a date stringshow --list <name>limits a view to one listlistshows all lists with no arguments, or reminders in one or more named listsaddcreates a remindereditupdates a reminder by index or ID prefixcompletemarks reminders completedeleteremoves remindersstatusreports Reminders authorization without promptingauthorizerequests permission when possible
Helpful Aliases
listsandlsmap tolistrmmaps todeletedonemaps tocomplete
Output And Flags
--json,-j,--json-output, and--jsonOutputemit JSON--plainemits stable tab-separated output--quietemits minimal output--no-colordisables colored output--no-inputdisables interactive prompts
Prefer --json when another step needs machine-readable data. JSON can include EventKit metadata such as creationDate, lastModifiedDate, url, alarmDate, locationTrigger, and recurrenceRule.
Reading Reminder Data
- Use
remindctl today --jsonorremindctl show --jsonto inspect reminders - Use
remindctl open --jsonfor all incomplete reminders, including reminders without due dates - Use
remindctl list --jsonto inspect lists - Use
remindctl list Work Errands --jsonto inspect multiple lists together - Use
remindctl status --jsonto inspect authorization state - Reminder IDs and display indexes come from
showoutput;complete,delete, andeditaccept either an index or an ID prefix
Creating Reminders
add accepts the title as a positional argument or via --title, but not both.
Important options:
--list <name>choose the target list--due <date>set the due date--alarm <date>set the alarm date--notes <text>add notes--url <url>set the dedicated URL field--repeat <rule>set simple recurrence--priority <none|low|medium|high>set priority--location <address>create a location trigger--radius <meters>adjust geofence radius--leavingtrigger on leaving instead of arriving
If no list is provided, remindctl uses the Reminders app's default list. Do not assume the default is a specific list name. If the system has no default reminder list, specify --list.
Use --location whenever using --radius or --leaving; those flags are invalid on their own.
Editing Reminders
edit can update:
--title--list--dueor--clear-due--alarmor--clear-alarm--notes--urlor--clear-url--repeator--no-repeat--priority--completeor--incomplete
Reject conflicting combinations such as --due with --clear-due, --alarm with --clear-alarm, --url with --clear-url, --repeat with --no-repeat, or --complete with --incomplete.
Use remindctl edit <id> --list <new-list> to move a reminder between lists. Do not tell the user to delete and recreate the reminder for a move; the command already supports moving it directly.
Dates
Accepted date inputs:
today,tomorrow,yesterdayYYYY-MM-DDYYYY-MM-DD HH:mm- ISO 8601 with timezone, such as
2026-01-03T12:34:56Z - Local ISO 8601 without timezone, such as
2026-01-03T12:34:56
Rules:
- Date-only inputs create all-day reminders
- Date-time inputs create timed reminders
- Timed due reminders get a notification alarm at the due time unless
--alarmoverrides it - Due-only edits preserve every alarm; explicit alarm edits preserve relative and location-based alarms
If the user provides only a calendar date, prefer a date-only value instead of inventing a time.
Supported repeat values:
daily,weekly,biweekly,monthly,yearlyevery N days/weeks/months/years
Lists
remindctl listprints all lists with reminder and overdue countsremindctl list <name...>prints reminders in one or more listsremindctl list <name> --createcreates the list if missingremindctl list <name> --deletedeletes the listremindctl list <name> --rename <new-name>renames the listremindctl list <name> --forceskips confirmation for destructive list deletion- Create, delete, and rename accept one list name only
Completion And Deletion
completeanddeleterequire one or more IDs or indexesdeleteprompts for confirmation unless--forceor--no-inputsuppresses itcompletesupports--dry-rundeletesupports--dry-run
Permissions
Use remindctl status first when permission state matters.
statusnever promptsauthorizetriggers the system prompt when the state isnotDetermined- If access is denied, direct the user to
System Settings > Privacy & Security > Reminders - If the prompt does not appear, the current workaround is to run:
osascript -e 'tell application "Reminders" to get name of reminders'
When running over SSH, grant access on the Mac that actually runs remindctl.
Response Discipline
- Confirm the reminder title, list, and due date before creating it if any of them are ambiguous
- Use the exact command syntax shown by the current implementation
- Do not reuse stale guidance about deleting and recreating reminders to move them between lists
- Do not assume a fixed default list name
- Do not promise unsupported private Reminders.app features;
remindctlintentionally stays on public EventKit APIs
Reviews
No reviews yet. Tell others what you thought.
Comments
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.