Calendar Manager
Manages the full lifecycle of calendar events — creating, updating, canceling, and summarizing events — and intelligently finds optimal meeting windows across multiple participants and time zones.
When to Use
- User asks to "schedule", "book", or "set up" a meeting
- User needs to find a free slot that works for multiple people
- A recurring event needs to be created or modified
- User asks what's on their calendar for a given day or week
- An event needs to be rescheduled based on a conflict or preference change
- User wants to add context (agenda, location, video link) to an existing event
- User asks to cancel or decline a meeting
Process
Parse the request:
- Extract: participants, preferred time window, duration, time zone, recurrence, location/video link, and agenda
- Clarify ambiguous references ("tomorrow", "next week", "morning") by anchoring to the current date and the user's local time zone
- Identify any hard constraints ("not before 10am", "avoid Fridays", "no back-to-back")
Check availability (when calendar access is available):
- Query each participant's free/busy data for the proposed window
- Identify all open slots that satisfy the duration requirement with ≥15 minutes buffer on either side
- Rank slots by score: working hours preferred, earlier in the week preferred, spreads meetings evenly through the day
Handle time zone coordination:
- Convert all times to each participant's local time zone for the confirmation
- Flag slots that fall outside normal working hours (8am–6pm) for any participant and ask for explicit confirmation
- Present times in the requester's local zone with secondary display of other participants' zones
Create or update the event:
- Title: clear, action-oriented (e.g., "Q3 Planning Kickoff" not "Meeting")
- Description: include agenda bullet points, pre-read links, and any decisions needed
- Attach video conferencing link (Zoom, Meet, Teams) if requested or if participants are in different locations
- Set reminders: 24 hours and 15 minutes before by default
Handle conflicts:
- If no slot satisfies all constraints, surface the 3 least-bad options with a tradeoff explanation
- If a hard conflict exists, propose the soonest available alternative and flag what moves
Confirm and summarize:
- Return a human-readable confirmation with all event details
- List each participant and their local time for the event
- Include calendar invite preview or ICS attachment when supported
Output Format
Meeting Suggestion
📅 Proposed Meeting Slots (all times shown in your local time zone — EST):
1. Tuesday, June 10 · 2:00 PM – 3:00 PM EST
→ 11:00 AM PST for Alex · 7:00 PM GMT for the London team
2. Wednesday, June 11 · 10:00 AM – 11:00 AM EST
→ 7:00 AM PST for Alex · 3:00 PM GMT for the London team ⚠️ end of London day
3. Thursday, June 12 · 3:00 PM – 4:00 PM EST
→ 12:00 PM PST for Alex · 8:00 PM GMT for the London team ⚠️ outside London working hours
Recommendation: Option 1 (Tuesday 2 PM EST) works within everyone's core hours.
Event Creation Confirmation
✅ Event Created
Title: Q3 Planning Kickoff
Date: Tuesday, June 10, 2025
Time: 2:00 PM – 3:00 PM EST
Location: Zoom — https://zoom.us/j/123456789
Attendees:
- you@company.com (organizer)
- alex@company.com · 11:00 AM PST
- london-team@company.com · 7:00 PM GMT
Agenda:
1. Review Q3 OKRs (10 min)
2. Assign owners to each initiative (20 min)
3. Set milestone dates (20 min)
4. AOB (10 min)
Reminders set: 24 hours before · 15 minutes before
Examples
Example Input
Schedule a 1-hour product review with Alice (NYC), Bob (San Francisco), and Carol (London) sometime next week. Avoid Monday mornings and Fridays.
Example Output
Checking availability for Alice (EST), Bob (PST), Carol (GMT) next week (June 9–13), excluding Monday mornings and Friday...
Best options:
1. Tuesday, June 10 · 2:00 PM EST | 11:00 AM PST | 7:00 PM GMT ✅ all within working hours
2. Wednesday, June 11 · 10:00 AM EST | 7:00 AM PST | 3:00 PM GMT ⚠️ early for Bob
3. Thursday, June 12 · 1:00 PM EST | 10:00 AM PST | 6:00 PM GMT ⚠️ end-of-day for Carol
Recommend Option 1. Shall I create the event and send invites?
Boundaries
- Do NOT create or send calendar invites without explicit confirmation of the time, participants, and title.
- Do NOT access calendars without proper API authorization from the user.
- Always clarify ambiguous time expressions (e.g., "morning", "end of day") before scheduling.
- Do NOT schedule meetings outside a participant's normal working hours without explicitly flagging it and receiving confirmation.
- When calendar data is unavailable, return proposed slots as suggestions rather than confirmed bookings.
- Respect recurring event modifications carefully — confirm whether a change applies to a single instance or all future occurrences.
1---2name: calendar-manager3description: Creates, reschedules, and summarizes calendar events; finds optimal meeting slots across participants and time zones. Invoke when asked to schedule a meeting, find a free time slot, manage calendar events, check availability, or coordinate across time zones.4---56# Calendar Manager78Manages the full lifecycle of calendar events — creating, updating, canceling, and summarizing events — and intelligently finds optimal meeting windows across multiple participants and time zones.910## When to Use1112- User asks to "schedule", "book", or "set up" a meeting13- User needs to find a free slot that works for multiple people14- A recurring event needs to be created or modified15- User asks what's on their calendar for a given day or week16- An event needs to be rescheduled based on a conflict or preference change17- User wants to add context (agenda, location, video link) to an existing event18- User asks to cancel or decline a meeting1920## Process21221. **Parse the request**:23 - Extract: participants, preferred time window, duration, time zone, recurrence, location/video link, and agenda24 - Clarify ambiguous references ("tomorrow", "next week", "morning") by anchoring to the current date and the user's local time zone25 - Identify any hard constraints ("not before 10am", "avoid Fridays", "no back-to-back")26272. **Check availability** (when calendar access is available):28 - Query each participant's free/busy data for the proposed window29 - Identify all open slots that satisfy the duration requirement with ≥15 minutes buffer on either side30 - Rank slots by score: working hours preferred, earlier in the week preferred, spreads meetings evenly through the day31323. **Handle time zone coordination**:33 - Convert all times to each participant's local time zone for the confirmation34 - Flag slots that fall outside normal working hours (8am–6pm) for any participant and ask for explicit confirmation35 - Present times in the requester's local zone with secondary display of other participants' zones36374. **Create or update the event**:38 - Title: clear, action-oriented (e.g., "Q3 Planning Kickoff" not "Meeting")39 - Description: include agenda bullet points, pre-read links, and any decisions needed40 - Attach video conferencing link (Zoom, Meet, Teams) if requested or if participants are in different locations41 - Set reminders: 24 hours and 15 minutes before by default42435. **Handle conflicts**:44 - If no slot satisfies all constraints, surface the 3 least-bad options with a tradeoff explanation45 - If a hard conflict exists, propose the soonest available alternative and flag what moves46476. **Confirm and summarize**:48 - Return a human-readable confirmation with all event details49 - List each participant and their local time for the event50 - Include calendar invite preview or ICS attachment when supported5152## Output Format5354### Meeting Suggestion55```56📅 Proposed Meeting Slots (all times shown in your local time zone — EST):57581. Tuesday, June 10 · 2:00 PM – 3:00 PM EST59 → 11:00 AM PST for Alex · 7:00 PM GMT for the London team60612. Wednesday, June 11 · 10:00 AM – 11:00 AM EST62 → 7:00 AM PST for Alex · 3:00 PM GMT for the London team ⚠️ end of London day63643. Thursday, June 12 · 3:00 PM – 4:00 PM EST65 → 12:00 PM PST for Alex · 8:00 PM GMT for the London team ⚠️ outside London working hours6667Recommendation: Option 1 (Tuesday 2 PM EST) works within everyone's core hours.68```6970### Event Creation Confirmation71```72✅ Event Created7374Title: Q3 Planning Kickoff75Date: Tuesday, June 10, 202576Time: 2:00 PM – 3:00 PM EST77Location: Zoom — https://zoom.us/j/1234567897879Attendees:80- you@company.com (organizer)81- alex@company.com · 11:00 AM PST82- london-team@company.com · 7:00 PM GMT8384Agenda:851. Review Q3 OKRs (10 min)862. Assign owners to each initiative (20 min)873. Set milestone dates (20 min)884. AOB (10 min)8990Reminders set: 24 hours before · 15 minutes before91```9293## Examples9495### Example Input96```97Schedule a 1-hour product review with Alice (NYC), Bob (San Francisco), and Carol (London) sometime next week. Avoid Monday mornings and Fridays.98```99100### Example Output101```102Checking availability for Alice (EST), Bob (PST), Carol (GMT) next week (June 9–13), excluding Monday mornings and Friday...103104Best options:1051. Tuesday, June 10 · 2:00 PM EST | 11:00 AM PST | 7:00 PM GMT ✅ all within working hours1062. Wednesday, June 11 · 10:00 AM EST | 7:00 AM PST | 3:00 PM GMT ⚠️ early for Bob1073. Thursday, June 12 · 1:00 PM EST | 10:00 AM PST | 6:00 PM GMT ⚠️ end-of-day for Carol108109Recommend Option 1. Shall I create the event and send invites?110```111112## Boundaries113114- Do NOT create or send calendar invites without explicit confirmation of the time, participants, and title.115- Do NOT access calendars without proper API authorization from the user.116- Always clarify ambiguous time expressions (e.g., "morning", "end of day") before scheduling.117- Do NOT schedule meetings outside a participant's normal working hours without explicitly flagging it and receiving confirmation.118- When calendar data is unavailable, return proposed slots as suggestions rather than confirmed bookings.119- Respect recurring event modifications carefully — confirm whether a change applies to a single instance or all future occurrences.