# Reminders

Apple Reminders via rem CLI: add, list, search, update, complete, delete.

- Repository: https://github.com/steipete/agent-scripts (7431 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add steipete/agent-scripts --skill reminders -g -a claude-code -y`
Codex: `npx skills add steipete/agent-scripts --skill reminders -g -a codex -y`
Cursor: `npx skills add steipete/agent-scripts --skill reminders -g -a cursor -y`
Gemini CLI: `npx skills add steipete/agent-scripts --skill reminders -g -a gemini-cli -y`

## Description

Apple Reminders via rem CLI: add, list, search, update, complete, delete.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Reminders

Use this for Apple Reminders tasks. Prefer `rem` over Things/AppleScript when
the user wants an AI-friendly personal todo backend on macOS.

## Tool

- CLI: `rem`
- Repo: `https://github.com/BRO3886/rem`
- Install:

```bash
GOBIN=/opt/homebrew/bin go install github.com/BRO3886/rem/cmd/rem@latest
```

`rem` uses EventKit for normal reads/writes. It may need Reminders permission for
the calling app in System Settings > Privacy & Security.

## Start

Check access:

```bash
rem lists -o json
rem today -o json
```

Use JSON for anything scripted or verified:

```bash
rem list --incomplete -o json
rem search "flight" -o json
rem show <id> -o json
```

## Add Tasks

Default: add directly, then verify by search/show.

```bash
rem add "Book LHR-SFO nonstop business flight" --due "tomorrow 9am" --priority high --notes "Nonstop only." -o json
rem search "LHR-SFO" -o json
```

Useful flags:

- `--list "Name"`: target list
- `--due "tomorrow 9am"`: due date/time; natural language is supported
- `--priority high|medium|low|none`
- `--notes "text"`
- `--url https://...`
- `--silent`: due date without notification
- `--remind-me 15m`: alarm before due time
- `--repeat daily|weekly|monthly|yearly`

## Update / Complete / Delete

Find the UUID first, then mutate by id or unique short id:

```bash
rem search "flight" -o json
rem update <id> --name "New title" --due "friday 2pm" --notes "..." -o json
rem complete <id> -o json
rem delete <id> --force
```

Always read back after writes; do not trust exit status alone.

## Lists

```bash
rem lists --count -o json
rem list-mgmt create "Travel"
rem list-mgmt rename "Old" "New"
rem list-mgmt delete "Name" --force
```

## Conventions

The rest: https://github.com/steipete/agent-scripts/blob/HEAD/skills/reminders/SKILL.md
