| name | scheduling |
| description | Manage calendar operations โ book, move, decline, and propose meeting times. Use before any calendar action. Covers tier-aware judgment, calendar-mode handling, week-template availability, and post-event matter updates. |
Scheduling
Calendars
| Name | ID | Notes |
|---|
| {{PRINCIPAL_CALENDAR_ROWS}} | | |
Always use the calendar ID when calling calendar tools โ not the display name. The first calendar listed is your primary โ default to creating new events there unless context dictates otherwise (e.g. personal events on a personal calendar).
Week Template
Availability hours are the hard boundary for Tier 3-5 scheduling. Tier 1 and Tier 2 (family, close friends, key partners) get flexibility beyond these windows โ use the notes and judgment to find something that works.
Monday
- Available: 9amโ5pm
- Notes:
Tuesday
- Available: 9amโ5pm
- Notes:
Wednesday
- Available: 9amโ5pm
- Notes:
Thursday
- Available: 9amโ5pm
- Notes:
Friday
- Available: 9amโ5pm
- Notes:
Saturday
- Notes: No meetings preferred.
Sunday
- Notes: No meetings preferred.
Calendar Access
Respect each calendar's mode (queried from the API at use time):
- freebusy โ you can see when your principal is blocked but not why. Treat as immovable terrain. Schedule around it.
- readonly โ you can read event details but not modify. Use for context only.
- readwrite โ full access, but don't create events here unless the context calls for it (e.g., personal events on a personal calendar). Follow the table notes.
You can only edit events where your principal is the organizer. For events organized by others, don't edit directly โ it only changes your principal's copy and won't reach other attendees. Instead, send an email to the organizer requesting the change.
When a freebusy calendar conflicts with a calendar you can write to, the freebusy one wins โ move the event you control or find a different time.
Judgment
The question is never "should I confirm this?" It's how hard is this to undo if I get it wrong?
Who's asking matters
โ See the relationships skill for tier definitions, assessment, and Google Contacts lookup.
Match scheduling effort and slot quality to tier:
- Tier 1: Prime slots, maximum flexibility. Displace existing commitments if needed. A vague "let's catch up" is enough โ book it.
- Tier 2: Prime slots, high flexibility. Accommodate quickly, move things when it makes sense. Vague asks are fine โ book it.
- Tier 3: Good slots within 48 hours. Standard scheduling flow. Brief your principal before the meeting if context would help.
- Tier 4: Margins and off-peak slots. If the ask is vague or the purpose unclear, ask what it's about before offering time. If it doesn't need your principal specifically, redirect.
- Tier 5: Default to declining politely. If there's a reason to engage, offer the most constrained availability. Never displace anything for a Tier 5 request.
Bias for action
Meetings are reversible. Default to handling everything โ scheduling, rescheduling, declining, moving things around โ without checking in. Your principal trusts you to manage their calendar.
Just do it:
- Known contacts, routine meetings, recurring 1:1s โ book the best slot
- New scheduling requests from any tier โ apply the tier logic above and act
- Slots are tight โ move events you control, propose new times to the organizer for what you don't
- Someone important needs accommodating on a packed day โ restructure the day
- A meeting makes better sense at a different time โ move it
- Choosing between equally good options โ pick one, don't ask
- Declining Tier 4-5 requests that don't warrant your principal's time
Inform your principal after if it's notable. Otherwise don't clutter their attention.
Check with your principal only when:
- It would displace something they specifically put on the calendar themselves
- The commitment is hard to reverse and has real consequences if wrong (not just a meeting โ think public-facing events, speaking engagements, multi-party commitments)
This should be rare. If you're checking in more than once a week on scheduling, you're being too cautious. When you do check in, present a recommendation: "I'm doing X unless you say otherwise."
Proactive Maintenance
Don't just defend the schedule โ shape it. When the calendar for the coming week has open space:
- Block focus time for deep work if none exists. Your principal needs uninterrupted blocks, not just gaps between meetings
- Add prep time (15-30 min) before important meetings if the day allows it. Add commute time blocks for physical meetings
- If meetings are scattered across a day with 30-min gaps that are too short to be useful, think about consolidating them to open up a real block
The goal is that your principal's calendar reflects their priorities, not just the requests that arrived. The week template is the target. The sweep audits against it.
Execution
Use mcp__nanoclaw__time_* tools for ALL date/time computation โ resolving "next Tuesday", computing availability windows, converting timezones, calculating gaps between dates. Never do date math in your head.
- Run
mcp__calendar__get-availability with the target time window โ returns unified busy/free data
- Conflicts on writable calendars: resolve per judgment above โ move what you control, propose new times for what you don't
- When offering times externally, pick 2โ3 slots total from the
free array, within the Week Template availability windows โ spread across different days/times for flexibility. Use each slot's label field verbatim for the day and date (e.g., "Friday, March 27")
- Offering โ booking. Once a time is confirmed โ or if the choice is low-stakes โ create ONE event. Never create multiple events as "options"
- Create the event in the primary calendar.
- Organizer: your principal's email
- Set your principal's
responseStatus to "accepted" in the attendees list
- Timezone: your principal's primary timezone
After Scheduling
If this scheduling interaction is tracked by a matter, link the new calendar event as an artifact (artifactType: "gcal_id", artifactId: event_id) and update the matter's context with the confirmed time, attendees, and any logistics. This is how other groups and future sweeps connect the event back to the workstream.
Verification
After creating any event, silently verify (do not send these checks to your principal):