skills$openclaw/mac-reminders-agent
swancho6.1k

by swancho

mac-reminders-agent – OpenClaw Skill

mac-reminders-agent is an OpenClaw Skills integration for coding workflows. |

6.1k stars5.2k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

namemac-reminders-agent
description| OpenClaw Skills integration.
ownerswancho
repositoryswancho/mac-reminders-agent
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @swancho/mac-reminders-agent
last updatedFeb 7, 2026

Maintainer

swancho

swancho

Maintains mac-reminders-agent in the OpenClaw Skills directory.

View GitHub profile
File Explorer
7 files
.
reminders
apple-bridge.js
5.6 KB
_meta.json
291 B
cli.js
3.9 KB
locales.json
3.7 KB
README.md
7.3 KB
SKILL.md
5.1 KB
SKILL.md

name: mac-reminders-agent version: 1.1.0 author: swancho license: CC-BY-NC-4.0 description: | Integrate with macOS Reminders app to check today's/this week's tasks or add new reminders. Supports multiple languages (en, ko, ja, zh) for trigger detection and response formatting. Trigger this skill when users ask to "check today's/this week's reminders/tasks/sessions", and internally call cli.js → apple-bridge.js to summarize and organize the results.

Mac Reminders Agent

Overview

This skill integrates with the local macOS Reminders app to:

  • View and organize today's/this week's reminders (work/personal/sessions)
  • Add new reminders based on natural language requests
  • Multi-language support: English, Korean, Japanese, Chinese

The skill uses the following files relative to its directory:

  • cli.js (unified entry point)
  • reminders/apple-bridge.js (backend: AppleScript + applescript npm module)
  • locales.json (language-specific triggers and responses)

Language Support

The skill automatically detects user language or can be explicitly set via --locale parameter.

Supported Languages

CodeLanguageExample Trigger
enEnglish"What do I have to do today?"
ko한국어"오늘 할 일 뭐 있어?"
ja日本語"今日のタスクは?"
zh中文"今天有什么任务?"

Language Detection

  1. Explicit: Use --locale parameter
  2. Automatic: Detect from user's message language
  3. Default: Falls back to en (English)

How It Works

User natural language requests are handled in two cases:

  1. List reminders (list)
  2. Add reminder (add)

For each case, call the Node.js CLI, receive JSON results, and format them using locale-specific templates.


1) List Reminders

Trigger Examples (by language)

English:

  • "What do I have to do today?"
  • "Show me today's reminders"
  • "What's on my schedule this week?"

Korean (한국어):

  • "오늘 할 일 뭐 있어?"
  • "오늘 미리알림 정리해줘"
  • "이번 주 일정 뭐 있어?"

Japanese (日本語):

  • "今日のタスクは?"
  • "今日のリマインダーを見せて"

Chinese (中文):

  • "今天有什么任务?"
  • "显示今天的提醒"

Command Invocation

# List with default locale (en)
node skills/mac-reminders-agent/cli.js list --scope today

# List with specific locale
node skills/mac-reminders-agent/cli.js list --scope week --locale ko

Scope Options

  • today - Today only
  • week - This week (today ~ +7 days)
  • all - All reminders

Output Format

Returns JSON array:

[
  {
    "title": "Task title",
    "due": "2026-02-05T16:30:00" | null
  }
]

Response Formatting

Use locales.json templates to format responses in user's language:

English:

[Incomplete Reminders]
- 2/2 (Mon) 09:00 [Work] Meeting
- 2/3 (Tue) 14:00 [Personal] Visit bank

[Completed]
- 2/1 (Sun) [Work] Submit report ✅

Korean:

[미완료 미리알림]
- 2/2 (월) 09:00 [업무] 회의
- 2/3 (화) 14:00 [개인] 은행 방문

[완료됨]
- 2/1 (일) [업무] 보고서 제출 ✅

2) Add Reminder

Trigger Examples (by language)

English:

  • "Add a meeting reminder for 9am tomorrow"
  • "Set a reminder to submit report by Friday"

Korean (한국어):

  • "내일 아침 9시에 회의 미리알림 추가해줘"
  • "이번 주 금요일까지 보고서 제출 미리알림 넣어줘"

Japanese (日本語):

  • "明日の朝9時に会議のリマインダーを追加して"

Chinese (中文):

  • "添加明天早上9点的会议提醒"

Command Invocation

