Claude-skill-registry invites
View and manage calendar invitations - check pending invites, accept/decline meeting requests, create events
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/invites" ~/.claude/skills/majiayu000-claude-skill-registry-invites && rm -rf "$T"
manifest:
skills/data/invites/SKILL.mdsource content
Calendar Invitations & Events
Check pending calendar invitations, respond to meeting requests, and create new events.
Quick Status
~/.claude-mind/system/bin/calendar-invites list --text
Commands
List Pending Invitations
# Human-readable format ~/.claude-mind/system/bin/calendar-invites list --text # JSON format (default) ~/.claude-mind/system/bin/calendar-invites list --json # Custom date range ~/.claude-mind/system/bin/calendar-invites list --days 7 # Specific calendar ~/.claude-mind/system/bin/calendar-invites list --calendar "Work"
Show Event Details
~/.claude-mind/system/bin/calendar-invites show "EVENT_ID"
Respond to Invitations
# Accept an invitation (via AppleScript) ~/.claude-mind/system/bin/calendar-invites accept "EVENT_ID" # Decline an invitation ~/.claude-mind/system/bin/calendar-invites decline "EVENT_ID" # Mark as tentative/maybe ~/.claude-mind/system/bin/calendar-invites maybe "EVENT_ID" # Accept all pending invitations (via AppleScript) ~/.claude-mind/system/bin/calendar-invites accept-all # Accept all via UI automation (more reliable) ~/.claude-mind/system/bin/calendar-invites accept-all-ui
Sync/Refresh Calendars
# Force calendar sync with server ~/.claude-mind/system/bin/calendar-invites sync
Create Events
# Basic event (1 hour duration) ~/.claude-mind/system/bin/calendar-invites create --title "Team Meeting" --start "2026-01-20T14:00" # Event with duration ~/.claude-mind/system/bin/calendar-invites create --title "Lunch" --start "2026-01-20 12:00" --duration 90 # Event with specific end time ~/.claude-mind/system/bin/calendar-invites create --title "Workshop" --start "2026-01-20 09:00" --end "2026-01-20 12:00" # All-day event ~/.claude-mind/system/bin/calendar-invites create --title "Vacation" --start "2026-01-25" --all-day # Multi-day all-day event ~/.claude-mind/system/bin/calendar-invites create --title "Conference" --start "2026-01-25" --end "2026-01-27" --all-day # Event with location and notes ~/.claude-mind/system/bin/calendar-invites create --title "Client Call" --start "2026-01-20 15:00" \ --location "Zoom" --notes "Discuss Q1 planning" --calendar "Work"
Create Options:
- Event title (required)--title
- Start date/time (required). Formats: ISO8601, "2026-01-20 14:00", "2026-01-20"--start
- End date/time (optional)--end
- Duration in minutes (default: 60)--duration
- Calendar name (default: system default)--calendar
- Event location--location
- Event notes/description--notes
- Event URL--url
- Create an all-day event--all-day
List Available Calendars
~/.claude-mind/system/bin/calendar-invites calendars
Open in Calendar.app
~/.claude-mind/system/bin/calendar-invites open "EVENT_ID"
JSON Output Format
The
list --json command returns:
{ "invitations": [ { "event_id": "ABC123-DEF456", "title": "Weekly Sync", "start": "2026-01-20T09:00:00-05:00", "end": "2026-01-20T10:00:00-05:00", "calendar": "Work", "organizer": { "name": "Jane Smith", "email": "jane@example.com" }, "my_status": "pending", "location": "Zoom", "attendees": [...] } ], "count": 1 }
Workflow
- Check invitations: Run
to see what's pendinglist --text - Review if needed: Use
for full details on specific eventsshow - Respond: Use
,accept
, ordeclinemaybe - Bulk accept: Use
for routine meetingsaccept-all
Limitations
- EventKit is read-only for responses: Apple's EventKit API does not allow setting
participantStatus - AppleScript limitations: Direct property setting sometimes doesn't trigger server-side updates
- UI automation is most reliable: The
command clicks actual buttons in Calendar.appaccept-all-ui - Sync delays: Calendar providers (Exchange, Google, iCloud) may have sync delays
- Recurring events: Response may only affect the next occurrence
Response Methods (Fallback Chain)
- CalDAV (primary) - Proper iTIP protocol, notifies organizers, server-side
- AppleScript (fallback) - Local property change, may not sync
- UI automation (
) - Clicks buttons in Calendar.appaccept-all-ui - Manual - Calendar.app opens for you to respond
Direct CalDAV Commands
# List pending invitations via CalDAV inbox ~/.claude-mind/system/bin/calendar-caldav inbox # Accept via CalDAV (proper protocol) ~/.claude-mind/system/bin/calendar-caldav accept "EVENT_UID" # Accept all pending via CalDAV ~/.claude-mind/system/bin/calendar-caldav accept-all # Decline via CalDAV ~/.claude-mind/system/bin/calendar-caldav decline "EVENT_UID"
Troubleshooting
If authorization fails:
- Check System Settings > Privacy & Security > Calendars
- Ensure Terminal has calendar access
If invitations don't appear:
- Run
to force refreshcalendar-invites sync - Check that calendar is syncing in Calendar.app preferences
If responses don't work:
- Check CalDAV credentials:
~/.claude-mind/system/bin/calendar-caldav test - Try
instead ofaccept-all-ui
(uses UI automation)accept-all - The script falls back to opening Calendar.app
CalDAV setup:
- Credentials stored in
~/.claude-mind/config/caldav-credentials.json - Requires app-specific password from appleid.apple.com