Skip to main content
Glama

Add a to-do

add_task

Add a to-do to Sara's planner with an optional due time, project, and priority so tasks stay organized and actionable.

Instructions

Add a new to-do to the owner's planner in Sara, with an optional due time, project and priority. Use update_task to change an existing one. Returns "Added to-do #id: title" (the #id works with complete_task, update_task and delete_task). A due time without an hour means 9:00 in the owner's time zone. Only listed when the owner turns on "Let other apps change things" in Sara. Follows the owner's approval setting for her todo tool (allowed, ask first, or off): when it asks first, it returns "Waiting for approval in Sara" and nothing changes until the owner presses Allow there; when it is off, it returns that it's turned off.

Input Schema

NameRequiredDescriptionDefault
dueNoWhen it is due, in words or as a date, read in the owner's time zone. Leave out for no due date.
titleYesWhat to do, short. Up to 200 characters.
projectNoPlanner project name to file it under, e.g. "Garden" or "Sara". Created if it doesn't exist. Up to 80 characters.
priorityNoHow important: "low", "normal" (default) or "high".normal

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changedv0.1.1
    • changedInput schema / properties / due / description
      Previous value: -"When, in words: \"tomorrow 9am\", \"friday\", \"2026-11-03\"."New value: +"When it is due, in words or as a date, read in the owner's time zone. Leave out for no due date."
    • addedInput schema / properties / due / examples
      Added value: +[
      +  "tomorrow 9am",
      +  "friday",
      +  "2026-11-03"
      +]
    • addedInput schema / properties / due / maxLength
      Added value: +80
    • addedInput schema / properties / priority / default
      Added value: +"normal"
    • addedInput schema / properties / priority / description
      Added value: +"How important: \"low\", \"normal\" (default) or \"high\"."
    • addedInput schema / properties / priority / examples
      Added value: +[
      +  "high"
      +]
    • addedInput schema / properties / project / description
      Added value: +"Planner project name to file it under, e.g. \"Garden\" or \"Sara\". Created if it doesn't exist. Up to 80 characters."
    • addedInput schema / properties / project / examples
      Added value: +[
      +  "Garden"
      +]
    • addedInput schema / properties / project / maxLength
      Added value: +80
    • addedInput schema / properties / title / description
      Added value: +"What to do, short. Up to 200 characters."
    • addedInput schema / properties / title / examples
      Added value: +[
      +  "Call the vet"
      +]
    • addedInput schema / properties / title / maxLength
      Added value: +200
    • addedInput schema / properties / title / minLength
      Added value: +1
  2. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only give a safety profile (readOnlyHint=false, destructiveHint=false); the description adds substantial behavioral detail beyond that: the exact return string and its embedded #id, the approval flow ('Waiting for approval in Sara'), the off-state response, and the 9:00 default for hourless due times. This is exactly the context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the primary alternative are front-loaded, and each sentence carries real information (ID usage, due-time default, approval modes). It is dense but slightly long with several semicolon-packed clauses, keeping it just below maximally crisp.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool gated by owner approval with no output schema, the description covers everything an agent needs: what it returns, how the ID is used downstream, the approval-gated outcomes, and the due-time interpretation. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters and their formats. The description still adds value by clarifying that a due time without an hour means 9:00 in the owner's time zone, which the schema does not state. It stops short of explaining every parameter, hence 4 rather than 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Add a new to-do to the owner's planner in Sara') plus the optional fields it supports. It explicitly distinguishes itself from update_task, so an agent can tell the create path from the edit path without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative ('Use update_task to change an existing one') and the condition that selects it. It also spells out the availability gate ('Only listed when the owner turns on...') and the approval-mode behavior, giving the agent concrete when-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.