Skip to content

Commit 320b13c

Browse files
docs: mandate calendarId='primary' in calendar skill (#272)
* docs: mandate calendarId='primary' in calendar skill Agents frequently omit calendarId on their first calendar tool call, causing a wasted execution turn. This update: - Adds an 'Always Pass calendarId' section with explicit mandate - Updates listEvents and createEvent guidance to reinforce the pattern - Provides examples for every tool that accepts calendarId * fix: add updateEvent to calendarId mandate list and fix formatting Addresses PR review feedback from Gemini Code Assist: - Added calendar.updateEvent to the calendarId mandate examples - Fixed Prettier formatting
1 parent 3a64a71 commit 320b13c

1 file changed

Lines changed: 22 additions & 4 deletions

File tree

skills/calendar/SKILL.md

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,30 @@ API. Follow these guidelines when helping users with calendar tasks.
2525
> offset (e.g., `2025-01-15T10:30:00-05:00`) or use UTC (`Z`). Never send "bare"
2626
> datetimes without an offset.
2727
28+
## Always Pass `calendarId`
29+
30+
**You MUST pass `calendarId: "primary"` on every calendar tool call that accepts
31+
it.** Do not omit this parameter — while the API may default to the primary
32+
calendar, omitting it wastes an execution turn when the call fails or requires
33+
clarification. Always include it explicitly:
34+
35+
- `calendar.listEvents({ calendarId: "primary", ... })`
36+
- `calendar.createEvent({ calendarId: "primary", ... })`
37+
- `calendar.getEvent({ eventId: "...", calendarId: "primary" })`
38+
- `calendar.updateEvent({ eventId: "...", calendarId: "primary", ... })`
39+
- `calendar.deleteEvent({ eventId: "...", calendarId: "primary" })`
40+
- `calendar.respondToEvent({ eventId: "...", calendarId: "primary", ... })`
41+
42+
Only use a different `calendarId` when the user explicitly asks to work with a
43+
non-primary calendar (discovered via `calendar.list`).
44+
2845
## Understanding "Next Meeting"
2946

3047
When asked about "next meeting", "today's schedule", or similar queries:
3148

32-
1. **Fetch the full day's context** — Use `calendar.listEvents` with start of
33-
day (`00:00:00`) to end of day (`23:59:59`) in the user's timezone
49+
1. **Fetch the full day's context** — Use `calendar.listEvents` with
50+
`calendarId: "primary"`, start of day (`00:00:00`) to end of day (`23:59:59`)
51+
in the user's timezone
3452
2. **Filter by response status** — Only show meetings where the user has:
3553
- Accepted the invitation
3654
- Not yet responded (needs to decide)
@@ -78,8 +96,8 @@ Should I create this event?
7896

7997
### Key Parameters
8098

81-
- **`calendarId`**Defaults to primary calendar if omitted. Use
82-
`calendar.list` to discover other calendars.
99+
- **`calendarId`****Always pass `"primary"`**. Use `calendar.list` to
100+
discover other calendars when needed.
83101
- **`start` / `end`** — Must include timezone offset in ISO 8601 format (e.g.,
84102
`2025-01-15T10:00:00-05:00`)
85103
- **`attendees`** — Array of email addresses

0 commit comments

Comments
 (0)