macos-calendarCreate, 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 d...
Install via ClawdBot CLI:
clawdbot install lucaperret/macos-calendarManage 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).
Always list calendars first to find the correct calendar name:
"$SKILL_DIR/scripts/calendar.sh" list-calendars
echo '<json>' | "$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 |
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 ))
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
[read-only] cannot be used for event creationoffset_days or iso_date[read-only] calendar — the script will reject it with an errorlogs/calendar.log with timestamp, command, calendar, and summaryGenerated Mar 1, 2026
Individuals use this skill to schedule personal appointments, set reminders for daily tasks, and manage all-day events like vacations. It helps automate calendar entries from natural language requests, reducing manual input and ensuring timely alerts for important activities.
Remote teams utilize this skill to schedule recurring meetings such as daily standups, weekly syncs, and biweekly one-on-ones. It streamlines event creation with reminders, improving meeting attendance and time management across distributed teams.
Healthcare professionals or patients use this skill to book doctor appointments, set reminders for medication schedules, and block out medical leave days. It ensures accurate date handling and alerts, reducing missed appointments and enhancing patient care coordination.
Students and educators apply this skill to schedule classes, study sessions, and deadlines for assignments or exams. It supports recurring events for weekly courses and all-day events for holidays, aiding in academic organization and time management.
Small business owners use this skill to plan client meetings, schedule product launches, and set up recurring team events. It helps manage calendars efficiently with alarms and recurrence rules, supporting business operations and customer engagement.
Offer a basic version of this skill for free to individual users, with premium features like advanced recurrence options, integration with other apps, or team collaboration tools available via subscription. Revenue is generated through monthly or annual subscription fees from power users and businesses.
License this skill as part of a larger SaaS platform for businesses, such as project management or CRM systems. It can be bundled with other productivity tools, generating revenue through enterprise licensing deals and custom integration services for corporate clients.
Monetize by partnering with calendar-related services or apps, earning commissions on referrals. Additionally, aggregate anonymized usage data to provide insights on productivity trends, selling reports to market research firms or using them to improve the skill.
💬 Integration Tip
Always run the list-calendars command first to identify available calendars and avoid read-only ones, ensuring smooth event creation without errors.
Interact with Google Calendar via the Google Calendar API – list upcoming events, create new events, update or delete them. Use this skill when you need programmatic access to your calendar from OpenClaw.
Read, search, and manage Outlook emails and calendar via Microsoft Graph API. Use when the user asks about emails, inbox, Outlook, Microsoft mail, calendar events, or scheduling.
Google Calendar via gcalcli: today-only agenda by default, bounded meaning-first lookup via agenda scans, and fast create/delete with verification--optimized for low tool calls and minimal output.
This skill should be used when interacting with Apple Calendar on macOS. Use it for listing calendars, viewing events, creating/updating/deleting calendar events, and checking availability/free-busy times. Triggers on requests like "check my calendar", "schedule a meeting", "what's on my schedule", "am I free tomorrow", or any calendar-related operations.
Access and manage Google Calendar events with gogcli for cross-calendar agendas, keyword search, and filtered outputs avoiding unwanted calendars like holidays.
Daily morning rollup of important emails and calendar events at 8am with AI-generated summaries