Analyze Block Disruption
Preview the impact of blocking a time period without actually creating the block
Requirements
Time window to analyze (e.g., 'Saturday', 'until Thursday 6pm', 'tomorrow 2-6pm').
3
Parse the time window from the user's request.
Determine:
- Start datetime (if "until X", start is now)
- End datetime
- Whether it's all-day or specific hours
Check Service Profiles for user's timezone.
Convert to YYYY-MM-DD or ISO8601 format for the calendar fetch.
6
Analyze the affected events and present a disruption summary.
Classify each event:
- Skip: Focus time, personal blocks, OOO markers, all-day reminders
- 1:1s with colleagues
- Team meetings (note if optional vs required)
- External/client meetings
Present the disruption analysis:
"Here's what blocking [time window] would affect:
[N] meetings need action:
- [List each with type and who'd need notification]
[N] can be ignored:
- [Brief list: focus blocks, reminders, etc.]
Disruption level: [Low/Medium/High]
- Low: 0-2 meetings, mostly internal or optional
- Medium: 3-5 meetings, some 1:1s or team meetings
- High: 6+ meetings, external calls, or critical meetings
People to notify: [List unique attendees who'd need heads-up]
Want me to go ahead and block this time? I'll handle all the notifications
and rescheduling."
If user wants to proceed → run Block Calendar Time
If not → confirm no action taken
To run this task you must have the following required information:
> Time window to analyze (e.g., 'Saturday', 'until Thursday 6pm', 'tomorrow 2-6pm').
If you don't have all of this information, exit here and respond asking for any extra information you require, and instructions to run this task again with ALL required information.
---
You MUST use a todo list to complete these steps in order. Never move on to one step if you haven't completed the previous step. If you have multiple read steps in a row, read them all at once (in parallel).
Add all steps to your todo list now and begin executing.
## Steps
1. [Read Calendar Blocking Guide]: Read the documentation in: `skills/sauna/[skill_id]/references/calendar.block.guide.md` (Meeting classification categories)
2. [Read Time Expressions Guide]: Read the documentation in: `skills/sauna/[skill_id]/references/world.time.expressions.md` (How to interpret flexible time expressions)
3. Parse the time window from the user's request.
Determine:
- Start datetime (if "until X", start is now)
- End datetime
- Whether it's all-day or specific hours
Check `documents/user/services/*.md` for user's timezone.
Convert to YYYY-MM-DD or ISO8601 format for the calendar fetch.
4. [Gather Arguments: Fetch Calendar Events] The next step has the following requirements for arguments, do not proceed until you have all the required information:
- `startDate`: Start date in YYYY-MM-DD format
- `endDate`: End date in YYYY-MM-DD format
- `outputPath`: session/calendar-affected-events.json
5. [Run Code: Fetch Calendar Events]: Call `run_script` with:
```json
{
"file": {
"path": https://sk.ills.app/code/calendar.google.events/preview,
"args": [
"startDate",
"endDate",
"outputPath"
]
},
"packages": null
}
```
6. [Read Affected Calendar Events]: Read the file at `session/calendar-affected-events.json` into context (Events in the time window)
7. Analyze the affected events and present a disruption summary.
**Classify each event:**
- Skip: Focus time, personal blocks, OOO markers, all-day reminders
- 1:1s with colleagues
- Team meetings (note if optional vs required)
- External/client meetings
**Present the disruption analysis:**
"Here's what blocking [time window] would affect:
**[N] meetings need action:**
- [List each with type and who'd need notification]
**[N] can be ignored:**
- [Brief list: focus blocks, reminders, etc.]
**Disruption level: [Low/Medium/High]**
- Low: 0-2 meetings, mostly internal or optional
- Medium: 3-5 meetings, some 1:1s or team meetings
- High: 6+ meetings, external calls, or critical meetings
**People to notify:** [List unique attendees who'd need heads-up]
Want me to go ahead and block this time? I'll handle all the notifications
and rescheduling."
If user wants to proceed → run `skills/sauna/[skill_id]/references/recipes/calendar.block.handle.md`
If not → confirm no action taken