From obsidian-operator
TRIGGER for /add-events, or when the user wants to add events, meetings, or appointments to Apple Calendar from pasted text or bullet lists. Also creates Apple Reminders for deadlines. NOT for viewing the calendar, daily briefings, meeting prep, or deadline plans.
How this skill is triggered — by the user, by Claude, or both
Slash command
/obsidian-operator:add-eventsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Batch-add events to Apple Calendar ("Operator") and associated deadlines to Apple Reminders, with automatic routing into the Operator execution layer.
Batch-add events to Apple Calendar ("Operator") and associated deadlines to Apple Reminders, with automatic routing into the Operator execution layer.
CLI fallback: If any obsidian CLI command fails, silently use the equivalent file tool (Read, Write, Edit). Do not surface CLI errors to the user.
/add-events [project] — project name optional, inferred from conversation context if possible/add-events Millennium, /add-eventsExtract structured fields for each event:
| Field | Required | Notes |
|---|---|---|
name | yes | Event title |
date | yes | Resolve any format; relative dates against today; assume next occurrence if year omitted |
time_start | no | If omitted, treat as all-day |
time_end | no | Default: time_start + 60min if only start given |
location | no | Physical address or video link |
description | no | Notes, access codes, agenda |
project | no | From argument or inferred |
all_day | auto | true if no time given |
deadlines[] | no | Associated deadlines: "survey due", "RSVP", "registration closes" patterns |
Display parsed events as a table:
| Date | Time | Event | Location | Project |
|---|
Display associated deadlines as a separate table:
| Deadline | Related Event | Due Date |
|---|
Show current-week routing preview: which events (if any) will be added to this week's Blockers.md.
Wait for user confirmation or corrections before proceeding.
Use osascript to create events in the "Operator" calendar. For each event:
osascript -e '
tell application "Calendar"
tell calendar "Operator"
make new event with properties {summary:"EVENT_NAME", start date:date "D Month YYYY HH:MM:SS", end date:date "D Month YYYY HH:MM:SS", description:"DESCRIPTION", location:"LOCATION"}
end tell
end tell'
"D Month YYYY HH:MM:SS" for timed events, use allday event property for all-day' with '"'"' in all text fieldsUse osascript to create reminders in the "Operator" list. For each deadline:
osascript -e '
tell application "Reminders"
tell list "Operator"
make new reminder with properties {name:"DEADLINE_NAME — EVENT_NAME", body:"Related: EVENT_NAME on EVENT_DATE", due date:date "D Month YYYY HH:MM:SS"}
end tell
end tell'
"<deadline name> — <event name>"Path: 02_Projects/<project>/Upcoming Events.md
---
type: events
project: <project>
last-updated: YYYY-MM-DD
---
# Upcoming Events · <Project>
## Events
## Events[ ] entrylast-updated in frontmatter to todayEntry format (matches Blockers convention):
- [ ] **Day Mon DD, H:MM PM** — Event name — 60min
- Location/link details
- Access code, notes
- Survey deadline: Day Mon DD, H:MM PM
For all-day events:
- [ ] **Day Mon DD** — Event name — all day
- Location/link details
02_Projects/General/Upcoming Events.md (create project folder if needed)01_Execution/YYYY-WXX/Blockers.md (with standard frontmatter + empty ## Waiting On and ## Meetings sections if new)## Meetings entries by date + fuzzy title match## Meetings in chronological order, using the same entry format as Step 6 with source attribution [<project>]obsidian append) with file edit fallbackUpcoming Events.md: replace - [ ] with - [x] consumed YYYY-WXX: on that lineOutput a summary:
02_Projects/<project>/Upcoming Events.md/weekly-init"/meeting-prep for upcoming meetings02_Projects/General/Upcoming Events.md (create folder if needed)/weekly-init Step 7d reads Upcoming Events files — no manual intervention needed for future weeksnpx claudepluginhub yuhanwang14/obsidian-operator --plugin obsidian-operatorGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.