log_cycle
Log menstrual cycle dates, inferring start/end from context and verifying tracking consent before recording.
Instructions
Log a period to the user's cycle log. Handles all cases:
Starting a period today: "my period started today"
Backfilling a past period: "my period started May 3rd and ended May 8th"
Resuming a period ended today: "actually I'm still on my period" — detects that today's period was marked ended and reopens it
Logging just a start with no end yet: "I just got my period"
Before logging, check that cycle tracking is enabled (cycle_prefs.tracking_enabled AND consented_at, both required -- a user can have consented in the past and later turned tracking off). If not, tell the user to turn it on from the dashboard first.
INFER — do not ask:
started_on: default to today for current-period statements
ended_on: omit unless the user says it ended; infer from context ("5-day period starting May 3" → ended_on May 7)
Do NOT use this tool to log future dates.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ended_on | No | Period end date. Format: YYYY-MM-DD. Omit if period is still active. | |
| started_on | Yes | Period start date. Format: YYYY-MM-DD. Required. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes | Human-readable result text returned by the tool. |