# Send macOS Calendar to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "macos-calendar",
    "name": "macOS Calendar",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/lucaperret/macos-calendar",
    "canonicalUrl": "https://clawhub.ai/lucaperret/macos-calendar",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/macos-calendar",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=macos-calendar",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "references/recurrence.md",
      "scripts/calendar.sh"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "macos-calendar",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T21:35:20.802Z",
      "expiresAt": "2026-05-08T21:35:20.802Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=macos-calendar",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=macos-calendar",
        "contentDisposition": "attachment; filename=\"macos-calendar-1.2.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "macos-calendar"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/macos-calendar"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/macos-calendar",
    "downloadUrl": "https://openagent3.xyz/downloads/macos-calendar",
    "agentUrl": "https://openagent3.xyz/skills/macos-calendar/agent",
    "manifestUrl": "https://openagent3.xyz/skills/macos-calendar/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/macos-calendar/agent.md"
  }
}
```
## Documentation

### 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).

### 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:

FieldRequiredDefaultDescriptionsummaryyes-Event titlecalendarnofirst calendarCalendar name (from list-calendars)descriptionno""Event notesoffset_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_minutesno30Durationalarm_minutesno0Alert N minutes before (0=no alarm)all_daynofalseAll-day eventrecurrenceno-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

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
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: lucaperret
- Version: 1.2.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-01T21:35:20.802Z
- Expires at: 2026-05-08T21:35:20.802Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/macos-calendar)
- [Send to Agent page](https://openagent3.xyz/skills/macos-calendar/agent)
- [JSON manifest](https://openagent3.xyz/skills/macos-calendar/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/macos-calendar/agent.md)
- [Download page](https://openagent3.xyz/downloads/macos-calendar)