macos-calendar

Create, list, and manage macOS Calendar events via AppleScript. Use when the user asks to add a reminder, schedule an event, create a calendar entry, set a deadline, or anything involving Apple Calendar on macOS. Triggers on requests like "remind me in 3 days", "add to my calendar", "schedule a meeting next Monday at 2pm", "create a recurring weekly event". macOS only.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "macos-calendar" with this command: npx skills add lucaperret/agent-skills/lucaperret-agent-skills-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 '<json>' | "$SKILL_DIR/scripts/calendar.sh" create-event

JSON fields:

FieldRequiredDefaultDescription
summaryyes-Event title
calendarnofirst calendarCalendar name (from list-calendars)
descriptionno""Event notes
offset_daysno0Days from today (0=today, 1=tomorrow, 7=next week)
iso_dateno-Absolute date YYYY-MM-DD (overrides offset_days)
hourno9Start hour (0-23)
minuteno0Start minute (0-59)
duration_minutesno30Duration
alarm_minutesno0Alert N minutes before (0=no alarm)
all_daynofalseAll-day event
recurrenceno-iCal RRULE string. See references/recurrence.md

Interpreting natural language

Map user requests to JSON fields:

User saysJSON
"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

  1. Always list calendars first if the user hasn't specified one — calendars marked [read-only] cannot be used for event creation
  2. Never use hardcoded date strings in AppleScript — always use offset_days or iso_date
  3. Confirm the calendar name with the user if multiple personal calendars exist
  4. Never target a [read-only] calendar — the script will reject it with an error
  5. For recurring events, consult references/recurrence.md for RRULE syntax
  6. Pass JSON via stdin — never as a CLI argument (avoids leaking data in process list)
  7. All fields are validated by the script (type coercion, range checks, format validation) — invalid input is rejected with an error message
  8. All actions are logged to logs/calendar.log with timestamp, command, calendar, and summary

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

macos-reminders

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

macos-notes

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

vercel-composition-patterns

React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.

Repository Source
85.9K23Kvercel
Automation

vercel-react-native-skills

React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.

Repository Source
60.3K23Kvercel