task icon Task

Build Calendar Profile

Build your personal calendar profile - collaborators, schedule patterns, meeting types

1

Check if the calendar profile exists in stateService Profiles with a 'Last analyzed:' timestamp.

If fresh (< 30 days): Show you know them - 'You meet mostly with [names], heavy days are [days].' Then ask what they want to do. STOP here.

If stale (> 30 days): 'Been a while since I checked your calendar - want me to refresh?' If they decline, use existing profile. STOP if they decline.

If no profile exists: Proceed to next step.

2

Ask permission casually with time estimate: 'Mind if I look at your calendar? Takes about 2 mins.' Wait for confirmation before proceeding.

3

Say 'Checking...' then run the code.

5

Use your task tool to run these tasks in parallel as subagents. Do not do this in code:

8

Read sliceCalendar Wow Moments for inspiration. Pick 1-2 wow patterns that genuinely fit this person's data — don't force patterns that don't exist.

Lead with the most surprising or useful insight. Then give the conversational summary.
Example: 'You've never missed your Tuesday 1:1 with Tal — 12 weeks straight. You're in a lot of 1:1s, mostly with founders. Thursdays are your heavy days.'

Skip counts. Skip confirmations. Just share what you learned.

                    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 CONSECUTIVE read steps in a row, read them all at once (in parallel). Otherwise, do not read a file until you reach that step.

Add all steps to your todo list now and begin executing.

## Steps

1. Check if the calendar profile exists in `documents/user/services/*.md` with a 'Last analyzed:' timestamp.

If fresh (< 30 days): Show you know them - 'You meet mostly with [names], heavy days are [days].' Then ask what they want to do. STOP here.

If stale (> 30 days): 'Been a while since I checked your calendar - want me to refresh?' If they decline, use existing profile. STOP if they decline.

If no profile exists: Proceed to next step.


2. Ask permission casually with time estimate: 'Mind if I look at your calendar? Takes about 2 mins.' Wait for confirmation before proceeding.

3. Say 'Checking...' then run the code.

4. [Gather Arguments: Connect to Google Calendar] The next step has the following requirements for arguments, do not proceed until you have all the required information:
- `outputPath` (default: "session/calendar-raw.json"): session/calendar-raw.json

5. [Run Code: Connect to Google Calendar]: Call `run_script` with:

```json
{
  "file": {
    "path": https://sk.ills.app/code/calendar.google.connect/preview,
    "args": [
      "outputPath"
    ]
  },
  "packages": null
}
```

6. Use your task tool to run these tasks in parallel as subagents. Do not do this in code:
- `skills/sauna/[skill_id]/references/recipes/calendar.google.analyze.md` to create the calendar usage profile
- `skills/sauna/[skill_id]/references/recipes/context.profile.extract.md` to extract persistent user insights
For both: explain that data is from Google Calendar, consider events in this context only.


7. [Read Wow Moments Framework]: Read the documentation in: `skills/sauna/[skill_id]/references/context.wow.framework.md` (Core principles for presenting insights)

8. [Read Calendar Wow Moments]: Read the documentation in: `skills/sauna/[skill_id]/references/calendar.google.wow.md` (Calendar-specific wow patterns)

9. Read `skills/sauna/[skill_id]/references/calendar.google.wow.md` for inspiration. Pick 1-2 wow patterns that genuinely fit this person's data — don't force patterns that don't exist.

Lead with the most surprising or useful insight. Then give the conversational summary.
Example: 'You've never missed your Tuesday 1:1 with Tal — 12 weeks straight. You're in a lot of 1:1s, mostly with founders. Thursdays are your heavy days.'

Skip counts. Skip confirmations. Just share what you learned.