macos-reminders
Scannednpx machina-cli add skill lucaperret/agent-skills/macos-reminders --openclawmacOS Reminders
Manage Apple Reminders via $SKILL_DIR/scripts/reminders.sh. All date handling uses relative math (current date + N * days) to avoid locale issues (FR/EN/DE date formats).
Quick start
List reminder lists
Always list reminder lists first to find the correct list name:
"$SKILL_DIR/scripts/reminders.sh" list-lists
Create a reminder
echo '<json>' | "$SKILL_DIR/scripts/reminders.sh" create-reminder
JSON fields:
| Field | Required | Default | Description |
|---|---|---|---|
name | yes | - | Reminder title |
list | no | default list | Reminder list name (from list-lists) |
body | no | "" | Notes/details |
offset_days | no | - | Due date as days from today (0=today, 1=tomorrow) |
iso_date | no | - | Absolute due date YYYY-MM-DD (overrides offset_days) |
hour | no | 9 | Due time hour (0-23) |
minute | no | 0 | Due time minute (0-59) |
priority | no | 0 | Priority: 0=none, 1=high, 5=medium, 9=low |
flagged | no | false | Mark as flagged |
List reminders
echo '<json>' | "$SKILL_DIR/scripts/reminders.sh" list-reminders
JSON fields:
| Field | Required | Default | Description |
|---|---|---|---|
list | no | all lists | Filter by list name |
include_completed | no | false | Include completed reminders |
Interpreting natural language
Map user requests to JSON fields:
| User says | JSON |
|---|---|
| "remind me tomorrow at 2pm" | offset_days: 1, hour: 14 |
| "remind me in 3 days" | offset_days: 3 |
| "add to my shopping list" | list: "Shopping" (match closest list name) |
| "high priority" or "important" | priority: 1, flagged: true |
| "remind me on February 25 at 3:30pm" | iso_date: "2026-02-25", hour: 15, minute: 30 |
| "remind me next Monday" | Calculate offset_days from today to next Monday |
| "flag this" | flagged: true |
For "next Monday", "next Friday" etc: compute the day offset using the current date. Use date command if needed:
# Days until next Monday (1=Monday)
target=1; today=$(date +%u); echo $(( (target - today + 7) % 7 ))
Example prompts
These are real user prompts and the commands you should run:
"Remind me to buy milk"
"$SKILL_DIR/scripts/reminders.sh" list-lists
Then:
echo '{"name":"Buy milk","list":"Reminders"}' | "$SKILL_DIR/scripts/reminders.sh" create-reminder
"Add a to-do to call the dentist tomorrow at 10am"
echo '{"name":"Call the dentist","offset_days":1,"hour":10}' | "$SKILL_DIR/scripts/reminders.sh" create-reminder
"Remind me to submit the report on February 28 — high priority"
echo '{"name":"Submit the report","iso_date":"2026-02-28","hour":9,"priority":1,"flagged":true}' | "$SKILL_DIR/scripts/reminders.sh" create-reminder
"Add eggs, bread, and butter to my shopping list"
echo '{"name":"Eggs","list":"Shopping"}' | "$SKILL_DIR/scripts/reminders.sh" create-reminder
echo '{"name":"Bread","list":"Shopping"}' | "$SKILL_DIR/scripts/reminders.sh" create-reminder
echo '{"name":"Butter","list":"Shopping"}' | "$SKILL_DIR/scripts/reminders.sh" create-reminder
"What's on my reminders?"
echo '{}' | "$SKILL_DIR/scripts/reminders.sh" list-reminders
"Show my work to-dos"
echo '{"list":"Work"}' | "$SKILL_DIR/scripts/reminders.sh" list-reminders
Critical rules
- Always list reminder lists first if the user hasn't specified one — use the closest matching list name
- Never use hardcoded date strings in AppleScript — always use
offset_daysoriso_date - Confirm the list name with the user if the intended list is ambiguous
- Pass JSON via stdin — never as a CLI argument (avoids leaking data in process list)
- All fields are validated by the script (type coercion, range checks, format validation) — invalid input is rejected with an error message
- All actions are logged to
logs/reminders.logwith timestamp, command, list, and name - Due date is optional — reminders without a due date are valid (undated tasks)
- Multiple items: when the user lists several items, create one reminder per item
Source
git clone https://github.com/lucaperret/agent-skills/blob/main/skills/macos-reminders/SKILL.mdView on GitHub Overview
macos-reminders lets you create, list, and manage Reminders on macOS using AppleScript. It accepts natural-language requests and converts them into JSON payloads consumed by a helper script. Date handling uses relative math to avoid locale issues, with options for absolute iso_date, relative offset_days, time, priority, and flagged status.
How This Skill Works
The skill uses the shell script at SKILL_DIR/scripts/reminders.sh to receive JSON input and drive AppleScript via osascript. It parses JSON with Python3, maps fields like name, list, body, offset_days, iso_date, hour, minute, priority and flagged to Reminders actions, and updates Reminders accordingly. All date calculations are performed in the script to keep behavior locale independent.
When to Use It
- Remind me to buy milk
- Add a to-do to call the dentist tomorrow at 10am
- Remind me to submit the report on February 28 at 3:30pm with high priority
- Add Eggs, Bread, and Butter to Shopping list
- Flag a reminder as important for an upcoming deadline
Quick Start
- Step 1: List reminder lists with the provided script
- Step 2: Create a reminder by piping a JSON payload to the script
- Step 3: Verify with list-reminders and adjust as needed
Best Practices
- List reminder lists first to identify the correct list name
- Prefer iso_date for exact dates and offset_days for relative due dates
- Specify hour and minute when a due time is required
- Use priority and flagged to mark urgency or importance
- Keep the JSON payload concise and validate with list-reminders after creation
Example Use Cases
- Remind me to buy milk
- Add a to-do to call the dentist tomorrow at 10am
- Remind me to submit the report on February 28 at 3:00pm with high priority
- Add Eggs to Shopping with list Shopping
- What's on my reminders?