Get the FREE Ultimate OpenClaw Setup Guide →

macos-reminders

Scanned
npx machina-cli add skill lucaperret/agent-skills/macos-reminders --openclaw
Files (1)
SKILL.md
4.9 KB

macOS 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:

FieldRequiredDefaultDescription
nameyes-Reminder title
listnodefault listReminder list name (from list-lists)
bodyno""Notes/details
offset_daysno-Due date as days from today (0=today, 1=tomorrow)
iso_dateno-Absolute due date YYYY-MM-DD (overrides offset_days)
hourno9Due time hour (0-23)
minuteno0Due time minute (0-59)
priorityno0Priority: 0=none, 1=high, 5=medium, 9=low
flaggednofalseMark as flagged

List reminders

echo '<json>' | "$SKILL_DIR/scripts/reminders.sh" list-reminders

JSON fields:

FieldRequiredDefaultDescription
listnoall listsFilter by list name
include_completednofalseInclude completed reminders

Interpreting natural language

Map user requests to JSON fields:

User saysJSON
"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

  1. Always list reminder lists first if the user hasn't specified one — use the closest matching list name
  2. Never use hardcoded date strings in AppleScript — always use offset_days or iso_date
  3. Confirm the list name with the user if the intended list is ambiguous
  4. Pass JSON via stdin — never as a CLI argument (avoids leaking data in process list)
  5. All fields are validated by the script (type coercion, range checks, format validation) — invalid input is rejected with an error message
  6. All actions are logged to logs/reminders.log with timestamp, command, list, and name
  7. Due date is optional — reminders without a due date are valid (undated tasks)
  8. 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

  1. Step 1: List reminder lists with the provided script
  2. Step 2: Create a reminder by piping a JSON payload to the script
  3. 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?

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers