Create a goal
goalslot_create_goalCreates a new goal on the user's account using title, category, and target hours. Supports optional color, deadline, labels, and description.
Instructions
WRITES. Creates a new goal on the user's account. category must be a value string from get_context.categories[].value, not a display name. targetHours is the one field measured in HOURS; everything else in this server is minutes. Creating a goal counts against the plan limit reported by get_context. If the account is at its limit this returns PLAN_LIMIT, so check the limit before calling rather than after. Confirm the title, category and target with the user before calling. Do not invent goals from an offhand remark.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | Optional hex color such as #3B82F6. | |
| title | Yes | Short goal name, for example "Ship the CLI". | |
| labels | No | Optional labels to attach, as {name, color}. Labels are created if they do not exist. | |
| category | Yes | A category value string, not a display name and not an id. It must be one of the values from get_context.categories[].value, for example DEEP_WORK or LEARNING. An unknown value does not error, it silently produces an uncategorized record, so read get_context first. | |
| deadline | No | Optional target date for finishing the goal. Calendar date as YYYY-MM-DD, for example 2026-08-25, interpreted in the user's timezone (get_context.timezone). Never include a time or a Z suffix. Use get_context.today rather than assuming what today is. | |
| description | No | Optional longer description. | |
| targetHours | Yes | Target effort in HOURS, minimum 1. This is the only field in hours; time entries and estimates are in minutes. |