# Add with locale
node skills/mac-reminders-agent/cli.js add --title "Meeting" --due "2026-02-05T09:00:00+09:00" --locale ko

Parameters

  • --title (required): Reminder title
  • --due (optional): ISO 8601 format (YYYY-MM-DDTHH:mm:ss+09:00)
  • --note (optional): Additional notes
  • --locale (optional): Response language (en, ko, ja, zh)

Response Examples

English:

  • "Added 'Meeting' reminder for 9am tomorrow."
  • "Added 'Submit report' reminder without a due date."

Korean:

  • "'회의' 미리알림을 추가했어요 (내일 오전 9시)."
  • "'보고서 제출' 미리알림을 추가했어요 (마감일 없음)."

Error Handling

Locale-aware Error Messages

English:

  • "There was a problem accessing the Reminders app."

Korean:

  • "미리알림 앱에 접근하는 데 문제가 생겼어요."

Japanese:

  • "リマインダーアプリへのアクセスに問題が発生しました。"

Fallback Suggestions

When automatic integration fails, offer alternatives in user's language.


Environment Constraints

  • macOS only: Uses AppleScript to control Reminders app
  • Dependency: Requires applescript npm module

Summary

  • Multi-language support via locales.json (en, ko, ja, zh)
  • Core commands: list --scope today|week|all [--locale XX] and add --title ... [--due ...] [--locale XX]
  • Automatically detect user language or use explicit --locale parameter
  • Format responses using locale-specific templates
README.md

Mac Reminders Agent

macOS Reminders app integration skill for OpenClaw/Claude agents.

Features

  • 📋 List reminders (today/week/all)
  • ➕ Add new reminders with due dates
  • 🌍 Multi-language support (en, ko, ja, zh)
  • ⏰ Cron-compatible for scheduled checks
  • ☁️ iCloud Sync: Reminders sync automatically to all devices (iPhone, iPad, Mac) logged into the same Apple ID

iCloud Sync

When you add or modify reminders using this skill on your Mac, they automatically sync to all your Apple devices (iPhone, iPad, Apple Watch, other Macs) logged into the same Apple ID via iCloud.

This means:

  • ✅ Add a reminder via agent → appears on your iPhone instantly
  • ✅ Complete a reminder on iPhone → reflected in agent queries
  • ✅ No manual sync required

Note: Ensure iCloud Reminders is enabled in System Settings → Apple ID → iCloud → Reminders

Requirements

  • macOS only (uses AppleScript)
  • Node.js 18+
  • applescript npm module
  • iCloud Reminders enabled (for cross-device sync)

Installation

1. Install to OpenClaw workspace

# Copy skill to workspace
cp -r mac-reminders-agent ~/clawd/skills/

# Install dependency
cd ~/clawd && npm install applescript

2. Or install via ClawHub (after publishing)

clawhub install mac-reminders-agent

Usage

List Reminders

# Today's reminders (English)
node skills/mac-reminders-agent/cli.js list --scope today

# This week's reminders (Korean)
node skills/mac-reminders-agent/cli.js list --scope week --locale ko

# All reminders (Japanese)
node skills/mac-reminders-agent/cli.js list --scope all --locale ja

Output:

{
  "locale": "ko",
  "labels": {
    "list_header_incomplete": "미완료 미리알림",
    "list_header_completed": "완료됨"
  },
  "items": [
    { "title": "회의", "due": "2026년 2월 5일 09:00:00" },
    { "title": "보고서 제출", "due": null }
  ]
}

Add Reminder

# Basic (English)
node skills/mac-reminders-agent/cli.js add --title "Meeting"

# With due date (Korean)
node skills/mac-reminders-agent/cli.js add \
  --title "회의" \
  --due "2026-02-05T09:00:00+09:00" \
  --locale ko

# With note
node skills/mac-reminders-agent/cli.js add \
  --title "Call John" \
  --due "2026-02-05T15:00:00+09:00" \
  --note "Discuss project timeline"

Output:

{
  "ok": true,
  "title": "회의",
  "due": "2026-02-05T09:00:00+09:00",
  "locale": "ko",
  "message": "'회의' 미리알림을 추가했어요 (2026-02-05T09:00:00+09:00)."
}

Parameters

ParameterRequiredDescription
--scopeNotoday, week, all (default: week)
--titleYes (add)Reminder title
--dueNoISO 8601 format: YYYY-MM-DDTHH:mm:ss+09:00
--noteNoAdditional notes
--localeNoen, ko, ja, zh (default: en)

