| 1 | --- |
| 2 | name: google-calendar |
| 3 | description: List and manage Google Calendar events via the Calendar API. Use when: calendar, schedule, meeting, event, availability, or what's on today/this week. |
| 4 | invocation: model+user |
| 5 | --- |
| 6 | |
| 7 | # Google Calendar |
| 8 | |
| 9 | ## When to use |
| 10 | Reading schedules, checking availability, creating or updating events. |
| 11 | |
| 12 | ## Setup |
| 13 | Shares Google auth with the `gmail` skill. Fail loud when it is missing: |
| 14 | |
| 15 | ``` |
| 16 | gcloud auth application-default login --scopes=openid,https://www.googleapis.com/auth/calendar,https://www.googleapis.com/auth/gmail.modify |
| 17 | TOKEN=$(gcloud auth application-default print-access-token) |
| 18 | ``` |
| 19 | |
| 20 | The Calendar API must be enabled on the user's Google Cloud project. |
| 21 | |
| 22 | ## Workflow |
| 23 | 1. Read: `GET calendar/v3/calendars/primary/events?timeMin=...&timeMax=...&singleEvents=true&orderBy=startTime`. |
| 24 | 2. Always state the timezone you queried in; convert to the user's local zone. |
| 25 | 3. Creates/updates/deletes need explicit user approval showing title, time, |
| 26 | attendees, and location first. |
| 27 | 4. For availability questions, report free/busy windows, not full event bodies. |
| 28 | |
| 29 | ## Non-goals |
| 30 | - Do not create, move, or delete events on your own initiative. |
| 31 | - Do not invite or remove attendees unless asked. |
| 32 | - Do not guess timezones — confirm when ambiguous. |
| 33 |