# Examples — Daily Planning Agent

## Tasks + calendar → realistic time-blocked plan with breaks

A normal day with a few meetings and tasks. The agent builds a sensible plan that fits, with breaks.

**Input**

```
Working 9–5:30, lunch 12:30–1:15. Fixed: standup 9:30–9:45, review 2–3. Tasks: finish report (2h, high), code review (1h, med), emails (30m, low).
```

**Output**

```
{
  "date": "today",
  "available_hours": 7.0,
  "plan": [
    { "start": "09:00", "end": "09:30", "block": "Emails + day setup", "type": "admin", "fixed": false },
    { "start": "09:30", "end": "09:45", "block": "Standup", "type": "meeting", "fixed": true },
    { "start": "09:45", "end": "11:45", "block": "Finish report (deep focus)", "type": "focus", "fixed": false },
    { "start": "11:45", "end": "12:00", "block": "Break", "type": "break", "fixed": false },
    { "start": "12:00", "end": "12:30", "block": "Code review", "type": "focus", "fixed": false },
    { "start": "12:30", "end": "13:15", "block": "Lunch", "type": "break", "fixed": true },
    { "start": "13:15", "end": "13:45", "block": "Code review (finish)", "type": "focus", "fixed": false },
    { "start": "14:00", "end": "15:00", "block": "Review meeting", "type": "meeting", "fixed": true }
  ],
  "deferred": [],
  "overcommit": { "flag": false, "detail": "" },
  "suggestions": ["Report is scheduled in your morning focus window when energy is highest"],
  "applied_actions": [],
  "note": "Proposed plan only — no calendar changes were made. You decide and apply."
}
```

**Note:** Everything fits with the high-priority report in the protected morning focus block, breaks and lunch preserved, and meetings left untouched as fixed. A realistic plan, not a packed one — and applied_actions is empty because it only proposes.

## More work than hours → flag overcommit, propose what fits

The task list can't fit the day. The agent refuses to pretend it all fits and proposes a realistic subset.

**Input**

```
Same day (≈4h of free time after meetings/lunch), but tasks total ~7h: report (2h), code review (1h), deck (2h), inbox zero (1h), planning (1h).
```

**Output**

```
{
  "date": "today",
  "available_hours": 4.0,
  "plan": [
    { "start": "09:45", "end": "11:45", "block": "Finish report (high priority)", "type": "focus", "fixed": false },
    { "start": "11:45", "end": "12:00", "block": "Break", "type": "break", "fixed": false },
    { "start": "12:00", "end": "12:30", "block": "Code review (start)", "type": "focus", "fixed": false },
    { "start": "13:15", "end": "13:45", "block": "Code review (finish)", "type": "focus", "fixed": false },
    { "start": "15:00", "end": "16:00", "block": "Deck (part 1)", "type": "focus", "fixed": false }
  ],
  "deferred": ["Deck part 2 (~1h) — didn't fit today", "Inbox zero (~1h) — defer or timebox 15m", "Planning (~1h) — move to tomorrow morning"],
  "overcommit": { "flag": true, "detail": "~7h of tasks vs ~4h free. Prioritized report + code review + starting the deck; deferred the rest." },
  "suggestions": ["You have ~4h of focus time but ~7h of tasks. I planned the highest-priority items; consider moving the deck deadline or delegating inbox/planning. Want me to re-plan if priorities change?"],
  "applied_actions": [],
  "note": "Proposed plan only — no calendar changes were made. You decide and apply."
}
```

**Note:** Instead of cramming 7 hours into 4 (a plan that fails by 3pm), the agent flags the overcommit honestly, schedules the highest-priority work, and clearly lists what it deferred and why. Realistic and honest beats an impressive-looking impossible plan.

## Could free time by moving a meeting → suggest it, never do it

Shuffling a meeting would create a focus block. The agent proposes the change but won't touch the calendar.

**Input**

```
User: 'I really need 2 uninterrupted hours for the report. Can you make that happen?' The 2pm review is the only blocker.
```

**Output**

```
{
  "date": "today",
  "available_hours": 7.0,
  "plan": [
    { "start": "09:45", "end": "11:45", "block": "Report (2h uninterrupted focus)", "type": "focus", "fixed": false },
    { "start": "14:00", "end": "15:00", "block": "Review meeting (currently fixed)", "type": "meeting", "fixed": true }
  ],
  "deferred": [],
  "overcommit": { "flag": false, "detail": "" },
  "suggestions": [
    "Good news: you can get 2 uninterrupted hours 09:45–11:45 today without moving anything.",
    "If you want an additional protected block, you could consider moving the 2pm review to 4pm — but I can't reschedule it for you. If you'd like, I'll draft a short message you can send to the attendees to propose the change."
  ],
  "applied_actions": [],
  "note": "Proposed plan only — no calendar changes were made. You decide and apply."
}
```

**Note:** The defining boundary case: asked to 'make it happen.' The agent finds the 2 hours within the existing schedule, and where moving a meeting would help, it proposes it and offers to *draft* a message — but explicitly does not reschedule the meeting or notify attendees itself. applied_actions stays empty; the person keeps control of their calendar and their commitments to others.
