Skip to main content Home Creators javimosch open-claw-skills macos-calendar
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.
Jump to install Skills Marketplace Discover and explore AI skills built by the community.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Copy promptShow prompt details A direct command skips the review prompt. Inspect the source before running it.
npx skills add https://github.com/javimosch/open-claw-skills --skill macos-calendarThe command stays on one line. Scroll horizontally to inspect it before copying.
Prefer a local copy? Download the files currently available to SkillsMP.
Download Zip Downloading... More from this repository
Related occupations SOC
Based on SOC occupation classification
name macos-calendar description 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. license MIT compatibility Requires macOS with Calendar.app. Uses osascript (AppleScript) and python3 for JSON parsing. metadata {"author":"lucaperret","version":"1.2.0","openclaw":{"os":"macos","emoji":"📅","homepage":"https://github.com/lucaperret/agent-skills","requires":{"bins":"[Truncated]"}}}
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
Field Required Default Description summaryyes - Event title calendarno first calendar Calendar name (from list-calendars) descriptionno "" Event notes offset_daysno 0 Days from today (0=today, 1=tomorrow, 7=next week) iso_dateno - Absolute date YYYY-MM-DD (overrides offset_days) hourno 9 Start hour (0-23) minuteno 0 Start minute (0-59) duration_minutesno 30 Duration alarm_minutesno 0 Alert N minutes before (0=no alarm) all_dayno false All-day event recurrenceno - 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:
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
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"
target=4; today=$(date +%u); offset=$(( (target - today + 7 ) % 7 )); [ "$offset " -eq 0 ] && offset=7
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