{"slug": "daily-planning-agent", "title": "Daily Planning Agent", "summary": "A new Daily Planning Agent uses a read-only governance spec called AgentAz to propose time-blocked schedules without booking or moving calendar events. The agent surfaces conflicts and overcommitment for user approval, ensuring focus time and breaks are protected. Its open-source specification documents trust levels, tool boundaries, and cost limits for security review.", "body_md": "## Overview\n\nTurns your tasks, priorities, and calendar into a realistic, time-blocked day.\n\nProtects focus time and breaks, and sequences work sensibly around fixed meetings.\n\nSurfaces conflicts and overcommitment honestly instead of cramming everything in.\n\nDefensive: it proposes changes for you to approve — it never moves meetings, books time, or messages people on your behalf.\n\n## AgentAz™ specification\n\nA lightweight, design-time governance spec for security review. It documents what this agent is authorized to do — and why — and pairs with whatever policy engine you already run. It does not enforce anything at runtime.\n\nMachine-readable contract (`agentaz.json`\n\n), validated against the open AgentAz™ JSON Schema — bundled for offline use and published at a permanent URL:\n\n```\n{\n  \"$schema\": \"./agentaz.schema.json\",\n  \"version\": \"2.0.0\",\n  \"last_reviewed\": \"2026-06-24\",\n  \"agent_id\": \"daily-planner-agent\",\n  \"trust_level\": \"A2\",\n  \"dna_pattern\": \"Planning\",\n  \"worst_case_action\": \"Proposes a suboptimal schedule for user review. Cannot book, schedule, or block time.\",\n  \"authority_boundary\": \"Proposes a prioritized daily plan; calendar-write/booking tools absent.\",\n  \"tags\": [\n    \"personal-productivity\",\n    \"planning\",\n    \"read-only\",\n    \"human-review\"\n  ],\n  \"tool_boundary\": {\n    \"allowed_tools\": [\n      \"read_tasks\",\n      \"read_constraints\",\n      \"prioritize\",\n      \"propose_plan\"\n    ],\n    \"execution_tools_absent\": true\n  },\n  \"output_boundary\": {\n    \"format\": \"structured_json\",\n    \"never_emits\": [\n      \"book_meeting\",\n      \"block_calendar\",\n      \"send_invite\",\n      \"schedule\"\n    ]\n  },\n  \"cost_boundary\": {\n    \"max_usd_per_trace_loop\": 0.18,\n    \"alert_threshold_usd\": 0.12\n  },\n  \"loop_boundary\": {\n    \"max_reasoning_turns\": 6\n  },\n  \"human_handoff\": {\n    \"triggers\": [\n      \"scheduling_conflict\",\n      \"overcommitted\"\n    ],\n    \"destination\": \"user\"\n  },\n  \"audit\": {\n    \"append_only\": true,\n    \"logs\": [\n      \"plan\",\n      \"inputs\"\n    ]\n  }\n}\n```\n\nNew to this? Read the [AgentAz specification guide](/agentaz-specifications) — Trust Levels, DNA patterns, and how it complements your runtime.\n\nAgentAz™ is open source under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0) — schema (frozen v1.0.0) and source on [GitHub](https://github.com/agent-kits/agentaz).\n\n## Governance matrix\n\nA scannable summary of this blueprint's governance coverage, derived from its AgentAz™ specification. It documents the boundaries that already ship — not new functionality.\n\n| Agent goal | Bounded by the authority spec above |\n|---|---|\n| Trust Level | A2 — Recommend |\n| Tool access | Least privilege — execution tools absent (read-only) |\n| Context handling | Grounded in provided inputs; cites or flags rather than guessing |\n| Memory strategy | Task-scoped; no persistent cross-session memory |\n| Human approval | Required on scheduling conflict, overcommitted → user |\n| Audit trail | Append-only log (plan, inputs) |\n| Cost & loop bounds | ≤ $0.18 per loop · ≤ 6 reasoning turns |\n| Recovery / escalation | Escalates to user |\n\n## Agent component mapping\n\nA framework-neutral view of how this blueprint maps to standard agent-architecture components (the vocabulary common to ADK-style frameworks). It describes structure for clarity — not an official integration or certified compatibility.\n\n| Agent | Primary reasoner — Recommend authority (A2) |\n|---|---|\n| Tools | read tasks, read constraints, prioritize, propose plan — execution tools absent (read-only) |\n| Memory | Task-scoped working context; no persistent cross-session memory |\n| Guardrails | Worst-case classified (A2); no execution tools; ≤ $0.18/loop · ≤ 6 turns |\n| Evaluator | Confidence and authority-boundary checks; low-confidence or out-of-bounds results are flagged, not actioned |\n| Handoff | Escalates to user on scheduling conflict, overcommitted |\n\n## Failure modes\n\nSpecific ways this blueprint can fail, and how it is designed to detect, contain, and recover from each — the boundaries that make it safe to run, stated plainly.\n\nProposes a plan that books over an existing commitment.\n\n- Detection\n- Scheduling conflicts are detected and flagged.\n- Mitigation\n- It proposes only — it cannot book, schedule, or block time.\n- Recovery\n- The user adjusts the plan before acting on it.\n\nOvercommits the day beyond available time.\n\n- Detection\n- Overcommitment is detected against available hours.\n- Mitigation\n- It flags an infeasible plan rather than asserting it.\n- Recovery\n- The user re-prioritizes.\n\nMisjudges a task's priority or duration.\n\n- Detection\n- Inferred priorities and durations are labeled as inferred.\n- Mitigation\n- The user confirms before anything is acted on.\n- Recovery\n- The user corrects the priority or estimate.\n\n## Evaluation\n\nFeasibility and conflict-free proposals are primary — a plan that overbooks or collides with a commitment is the failure.\n\n| Conflict-free rate | Share of proposed plans with no collisions against existing commitments. |\n|---|---|\n| Feasibility | Share of plans that fit available time without overcommitment. |\n| Prioritization quality | Agreement of inferred task priorities and durations with the user. |\n| Assumption-flagging | Share of inferred priorities and durations labeled as inferred. |\n| Latency | Time to propose a plan. |\n\n**Recommended approach.** Use schedules with known commitments and available time; measure conflict-free rate and feasibility and have users rate prioritization. It proposes only — it cannot book or block time.\n\n## When to use\n\nUse it when\n\n- You want a realistic daily plan built from your tasks and calendar.\n- You want focus blocks and breaks protected, not just a packed schedule.\n- You want honest flagging when there's more to do than time allows.\n- You want suggestions you stay in control of, not an agent that edits your calendar.\n\nAvoid it when\n\n- You want it to automatically reschedule meetings or book time without your approval — it won't.\n- You can't share tasks/calendar context for it to plan from.\n- You want it to message or commit to others on your behalf.\n- You need a team-scheduling tool rather than a personal daily planner.\n\n## System prompt\n\n```\nYou are a Daily Planning Agent for one person. You turn their tasks, priorities, calendar, and constraints into a realistic, time-blocked plan for the day. You PROPOSE; you do not take actions on their calendar or on their behalf. You are judged on realistic, helpful plans and on never overcommitting them or acting without approval.\n\n== CORE PRINCIPLES ==\n1. Realistic over ambitious. Plan what actually fits in the available time, accounting for fixed meetings, task estimates, breaks, and buffer. If everything doesn't fit, say so and propose what to defer — don't pretend it all fits.\n2. Protect the human. Include breaks and reasonable focus blocks. Don't schedule a punishing, no-break day. Respect stated working hours, energy patterns, and constraints.\n3. Propose, don't act. You suggest a plan and any changes (e.g. 'consider moving X'). You never move/cancel/book meetings, send invites, or message anyone. The person decides and acts.\n\n== HARD RULES (NON-NEGOTIABLE) ==\n- NO AUTONOMOUS CALENDAR ACTIONS: Never move, cancel, create, or accept meetings, send invites, or notify others. Output suggestions only; the person applies them.\n- NO OVERCOMMIT: If tasks exceed available time, flag it clearly and propose a realistic subset + what to defer. Never produce a plan that silently can't be done.\n- RESPECT CONSTRAINTS: Honor working hours, fixed events, stated breaks, and 'do not schedule' windows. Don't plan over lunch or outside hours unless asked.\n- WELLBEING: Include breaks; avoid back-to-back marathons. Don't encourage skipping meals/rest to fit more in.\n- NO COMMITMENTS FOR OTHERS: Don't assume others' availability or commit them to anything.\n\n== METHOD ==\n- Read tasks (with priorities + estimates if given), the calendar (fixed events), and constraints. Estimate durations, sequence by priority and energy, time-block around fixed events with breaks/buffer, and check it fits. Flag conflicts and overcommitment.\n\n== OUTPUT FORMAT (return ONE JSON object) ==\n{\n  \"date\": \"<day>\",\n  \"available_hours\": <number>,\n  \"plan\": [ { \"start\": \"<time>\", \"end\": \"<time>\", \"block\": \"<task/meeting/break>\", \"type\": \"focus|meeting|break|admin\", \"fixed\": <bool> } ],\n  \"deferred\": [\"<tasks that didn't fit, with why>\"],\n  \"overcommit\": { \"flag\": <bool>, \"detail\": \"<tasks vs time, or empty>\" },\n  \"suggestions\": [\"<proposed changes for the person to approve, e.g. 'consider moving the 3pm to free a focus block'>\"],\n  \"applied_actions\": [],\n  \"note\": \"Proposed plan only — no calendar changes were made. You decide and apply.\"\n}\napplied_actions is always empty. If work exceeds time, set overcommit.flag=true and propose a realistic subset.\n```\n\n## Simulate run\n\nTry the agent with a sample task. This is a frontend-only preview that shows how the kit would plan and execute — no API calls, nothing leaves your browser.\n\nFrontend preview only — no data leaves your browser. Tip: press `⌘/Ctrl` + `Enter` to run.\n\n## Setup guide\n\nInstall and connect (read-only)\n\nInstall the agent and connect your calendar and tasks with read-only scope.\n\n```\npipx install daily-planner-agent\ndaily-planner-agent connect --calendar google:readonly --tasks todoist:readonly\ndaily-planner-agent doctor\n```\n\nConfigure boundaries\n\nPropose-only and no-overcommit are enforced here.\n\n```\ncp .env.example .env\nANTHROPIC_API_KEY=sk-ant-...\nCALENDAR_WRITE=false        # never edits your calendar\nINCLUDE_BREAKS=true\nNO_OVERCOMMIT=true\n```\n\nSet your day constraints\n\nTell it your hours, breaks, and focus preferences.\n\n```\n# day.yml\nworking_hours: '09:00-17:30'\nlunch: '12:30-13:15'\nfocus_blocks_min: 90\nbuffer_between_meetings_min: 10\ndo_not_schedule: ['after 18:00']\n```\n\nTry a plan\n\nGenerate a plan and review the blocks, deferrals, and suggestions.\n\n```\ndaily-planner-agent plan --date today --explain\n# prints time-blocked plan + overcommit flag + suggestions (no changes made)\n```\n\nWire into your morning\n\nGenerate a proposed plan each morning for you to apply yourself.\n\n``` php\n# morning trigger -> proposed plan to your notes/chat; you apply changes manually\n```\n\n## Architecture\n\n## Tools required\n\n## Workflow\n\n1. Gather inputs\n\nRead tasks (priorities/estimates), the calendar's fixed events, and constraints.\n\n2. Estimate durations\n\nEstimate how long tasks take to plan against the real available time.\n\n3. Prioritize & sequence\n\nOrder work by priority and energy and fit it around fixed meetings.\n\n4. Time-block with breaks\n\nBuild blocks that protect focus and include breaks and buffer.\n\n5. Check it fits\n\nVerify the plan fits the hours; if not, flag overcommitment and propose deferrals.\n\n6. Propose only\n\nOutput suggestions and proposed changes — never act on the calendar or message anyone.\n\n7. Hand off the plan\n\nDeliver the plan, deferrals, and suggestions for the person to review and apply.\n\n## Examples\n\nTasks + calendar → realistic time-blocked plan with breaks\n\nA normal day with a few meetings and tasks. The agent builds a sensible plan that fits, with breaks.\n\nInput\n\n```\nWorking 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).\n```\n\nOutput\n\n```\n{\n  \"date\": \"today\",\n  \"available_hours\": 7.0,\n  \"plan\": [\n    { \"start\": \"09:00\", \"end\": \"09:30\", \"block\": \"Emails + day setup\", \"type\": \"admin\", \"fixed\": false },\n    { \"start\": \"09:30\", \"end\": \"09:45\", \"block\": \"Standup\", \"type\": \"meeting\", \"fixed\": true },\n    { \"start\": \"09:45\", \"end\": \"11:45\", \"block\": \"Finish report (deep focus)\", \"type\": \"focus\", \"fixed\": false },\n    { \"start\": \"11:45\", \"end\": \"12:00\", \"block\": \"Break\", \"type\": \"break\", \"fixed\": false },\n    { \"start\": \"12:00\", \"end\": \"12:30\", \"block\": \"Code review\", \"type\": \"focus\", \"fixed\": false },\n    { \"start\": \"12:30\", \"end\": \"13:15\", \"block\": \"Lunch\", \"type\": \"break\", \"fixed\": true },\n    { \"start\": \"13:15\", \"end\": \"13:45\", \"block\": \"Code review (finish)\", \"type\": \"focus\", \"fixed\": false },\n    { \"start\": \"14:00\", \"end\": \"15:00\", \"block\": \"Review meeting\", \"type\": \"meeting\", \"fixed\": true }\n  ],\n  \"deferred\": [],\n  \"overcommit\": { \"flag\": false, \"detail\": \"\" },\n  \"suggestions\": [\"Report is scheduled in your morning focus window when energy is highest\"],\n  \"applied_actions\": [],\n  \"note\": \"Proposed plan only — no calendar changes were made. You decide and apply.\"\n}\n```\n\n**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.\n\nMore work than hours → flag overcommit, propose what fits\n\nThe task list can't fit the day. The agent refuses to pretend it all fits and proposes a realistic subset.\n\nInput\n\n```\nSame day (≈4h of free time after meetings/lunch), but tasks total ~7h: report (2h), code review (1h), deck (2h), inbox zero (1h), planning (1h).\n```\n\nOutput\n\n```\n{\n  \"date\": \"today\",\n  \"available_hours\": 4.0,\n  \"plan\": [\n    { \"start\": \"09:45\", \"end\": \"11:45\", \"block\": \"Finish report (high priority)\", \"type\": \"focus\", \"fixed\": false },\n    { \"start\": \"11:45\", \"end\": \"12:00\", \"block\": \"Break\", \"type\": \"break\", \"fixed\": false },\n    { \"start\": \"12:00\", \"end\": \"12:30\", \"block\": \"Code review (start)\", \"type\": \"focus\", \"fixed\": false },\n    { \"start\": \"13:15\", \"end\": \"13:45\", \"block\": \"Code review (finish)\", \"type\": \"focus\", \"fixed\": false },\n    { \"start\": \"15:00\", \"end\": \"16:00\", \"block\": \"Deck (part 1)\", \"type\": \"focus\", \"fixed\": false }\n  ],\n  \"deferred\": [\"Deck part 2 (~1h) — didn't fit today\", \"Inbox zero (~1h) — defer or timebox 15m\", \"Planning (~1h) — move to tomorrow morning\"],\n  \"overcommit\": { \"flag\": true, \"detail\": \"~7h of tasks vs ~4h free. Prioritized report + code review + starting the deck; deferred the rest.\" },\n  \"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?\"],\n  \"applied_actions\": [],\n  \"note\": \"Proposed plan only — no calendar changes were made. You decide and apply.\"\n}\n```\n\n**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.\n\nCould free time by moving a meeting → suggest it, never do it\n\nShuffling a meeting would create a focus block. The agent proposes the change but won't touch the calendar.\n\nInput\n\n```\nUser: 'I really need 2 uninterrupted hours for the report. Can you make that happen?' The 2pm review is the only blocker.\n```\n\nOutput\n\n```\n{\n  \"date\": \"today\",\n  \"available_hours\": 7.0,\n  \"plan\": [\n    { \"start\": \"09:45\", \"end\": \"11:45\", \"block\": \"Report (2h uninterrupted focus)\", \"type\": \"focus\", \"fixed\": false },\n    { \"start\": \"14:00\", \"end\": \"15:00\", \"block\": \"Review meeting (currently fixed)\", \"type\": \"meeting\", \"fixed\": true }\n  ],\n  \"deferred\": [],\n  \"overcommit\": { \"flag\": false, \"detail\": \"\" },\n  \"suggestions\": [\n    \"Good news: you can get 2 uninterrupted hours 09:45–11:45 today without moving anything.\",\n    \"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.\"\n  ],\n  \"applied_actions\": [],\n  \"note\": \"Proposed plan only — no calendar changes were made. You decide and apply.\"\n}\n```\n\n**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.\n\n## Implementation notes\n\n- Keep calendar access read-only and enforce propose-only in a deterministic rule; an assistant that silently moves meetings or messages attendees erodes trust fast.\n- Never overcommit: if tasks exceed available time, flag it and propose a realistic subset with deferrals rather than producing an impossible plan.\n- Build in breaks and focus protection and respect stated hours and 'do not schedule' windows — a punishing plan is a failed plan.\n- Surface conflicts and double-bookings rather than silently resolving them, so the person decides how to handle them.\n- Never commit others or assume their availability; at most, offer to draft a message the person can send.\n- Use realistic task estimates (provided or sensible defaults) and add buffer between meetings, since back-to-back plans collapse on the first overrun.\n- A cheaper model is usually enough to lay out straightforward blocks, so keep the strong model for prioritization trade-offs and overcommit handling.\n\n## Variations\n\nBasic\n\nDaily time-blocker\n\nBuilds a proposed time-blocked plan from your tasks and calendar with breaks. Read-only, on demand.\n\nAdvanced\n\nRealistic planner with guardrails\n\nAdds duration estimation, overcommit flagging with deferrals, conflict surfacing, and propose-only suggestions for calendar changes.\n\nEnterprise\n\nPersonal productivity assistant\n\nAdds task-system and calendar integration (read), energy/preference learning, weekly planning, and draft-message generation for changes you approve.\n\nDownload the Agent Blueprint\n\n[Download Blueprint (.zip)](/downloads/daily-planner-agent.zip)\n\nExport\n\n[View the source on GitHub](https://github.com/agent-kits/agentaz/tree/main/kits/daily-planner-agent)\n\nThis blueprint and the AgentAz™ specification live in the central AgentKits registry — open source under Apache-2.0 (code & schema) and CC‑BY‑4.0 (text).\n\n## Frequently asked questions\n\nNo. It only proposes a plan and suggestions; it never moves, cancels, creates, or accepts meetings, sends invites, or messages anyone. You stay in control and apply changes yourself.\n\nIt tells you honestly. It flags the overcommitment, schedules your highest-priority work, and lists what it deferred and why — rather than producing a packed plan that can't actually be done.\n\nYes. It builds in breaks and reasonable focus blocks, respects your working hours and 'do not schedule' windows, and won't plan a back-to-back, no-break marathon.\n\nIt can suggest moving one and even offer to draft a message you can send to attendees, but it won't reschedule the meeting or notify anyone itself — that decision and action stay with you.\n\nIt uses the estimates you provide, or sensible defaults, and adds buffer between blocks so a single overrun doesn't collapse the rest of the day.\n\nYes. It reads your calendar and tasks with read-only access to build the plan and keeps that context in scope; it doesn't act on or share it.", "url": "https://wpnews.pro/news/daily-planning-agent", "canonical_source": "https://www.agent-kits.com/kit/daily-planner-agent", "published_at": "2026-06-21 00:00:00+00:00", "updated_at": "2026-06-26 22:04:55.562593+00:00", "lang": "en", "topics": ["ai-agents", "ai-safety", "ai-tools", "ai-products"], "entities": ["AgentAz", "GitHub", "Apache-2.0"], "alternates": {"html": "https://wpnews.pro/news/daily-planning-agent", "markdown": "https://wpnews.pro/news/daily-planning-agent.md", "text": "https://wpnews.pro/news/daily-planning-agent.txt", "jsonld": "https://wpnews.pro/news/daily-planning-agent.jsonld"}}