macos-calendar

安装量: 153
排名: #5634

安装

npx skills add https://github.com/lucaperret/agent-skills --skill macos-calendar

macOS Calendar 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 For "next Monday", "next Friday" etc: compute the day offset using the current date. Use 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_days or iso_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.log with timestamp, command, calendar, and summary

返回排行榜