name: macos-calendar-assistant description: Manage macOS Calendar with OpenClaw in IM-first workflows (Telegram/Discord/Feishu/iMessage/Slack), including screenshot-to-schedule extraction, idempotent create/update, move/extend/reschedule, reminders, conflict checks, daily review sync, and duplicate cleanup. Use when users ask to add/edit/move/postpone events, parse schedule screenshots/chat messages, adjust weekly plans into daily execution, or keep calendar and review notes in sync.
Use bundled scripts for reliable Calendar.app operations.
scripts/list_events.swift <start_iso> <end_iso>scripts/upsert_event.py (create/update/skip)scripts/set_alarm.py --uid <event_uid> --alarm-minutes <n>scripts/calendar_clean.py --start <iso> --end <iso>TrainingWorkProductLifeNote: Calendar names vary by user setup. Map the intent to the closest local calendar name before writing.
7w4.net提供免费和付费技能下载。
swift scripts/list_calendars.swift
swift scripts/list_events.swift "2026-03-06T00:00:00+08:00" "2026-03-06T23:59:59+08:00"
Output includes uid for follow-up alarm/edit operations.
python3 scripts/upsert_event.py \
--title "Team sync" \
--start "2026-03-06T19:00:00+08:00" \
--end "2026-03-06T20:00:00+08:00" \
--calendar "Work" \
--notes "Agenda" \
--location "Online" \
--alarm-minutes 15
Result is one of: CREATED, UPDATED, SKIPPED.
Use --dry-run for preview.
python3 scripts/add_event.py --title "..." --start "..." --end "..."
python3 scripts/set_alarm.py --uid "EVENT_UID" --alarm-minutes 15
swift scripts/move_event.swift "Team sync" "Work" "2026-03-07T10:00:00+08:00" 60 --search-days 7
# optional precise match:
# --original-start "2026-03-06T10:00:00+08:00"
Prefer upsert_event.py for most rescheduling flows; use move_event.swift for direct title-based move when needed.
python3 scripts/calendar_clean.py --start "2026-03-01T00:00:00+08:00" --end "2026-03-08T23:59:59+08:00"
python3 scripts/calendar_clean.py --start "..." --end "..." --apply --confirm yes --snapshot-out ./delete-plan.json
python3 scripts/within_2h.py
python3 scripts/env_check.py
python3 scripts/regression_test.py
scripts/smoke_test.sh
scripts/install.sh # run env check + install cron from config.json
scripts/uninstall.sh # remove cron
Treat counterpart bubbles as constraints (availability/travel window), not direct auto-create tasks.
Conflict policy
If not explicit, warn and ask for a choice before overwriting.
Time-window intent parsing
Convert to a formal event only after user confirmation.
Reschedule priority
Do not auto-move P0 items unless user explicitly requests.
Confirmation prompt template
config.json.timezone (fallback Asia/Shanghai) when user does not specify--apply only after reviewing dry-run output这个 Skill 质量不错,做得很实用。它能智能地在日历里创建或更新事件,不会重复添加让人头疼的重复条目,还有专门的工具来清理重复的日程。文档写得很清楚,有截图有例子,用起来应该不难。主要小问题是配置文件需要自己复制一份改名才能用,另外如果遇到日历权限问题提示可能不够友好。总体来说是个靠谱的日历管理助手,适合需要频繁通过聊天工具管理日程的用户。