Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
steipete avatar

Apple Reminders

  • 2 installs
  • 319 repo stars
  • Updated August 2, 2026
  • steipete/remindctl

Helps with ai & agent building tasks during AI-assisted development.

About

apple-reminders is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • apple-reminders
  • AI & Agent Building
  • AI-coding skill

Apple Reminders by the numbers

  • 2 all-time installs (skills.sh)
  • +1 installs in the week ending Jul 11, 2026 (Skillselion tracking)
  • Ranked #13,957 of 16,556 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/steipete/remindctl --skill apple-reminders

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2
repo stars319
Last updatedAugust 2, 2026
Repositorysteipete/remindctl

What it does

Helps with ai & agent building tasks during AI-assisted development.

Files

SKILL.mdMarkdownGitHub ↗

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

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

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.