Skip to content
cccskills
FreePublished on GitHub

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 install

Files 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
  • remindctl installed and available on PATH
  • Install with brew install steipete/tap/remindctl
  • Reminders access for the terminal app that runs remindctl
  • Use remindctl status to 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

  • remindctl defaults to show today
  • show accepts filters: today, tomorrow, week, overdue, upcoming, open, completed, all, or a date string
  • show --list <name> limits a view to one list
  • list shows all lists with no arguments, or reminders in one or more named lists
  • add creates a reminder
  • edit updates a reminder by index or ID prefix
  • complete marks reminders complete
  • delete removes reminders
  • status reports Reminders authorization without prompting
  • authorize requests permission when possible

Helpful Aliases

  • lists and ls map to list
  • rm maps to delete
  • done maps to complete

Output And Flags

  • --json, -j, --json-output, and --jsonOutput emit JSON
  • --plain emits stable tab-separated output
  • --quiet emits minimal output
  • --no-color disables colored output
  • --no-input disables 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 --json or remindctl show --json to inspect reminders
  • Use remindctl open --json for all incomplete reminders, including reminders without due dates
  • Use remindctl list --json to inspect lists
  • Use remindctl list Work Errands --json to inspect multiple lists together
  • Use remindctl status --json to inspect authorization state
  • Reminder IDs and display indexes come from show output; complete, delete, and edit accept 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
  • --leaving trigger 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
  • --due or --clear-due
  • --alarm or --clear-alarm
  • --notes
  • --url or --clear-url
  • --repeat or --no-repeat
  • --priority
  • --complete or --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, yesterday
  • YYYY-MM-DD
  • YYYY-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 --alarm overrides 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, yearly
  • every N days/weeks/months/years

Lists

  • remindctl list prints all lists with reminder and overdue counts
  • remindctl list <name...> prints reminders in one or more lists
  • remindctl list <name> --create creates the list if missing
  • remindctl list <name> --delete deletes the list
  • remindctl list <name> --rename <new-name> renames the list
  • remindctl list <name> --force skips confirmation for destructive list deletion
  • Create, delete, and rename accept one list name only

Completion And Deletion

  • complete and delete require one or more IDs or indexes
  • delete prompts for confirmation unless --force or --no-input suppresses it
  • complete supports --dry-run
  • delete supports --dry-run

Permissions

Use remindctl status first when permission state matters.

  • status never prompts
  • authorize triggers the system prompt when the state is notDetermined
  • 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; remindctl intentionally 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.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Report a problem with this skill