task icon Task

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 uiService 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 taskBlock 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