Customization

Adding New Languages

Edit locales.json to add new languages:

{
  "es": {
    "name": "Español",
    "triggers": {
      "list": ["¿Qué tengo que hacer hoy?"],
      "add": ["Añadir un recordatorio para mañana"]
    },
    "responses": {
      "added": "Recordatorio '{title}' añadido{due_text}.",
      "added_no_due": " sin fecha límite",
      "added_with_due": " para {due}",
      "list_header_incomplete": "Recordatorios pendientes",
      "list_header_completed": "Completados",
      "no_reminders": "No se encontraron recordatorios.",
      "error_access": "Hubo un problema al acceder a la app Recordatorios.",
      "ask_when": "¿Cuándo necesitas este recordatorio?"
    }
  }
}

Changing Default Reminder List

By default, reminders are added to the default list. To change this, edit reminders/apple-bridge.js:

# Find this line:
tell default list

# Change to specific list:
tell list "Work"

Timezone Configuration

Default timezone is +09:00 (KST). To change, edit reminders/apple-bridge.js:

// Find parseISO function, modify the regex:
const m = dueISO.match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):\d{2}\+09:00$/);

// Change +09:00 to your timezone, e.g., +00:00 for UTC

Cron Usage Examples

OpenClaw Cron Integration

Add to your OpenClaw cron configuration (~/.openclaw/openclaw.json):

{
  "cron": {
    "jobs": [
      {
        "name": "morning-reminders",
        "schedule": "0 9 * * *",
        "command": "Check today's reminders and summarize priorities",
        "agent": "main"
      },
      {
        "name": "weekly-review",
        "schedule": "0 18 * * 5",
        "command": "Review this week's completed reminders and plan for next week",
        "agent": "main"
      }
    ]
  }
}

Direct Cron (crontab)

# Edit crontab
crontab -e

# Morning reminder check (9 AM daily)
0 9 * * * cd ~/clawd && node skills/mac-reminders-agent/cli.js list --scope today --locale ko >> /tmp/reminders.log 2>&1

# Weekly summary (Friday 6 PM)
0 18 * * 5 cd ~/clawd && node skills/mac-reminders-agent/cli.js list --scope week --locale ko >> /tmp/weekly-reminders.log 2>&1

Telegram Bot Cron Example

Configure OpenClaw to send reminders via Telegram:

{
  "cron": {
    "jobs": [
      {
        "name": "telegram-morning-brief",
        "schedule": "0 8 * * *",
        "command": "오늘 미리알림 확인해서 텔레그램으로 요약해줘",
        "agent": "main",
        "channel": "telegram"
      }
    ]
  }
}

LaunchAgent (macOS Native)

Create ~/Library/LaunchAgents/com.reminders.daily.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.reminders.daily</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/node</string>
        <string>/Users/YOUR_USERNAME/clawd/skills/mac-reminders-agent/cli.js</string>
        <string>list</string>
        <string>--scope</string>
        <string>today</string>
        <string>--locale</string>
        <string>ko</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>9</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
    <key>StandardOutPath</key>
    <string>/tmp/reminders-daily.log</string>
</dict>
</plist>

Load with:

launchctl load ~/Library/LaunchAgents/com.reminders.daily.plist

Agent Prompts Examples

Morning Brief (Korean)

오늘 미리알림 확인해서 우선순위 정리해줘.
긴급한 것 먼저, 그다음 중요한 것 순서로.

Weekly Planning (English)

Check this week's reminders and create a daily breakdown.
Group by work vs personal, and highlight any overdue items.

Add via Natural Language

내일 오전 10시에 "팀 미팅" 미리알림 추가해줘

Troubleshooting

"applescript module not found"

cd ~/clawd && npm install applescript

"Reminders app access denied"

Grant Terminal/iTerm automation permissions:

  1. System Preferences → Privacy & Security → Automation
  2. Enable "Reminders" for Terminal

Reminders not showing

  • Check if reminders are in the default list
  • Verify date range with --scope all

License

CC BY-NC 4.0 - Free to use and modify, no commercial use.

Author

swancho

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install mac-reminders-agent?

Run openclaw add @swancho/mac-reminders-agent in your terminal. This installs mac-reminders-agent into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/swancho/mac-reminders-agent. Review commits and README documentation before installing.