Calendar integration
Use the bundled wrapper to access Apple Calendar locally or through the configured SSH route. The wrapper supports iCloud, Exchange/Outlook, Google, and other calendars visible in Calendar.app.
Required command path
Always execute:
bash .github/skills/calendar/scripts/calendar-wrapper.sh <command> [options]
Do not call calendar-cli.sh directly. The wrapper reads .env and routes local or remote execution.
Common commands
# Compact schedule output
bash .github/skills/calendar/scripts/calendar-wrapper.sh today --brief
bash .github/skills/calendar/scripts/calendar-wrapper.sh week --brief
bash .github/skills/calendar/scripts/calendar-wrapper.sh next-week --brief
bash .github/skills/calendar/scripts/calendar-wrapper.sh list --from YYYY-MM-DD --to YYYY-MM-DD --brief
# Available calendars
bash .github/skills/calendar/scripts/calendar-wrapper.sh calendars
# Availability
bash .github/skills/calendar/scripts/calendar-wrapper.sh free --date YYYY-MM-DD --work-start HH:MM --work-end HH:MM
# Add an approved block
bash .github/skills/calendar/scripts/calendar-wrapper.sh add \
--title "Focus: [task]" --date YYYY-MM-DD --start HH:MM --end HH:MM
Prefer --brief for reads to avoid loading notes, attendees, and URLs.
Availability workflow
- Read
~/.researchAssistant/researcher_telos.mdfor work hours and productive-time preferences. - If work hours are missing or incomplete, ask the user and offer to update the profile. Never silently use the CLI defaults.
- Query the calendar for the relevant date range.
- Run
freewith explicit--work-startand--work-endvalues. - Match proposed blocks to task type, duration, priority, dependencies, and the user's productive hours.
- Leave sensible transition buffers around meetings when feasible; do not enforce a universal buffer or block length.
Planning integration
For plan-week:
- Run
week --briefor a custom range. - Reconcile candidate work from
tasks.md, open GitHub issues, active decisions, and project aims. - Query free time only for days that need allocation.
- Propose specific blocks, but do not add them yet.
- After approval, add each block using a title linked to the tracked work, for example
Focus: GH-42 - Validate donor split.
For assistant workflow reminders, use concise event titles:
Review: /wrap-upReview: /weekly-reviewReview: /monthly-reviewReview: /quarterly-reviewPlanning: /plan-week
These events remind the user to invoke the skill manually; they do not execute skills automatically.
Calendar events constrain plans but are not task records. Preparation and follow-up work belongs in tasks.md or GitHub. Record only minimal calendar details in repository logs.
Write safety
- Reading schedules and availability does not require confirmation.
- Always show the exact title, date, start/end time, and target calendar before adding an event.
- Add, move, invite, cancel, or edit events only after explicit approval.
- Use 24-hour times and ISO dates in commands.
- Preserve time zones and distinguish tentative events.
Configuration and failures
First-time setup:
python3 .github/skills/calendar/scripts/init_config.py
The skill requires macOS Calendar.app and icalBuddy. Calendar filters, write calendar, and local/remote mode are configured in .env. If a command fails, report the actionable error rather than inferring an empty schedule.
For setup, remote access, troubleshooting, output examples, and the full command reference, read usage-guide.md.