📦 macOS Calendar — 苹果日历
v1.2.0管理macOS日历,包括创建、查询和修改日程事件。
4· 6.1k·70 当前·73 累计
安全扫描
OpenClaw
安全
high confidence该技能的代码和指令与其所述目的(macOS日历管理)一致,它使用AppleScript或日历CLI进行交互,请求适当的配置,不请求无关的凭证或意外端点。
评估建议
此技能似乎确实做到了它声称的:macOS日历管理脚本,用于日程操作。安装或运行之前:1) 确认您对授予日历访问权限感到满意——该工具可以读取和修改您的日历。2) 仅在您信任的环境中运行,避免修改敏感日程。3) 技能不请求凭证,但注意不要向脚本传递敏感信息,除非您信任整个工具链。4) 如果您想要更高的保证,请在运行前在本地审查包含的脚本。...详细分析 ▾
✓ 用途与能力
Name/description match the implementation. Required binaries (osascript, python3) are appropriate for AppleScript-driven Calendar automation and JSON parsing. No unrelated credentials, binaries, or config paths are requested.
ℹ 指令范围
Runtime instructions and the script stay within the stated purpose (listing calendars, creating events via AppleScript). There are no network endpoints or unexpected data exfiltration. One privacy note: the script writes an append-only log (logs/calendar.log) containing timestamp, command, calendar, and summary — this can store sensitive event titles/descriptions locally and should be considered before installing.
✓ 安装机制
No install spec (instruction-only with an included shell script). This is low-risk because nothing is fetched from remote URLs or installed system-wide by the skill itself.
✓ 凭证需求
The skill requests no credentials or special environment variables. It uses SKILL_DIR (if present) to place logs; otherwise logs are written relative to the script location. No unrelated secrets or config paths are accessed.
✓ 持久化与权限
always:false and no system-wide configuration changes. The script will open Calendar.app if not running and writes a local log; it does not modify other skills or request persistent elevated privileges.
安全有层次,运行前请审查代码。
运行时依赖
🖥️ OSmacOS
版本
latestv1.2.02026/2/18
初始版本,支持macOS日历管理
● 无害
安装命令
点击复制官方npx clawhub@latest install macos-calendar
镜像加速npx clawhub@latest install macos-calendar --registry https://cn.longxiaskill.com
技能文档
Manage Apple Calendar events via $SKILL_DIR/scripts/calendar.sh. All date handling uses relative math (current date + N * days) to avoid locale issues (FR/EN/DE date formats).
Quick start
List calendars
Always list calendars first to find the correct calendar name:
"$SKILL_DIR/scripts/calendar.sh" list-calendars
Create an event
echo '' | "$SKILL_DIR/scripts/calendar.sh" create-event
JSON fields:
| Field | Required | Default | Description |
|---|---|---|---|
summary | yes | - | Event title |
calendar | no | first calendar | Calendar name (from list-calendars) |
description | no | "" | Event notes |
offset_days | no | 0 | Days from today (0=today, 1=tomorrow, 7=next week) |
iso_date | no | - | Absolute date YYYY-MM-DD (overrides offset_days) |
hour | no | 9 | Start hour (0-23) |
minute | no | 0 | Start minute (0-59) |
duration_minutes | no | 30 | Duration |
alarm_minutes | no | 0 | Alert N minutes before (0=no alarm) |
all_day | no | false | All-day event |
recurrence | no | - | iCal RRULE string. See references/recurrence.md |
Interpreting natural language
Map user requests to JSON fields:
| User says | JSON |
|---|---|
| "tomorrow at 2pm" | offset_days: 1, hour: 14 |
| "in 3 days" | offset_days: 3 |
| "next Monday at 10am" | Calculate offset_days from today to next Monday, hour: 10 |
| "February 25 at 3:30pm" | iso_date: "2026-02-25", hour: 15, minute: 30 |
| "every weekday at 9am" | hour: 9, recurrence: "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR" |
| "remind me 1 hour before" | alarm_minutes: 60 |
| "all day event on March 1" | iso_date: "2026-03-01", all_day: true |
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 call the dentist in 2 days"
"$SKILL_DIR/scripts/calendar.sh" list-calendars
Then:
echo '{"calendar":"Personnel","summary":"Call dentist","offset_days":2,"hour":9,"duration_minutes":15,"alarm_minutes":30}' | "$SKILL_DIR/scripts/calendar.sh" create-event
"Schedule a team sync every Tuesday at 2pm with a 10-min reminder"
echo '{"calendar":"Work","summary":"Team sync","hour":14,"duration_minutes":60,"recurrence":"FREQ=WEEKLY;BYDAY=TU","alarm_minutes":10}' | "$SKILL_DIR/scripts/calendar.sh" create-event
"Block July 15 as a vacation day"
echo '{"calendar":"Personnel","summary":"Vacances","iso_date":"2026-07-15","all_day":true}' | "$SKILL_DIR/scripts/calendar.sh" create-event
"I have a doctor appointment next Thursday at 3:30pm, remind me 1 hour before"
# First compute offset_days to next Thursday (4=Thursday)
target=4; today=$(date +%u); offset=$(( (target - today + 7) % 7 )); [ "$offset" -eq 0 ] && offset=7
Then:
echo "{\"calendar\":\"Personnel\",\"summary\":\"Doctor appointment\",\"offset_days\":$offset,\"hour\":15,\"minute\":30,\"duration_minutes\":60,\"alarm_minutes\":60}" | "$SKILL_DIR/scripts/calendar.sh" create-event
"Set up a daily standup at 9am on weekdays for the next 4 weeks"
echo '{"calendar":"Work","summary":"Daily standup","hour":9,"duration_minutes":15,"recurrence":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;COUNT=20"}' | "$SKILL_DIR/scripts/calendar.sh" create-event
"Add a biweekly 1-on-1 with my manager on Fridays at 11am"
echo '{"calendar":"Work","summary":"1-on-1 Manager","hour":11,"duration_minutes":30,"recurrence":"FREQ=WEEKLY;INTERVAL=2;BYDAY=FR","alarm_minutes":5}' | "$SKILL_DIR/scripts/calendar.sh" create-event
Critical rules
- Always list calendars first if the user hasn't specified one — calendars marked
[read-only]cannot be used for event creation - Never use hardcoded date strings in AppleScript — always use
offset_daysoriso_date - Confirm the calendar name with the user if multiple personal calendars exist
- Never target a
[read-only]calendar — the script will reject it with an error - For recurring events, consult references/recurrence.md for RRULE syntax
- 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/calendar.logwith timestamp, command, calendar, and summary