macOS Calendar Assistant

👤 bryant24hao 📦 v1.0.0 ⭐ 4.5 ⬇️ 1.3K 下載
📄 辦公效率 免費

📖 技能介紹

macos-calendar-assistant

Use bundled scripts for reliable Calendar.app operations.

Workflow

  1. Extract title, start/end, timezone, calendar, location, notes, alarm.
  2. Check conflicts before writing:
    • scripts/list_events.swift <start_iso> <end_iso>
  3. Prefer idempotent writes:
    • scripts/upsert_event.py (create/update/skip)
  4. Apply alarm if requested:
    • scripts/set_alarm.py --uid <event_uid> --alarm-minutes <n>
  5. For hygiene, run duplicate scan:
    • scripts/calendar_clean.py --start <iso> --end <iso>

Calendar routing defaults

  • Workout / Run / Training → Training
  • Work / Meeting / Client → Work
  • Product / Development / Building → Product
  • Personal / Social / Travel → Life
  • If unspecified: prefer writable iCloud/CalDAV calendars over local calendars.

Note: Calendar names vary by user setup. Map the intent to the closest local calendar name before writing.

Commands

List calendars

swift scripts/list_calendars.swift

List events in range

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.

Idempotent create/update (recommended)

小蔥技能7w4.net持續更新中。

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.

Legacy direct add (always creates)

python3 scripts/add_event.py --title "..." --start "..." --end "..."

Set alarm by UID

python3 scripts/set_alarm.py --uid "EVENT_UID" --alarm-minutes 15

Move event (legacy utility)

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.

Duplicate scan / cleanup

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

Upcoming events (within 2 hours)

python3 scripts/within_2h.py

Environment + tests

python3 scripts/env_check.py
python3 scripts/regression_test.py
scripts/smoke_test.sh

Daily auto-check notifier

scripts/install.sh     # run env check + install cron from config.json
scripts/uninstall.sh   # remove cron

Extraction & scheduling heuristics (from real usage)

  1. Speaker ownership from chat screenshots

    • Treat the user's message bubble as primary intent.
    • Treat counterpart bubbles as constraints (availability/travel window), not direct auto-create tasks.
  2. Conflict policy

    • If user explicitly says "override" (for example, "replace this slot"), allow replacing an existing slot and reschedule the displaced event.
    • If not explicit, warn and ask for a choice before overwriting.
  3. Time-window intent parsing

    • Phrases like "4–6 PM for the other person" should first be interpreted as an availability window.
    • Convert to a formal event only after user confirmation.
  4. Reschedule priority

    • Prefer moving flexible events (workouts/optional blocks) before strategic P0 work blocks.
    • Do not auto-move P0 items unless user explicitly requests.
  5. Confirmation prompt template

    • Use: "I identified X as your intent and Y as counterpart constraints. I will apply Z. Confirm?"
    • Keep it short; avoid over-confirming when intent is explicit.

Constraints

  • macOS only (EventKit + Calendar permission required)
  • Default timezone comes from config.json.timezone (fallback Asia/Shanghai) when user does not specify
  • Use --apply only after reviewing dry-run output

🤖 AI 評測

這個 Skill 質量不錯,做得很實用。它能智慧地在日曆裡建立或更新事件,不會重複新增讓人頭疼的重複條目,還有專門的工具來清理重複的日程。文件寫得很清楚,有截圖有例子,用起來應該不難。主要小問題是配置檔案需要自己複製一份改名才能用,另外如果遇到日曆許可權問題提示可能不夠友好。總體來說是個靠譜的日曆管理助手,適合需要頻繁通過聊天工具管理日程的使用者。

📊 多維度評分

適應性4.2
規範性4.2
有效性4.8
可靠性4.2
可信度4.9

📁 包含檔案 (20 個)

📄 README.md 10.5 KB
📄 SKILL.md 4.4 KB
📄 _meta.json 143 B
📄 config.example.json 317 B
📄 scripts/add_event.py 3.7 KB
📄 scripts/calendar_clean.py 6.6 KB
📄 scripts/calendar_clean_notify.sh 2.8 KB
📄 scripts/config_utils.py 1.4 KB
📄 scripts/env_check.py 1.7 KB
📄 scripts/install.sh 1.2 KB
📄 scripts/list_calendars.py 493 B
📄 scripts/list_calendars.swift 2.1 KB
📄 scripts/list_events.swift 2.3 KB
📄 scripts/move_event.swift 3.3 KB
📄 scripts/regression_test.py 4.9 KB
📄 scripts/set_alarm.py 1.4 KB
📄 scripts/smoke_test.sh 2.3 KB
📄 scripts/uninstall.sh 260 B
📄 scripts/upsert_event.py 5.5 KB
📄 scripts/within_2h.py 1.2 KB