From mactools
查询、创建、修改、删除 macOS 日历事件。当用户需要查看日程、创建会议、搜索日历事件时使用。Use when the user needs to view schedules, create meetings, or search calendar events. Keywords: 日历, Calendar, 日程, 会议, 事件, 安排.
npx claudepluginhub n0rvyn/indie-toolkit --plugin mactoolsThis skill is limited to using the following tools:
通过 EventKit 框架连接 macOS Calendar,执行日历事件的查看、搜索、创建、删除操作。使用编译的 Swift 二进制,首次运行自动编译。
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Designs, implements, and audits WCAG 2.2 AA accessible UIs for Web (ARIA/HTML5), iOS (SwiftUI traits), and Android (Compose semantics). Audits code for compliance gaps.
通过 EventKit 框架连接 macOS Calendar,执行日历事件的查看、搜索、创建、删除操作。使用编译的 Swift 二进制,首次运行自动编译。
BASE="${CLAUDE_PLUGIN_ROOT:-${CODEX_HOME:-$HOME/.codex}}"
SKILLS_ROOT="$BASE/skills"
[ -d "$SKILLS_ROOT/calendar/scripts" ] || SKILLS_ROOT="$BASE/indie-toolkit/mactools/skills"
${SKILLS_ROOT}/calendar/scripts/calendar.sh
${SKILLS_ROOT}/calendar/scripts/calendar.sh today
${SKILLS_ROOT}/calendar/scripts/calendar.sh today -n 10
# Next 7 days (default)
${SKILLS_ROOT}/calendar/scripts/calendar.sh upcoming
# Next 14 days
${SKILLS_ROOT}/calendar/scripts/calendar.sh upcoming 14
# Next 3 days, max 5 results
${SKILLS_ROOT}/calendar/scripts/calendar.sh upcoming 3 -n 5
${SKILLS_ROOT}/calendar/scripts/calendar.sh search "Team Meeting"
${SKILLS_ROOT}/calendar/scripts/calendar.sh search "Standup" -n 5
Search scope: event title, location, and notes within 1 year back to 1 year ahead. Case-insensitive.
${SKILLS_ROOT}/calendar/scripts/calendar.sh calendars
# Timed event
${SKILLS_ROOT}/calendar/scripts/calendar.sh create "Team Meeting" "2026-02-10 09:00" "2026-02-10 10:00"
# Timed event with options
${SKILLS_ROOT}/calendar/scripts/calendar.sh create "Lunch" "2026-02-10 12:00" "2026-02-10 13:00" --calendar "Personal" --location "Restaurant" --notes "Bring gift"
# All-day event
${SKILLS_ROOT}/calendar/scripts/calendar.sh create "Vacation" "2026-02-15" "2026-02-16"
# All-day event on specific calendar
${SKILLS_ROOT}/calendar/scripts/calendar.sh create "Conference" "2026-03-01" "2026-03-03" --calendar "Work"
${SKILLS_ROOT}/calendar/scripts/calendar.sh delete "Team Meeting" "2026-02-10"
| Parameter | Description | Example |
|---|---|---|
-n <count> | Max results (default: 20) | -n 10 |
--calendar "Name" | Target calendar (create only) | --calendar "Work" |
--location "Place" | Event location (create only) | --location "Room A" |
--notes "Text" | Event notes (create only) | --notes "Bring laptop" |
| Format | Usage | Example |
|---|---|---|
YYYY-MM-DD HH:MM | Timed event start/end | "2026-02-10 09:00" |
YYYY-MM-DD | All-day event start/end | "2026-02-10" |
When both start and end use YYYY-MM-DD format (no time), the event is created as all-day.
Events are displayed as:
1. Event Title
Calendar: Work | Date: 2026-02-10 09:00 - 2026-02-10 10:00 | Location: Room A
2. Day Off
Calendar: Personal | Date: 2026-02-15 (all-day)
# What's on today?
${SKILLS_ROOT}/calendar/scripts/calendar.sh today
# What's coming this week?
${SKILLS_ROOT}/calendar/scripts/calendar.sh upcoming 7
# First check available calendars
${SKILLS_ROOT}/calendar/scripts/calendar.sh calendars
# Create the event
${SKILLS_ROOT}/calendar/scripts/calendar.sh create "Project Review" "2026-02-12 14:00" "2026-02-12 15:00" --calendar "Work" --location "Conference Room B" --notes "Q1 progress review"
# Search for the event
${SKILLS_ROOT}/calendar/scripts/calendar.sh search "Project Review"
# Delete it
${SKILLS_ROOT}/calendar/scripts/calendar.sh delete "Project Review" "2026-02-12"
| Issue | Solution |
|---|---|
Calendar access not granted | Enable in System Settings > Privacy & Security > Calendars |
Calendar "X" not found | Check exact calendar name with calendars command |
No matching event found | Event title must match exactly; verify with search first |
Invalid date format | Use YYYY-MM-DD HH:MM or YYYY-MM-DD |