Tool tree
gradeNot graded
get_family_briefingAnswer
Return a calm, read-only briefing of what changed, the next family shifts and any childcare issue needing attention.
View tool JSON
{
"name": "get_family_briefing",
"kind": "answer",
"impl": "imperative",
"description": "Return a calm, read-only briefing of what changed, the next family shifts and any childcare issue needing attention.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {},
"required": []
}
}get_family_scheduleAnswer
Read the demo household schedule for 31 August to 6 September 2026, including parent shifts and confirmed childcare. Never changes data.
View tool JSON
{
"name": "get_family_schedule",
"kind": "answer",
"impl": "imperative",
"description": "Read the demo household schedule for 31 August to 6 September 2026, including parent shifts and confirmed childcare. Never changes data.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {},
"required": []
}
}add_overtimeAction
Add John's overtime to the shared calendar. Changes family state. Call with confirmed=false to preview; only call with confirmed=true after John explicitly approves.
View tool JSON
{
"name": "add_overtime",
"kind": "act",
"impl": "imperative",
"description": "Add John's overtime to the shared calendar. Changes family state. Call with confirmed=false to preview; only call with confirmed=true after John explicitly approves.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"date": {
"type": "string",
"enum": [
"2026-09-01"
]
},
"start": {
"type": "string",
"enum": [
"16:00"
]
},
"end": {
"type": "string",
"enum": [
"22:00"
]
},
"confirmed": {
"type": "boolean",
"description": "True only after explicit human confirmation."
}
},
"required": [
"date",
"start",
"end",
"confirmed"
]
}
}detect_childcare_gapAction
Compare both parents' recorded commitments to check whether Ida and Arlo need childcare on Tuesday 1 September. Analysis only.
View tool JSON
{
"name": "detect_childcare_gap",
"kind": "act",
"impl": "imperative",
"description": "Compare both parents' recorded commitments to check whether Ida and Arlo need childcare on Tuesday 1 September. Analysis only.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"date": {
"type": "string",
"enum": [
"2026-09-01"
]
}
},
"required": [
"date"
]
}
}find_available_carersAnswer
Find trusted carers whose recorded availability covers a childcare gap. Returns no contact details and never changes data.
View tool JSON
{
"name": "find_available_carers",
"kind": "answer",
"impl": "imperative",
"description": "Find trusted carers whose recorded availability covers a childcare gap. Returns no contact details and never changes data.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"gap_id": {
"type": "string",
"enum": [
"gap-tue-1"
]
}
},
"required": [
"gap_id"
]
}
}preview_coverage_relayAction
Build a read-only sequential childcare request plan. Validates trusted carers, order and response window. Never contacts anyone.
View tool JSON
{
"name": "preview_coverage_relay",
"kind": "act",
"impl": "imperative",
"description": "Build a read-only sequential childcare request plan. Validates trusted carers, order and response window. Never contacts anyone.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"gap_id": {
"type": "string",
"enum": [
"gap-tue-1"
]
},
"ordered_carer_ids": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"carer-anne",
"carer-grandad",
"carer-claire"
]
}
},
"response_window_minutes": {
"type": "integer",
"minimum": 5,
"maximum": 60
}
},
"required": [
"gap_id",
"ordered_carer_ids",
"response_window_minutes"
]
}
}commit_coverage_relayAction
Start one approved sequential request Relay. Contacts only one trusted carer at a time and stops on acceptance. Call with confirmed=false to preview the consent boundary; only call with confirmed=true after John approves the entire named order and response window.
View tool JSON
{
"name": "commit_coverage_relay",
"kind": "act",
"impl": "imperative",
"description": "Start one approved sequential request Relay. Contacts only one trusted carer at a time and stops on acceptance. Call with confirmed=false to preview the consent boundary; only call with confirmed=true after John approves the entire named order and response window.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"relay_plan_id": {
"type": "string",
"enum": [
"relay-plan-tue-1"
]
},
"ordered_carer_ids": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"carer-anne",
"carer-grandad",
"carer-claire"
]
}
},
"response_window_minutes": {
"type": "integer",
"minimum": 5,
"maximum": 60
},
"idempotency_key": {
"type": "string",
"minLength": 4
},
"confirmed": {
"type": "boolean",
"description": "True only after John approves the full Relay."
}
},
"required": [
"relay_plan_id",
"ordered_carer_ids",
"response_window_minutes",
"idempotency_key",
"confirmed"
]
}
}record_childcare_responseAction
Record the active carer's stated response. A decline or timeout advances exactly once inside the approved Relay; an acceptance stops the Relay and updates the shared calendar.
View tool JSON
{
"name": "record_childcare_response",
"kind": "act",
"impl": "imperative",
"description": "Record the active carer's stated response. A decline or timeout advances exactly once inside the approved Relay; an acceptance stops the Relay and updates the shared calendar.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"request_id": {
"type": "string",
"enum": [
"request-anne-1",
"request-grandad-1",
"request-claire-1"
]
},
"response": {
"type": "string",
"enum": [
"accepted",
"declined",
"timed_out"
]
},
"response_id": {
"type": "string",
"minLength": 4,
"description": "Stable source event ID for duplicate-safe handling."
}
},
"required": [
"request_id",
"response",
"response_id"
]
}
}get_village_statusAnswer
Summarise current overtime, gap, request and childcare coverage. Never changes data.
View tool JSON
{
"name": "get_village_status",
"kind": "answer",
"impl": "imperative",
"description": "Summarise current overtime, gap, request and childcare coverage. Never changes data.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {},
"required": []
}
}reset_village_demoAction
Reset only this fictional challenge demo. Removes demo actions, so use only after an explicit request to reset.
View tool JSON
{
"name": "reset_village_demo",
"kind": "act",
"impl": "imperative",
"description": "Reset only this fictional challenge demo. Removes demo actions, so use only after an explicit request to reset.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"confirmed": {
"type": "boolean"
}
},
"required": [
"confirmed"
]
}
}prepare_rota_importAction
Validate shifts extracted from a rota image and produce a reviewable, confirmation-bound import plan. This does not change the family calendar. Re-run with corrected rows when any row needs review.
View tool JSON
{
"name": "prepare_rota_import",
"kind": "act",
"impl": "imperative",
"description": "Validate shifts extracted from a rota image and produce a reviewable, confirmation-bound import plan. This does not change the family calendar. Re-run with corrected rows when any row needs review.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"person": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Exact name of an existing household member."
},
"candidates": {
"type": "array",
"minItems": 1,
"maxItems": 31,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"sourceRowId": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"start": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
},
"end": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"sourceText": {
"type": "string",
"maxLength": 240
},
"ambiguityFlags": {
"type": "array",
"maxItems": 8,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 48
}
}
},
"required": [
"sourceRowId",
"date",
"start",
"end",
"confidence"
]
}
}
},
"required": [
"person",
"candidates"
]
}
}get_rota_import_planAnswer
Read an existing rota import preview by plan ID. Never changes the family calendar.
View tool JSON
{
"name": "get_rota_import_plan",
"kind": "answer",
"impl": "imperative",
"description": "Read an existing rota import preview by plan ID. Never changes the family calendar.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"plan_id": {
"type": "string",
"pattern": "^rota-plan-[a-f0-9]{8}$"
}
},
"required": [
"plan_id"
]
}
}commit_rota_importAction
Atomically add every ready shift from one exact reviewed plan. Call with confirmed=false first to show the human consent boundary, and confirmed=true only after explicit approval. Stale, ambiguous and invalid plans are rejected.
View tool JSON
{
"name": "commit_rota_import",
"kind": "act",
"impl": "imperative",
"description": "Atomically add every ready shift from one exact reviewed plan. Call with confirmed=false first to show the human consent boundary, and confirmed=true only after explicit approval. Stale, ambiguous and invalid plans are rejected.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"plan_id": {
"type": "string",
"pattern": "^rota-plan-[a-f0-9]{8}$"
},
"idempotency_key": {
"type": "string",
"minLength": 4,
"maxLength": 100
},
"confirmed": {
"type": "boolean",
"description": "True only after the person explicitly approves this exact plan."
}
},
"required": [
"plan_id",
"idempotency_key",
"confirmed"
]
}
}get_imported_shiftsAnswer
Read rota-scan shifts currently committed to the family calendar, including their import provenance. Never changes data.
View tool JSON
{
"name": "get_imported_shifts",
"kind": "answer",
"impl": "imperative",
"description": "Read rota-scan shifts currently committed to the family calendar, including their import provenance. Never changes data.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {},
"required": []
}
}preview_shift_patternAction
Create a read-only preview of a repeating rota such as Early, Early, Late, Late, Night, Night, Off, Off, Off, Off. Supports a cycle count, an end date, or continuing until stopped. Never changes the calendar.
View tool JSON
{
"name": "preview_shift_pattern",
"kind": "act",
"impl": "imperative",
"description": "Create a read-only preview of a repeating rota such as Early, Early, Late, Late, Night, Night, Off, Off, Off, Off. Supports a cycle count, an end date, or continuing until stopped. Never changes the calendar.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"person": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Exact name of an existing household member."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"sequence": {
"type": "array",
"minItems": 1,
"maxItems": 84,
"items": {
"type": "string",
"maxLength": 20
}
},
"definitions": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"code": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"start": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
},
"end": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
}
},
"required": [
"code",
"label",
"start",
"end"
]
}
},
"repeat_mode": {
"type": "string",
"enum": [
"cycles",
"until",
"indefinite"
]
},
"cycles": {
"type": "integer",
"minimum": 1,
"maximum": 520
},
"until_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"person",
"start_date",
"sequence",
"definitions",
"repeat_mode"
]
}
}commit_shift_patternAction
Save one exact reviewed pattern as a compact recurring rule. Call with confirmed=false to show the consent boundary and true only after explicit approval.
View tool JSON
{
"name": "commit_shift_pattern",
"kind": "act",
"impl": "imperative",
"description": "Save one exact reviewed pattern as a compact recurring rule. Call with confirmed=false to show the consent boundary and true only after explicit approval.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"plan_id": {
"type": "string",
"pattern": "^pattern-plan-[a-f0-9]{8}$"
},
"idempotency_key": {
"type": "string",
"minLength": 4,
"maxLength": 100
},
"confirmed": {
"type": "boolean"
}
},
"required": [
"plan_id",
"idempotency_key",
"confirmed"
]
}
}get_shift_patternsAnswer
Read active repeating shift rules. Never changes data.
View tool JSON
{
"name": "get_shift_patterns",
"kind": "answer",
"impl": "imperative",
"description": "Read active repeating shift rules. Never changes data.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {},
"required": []
}
}get_pattern_shiftsAnswer
Generate the visible shifts for one saved pattern and a date range of up to 366 days. Never copies or changes calendar data.
View tool JSON
{
"name": "get_pattern_shifts",
"kind": "answer",
"impl": "imperative",
"description": "Generate the visible shifts for one saved pattern and a date range of up to 366 days. Never copies or changes calendar data.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"pattern_id": {
"type": "string",
"pattern": "^pattern-[a-f0-9]{8}$"
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"pattern_id",
"from",
"to"
]
}
}preview_pattern_exceptionAction
Preview changing one occurrence in a repeating rota to another shift or a rest day. The underlying series is not changed.
View tool JSON
{
"name": "preview_pattern_exception",
"kind": "act",
"impl": "imperative",
"description": "Preview changing one occurrence in a repeating rota to another shift or a rest day. The underlying series is not changed.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"pattern_id": {
"type": "string",
"pattern": "^pattern-[a-f0-9]{8}$"
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 20,
"description": "A saved shift code, off, or a new custom code with definition."
},
"definition": {
"type": "object",
"additionalProperties": false,
"properties": {
"code": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"start": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
},
"end": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
}
},
"required": [
"code",
"label",
"start",
"end"
]
}
},
"required": [
"pattern_id",
"date",
"code"
]
}
}commit_pattern_exceptionAction
Save one exact reviewed occurrence change. Requires explicit confirmation and never rewrites the remaining series.
View tool JSON
{
"name": "commit_pattern_exception",
"kind": "act",
"impl": "imperative",
"description": "Save one exact reviewed occurrence change. Requires explicit confirmation and never rewrites the remaining series.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"plan_id": {
"type": "string",
"pattern": "^pattern-exception-[a-f0-9]{8}$"
},
"idempotency_key": {
"type": "string",
"minLength": 4,
"maxLength": 100
},
"confirmed": {
"type": "boolean"
}
},
"required": [
"plan_id",
"idempotency_key",
"confirmed"
]
}
}preview_stop_shift_patternAction
Preview stopping a repeating rota from a chosen date while preserving earlier shifts.
View tool JSON
{
"name": "preview_stop_shift_pattern",
"kind": "act",
"impl": "imperative",
"description": "Preview stopping a repeating rota from a chosen date while preserving earlier shifts.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"pattern_id": {
"type": "string",
"pattern": "^pattern-[a-f0-9]{8}$"
},
"effective_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"pattern_id",
"effective_date"
]
}
}commit_stop_shift_patternAction
Stop one exact reviewed repeating rota from a chosen date. Requires explicit confirmation.
View tool JSON
{
"name": "commit_stop_shift_pattern",
"kind": "act",
"impl": "imperative",
"description": "Stop one exact reviewed repeating rota from a chosen date. Requires explicit confirmation.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"plan_id": {
"type": "string",
"pattern": "^pattern-stop-[a-f0-9]{8}$"
},
"idempotency_key": {
"type": "string",
"minLength": 4,
"maxLength": 100
},
"confirmed": {
"type": "boolean"
}
},
"required": [
"plan_id",
"idempotency_key",
"confirmed"
]
}
}preview_pattern_editAction
Preview a reviewed replacement for one repeating rota. Choose this_and_future to preserve history, or entire_series to replace the rule from its original start. Never changes the calendar.
View tool JSON
{
"name": "preview_pattern_edit",
"kind": "act",
"impl": "imperative",
"description": "Preview a reviewed replacement for one repeating rota. Choose this_and_future to preserve history, or entire_series to replace the rule from its original start. Never changes the calendar.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"pattern_id": {
"type": "string",
"pattern": "^pattern-[a-f0-9]{8}$"
},
"scope": {
"type": "string",
"enum": [
"this_and_future",
"entire_series"
]
},
"effective_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Required for this_and_future; ignored for entire_series."
},
"sequence": {
"type": "array",
"minItems": 1,
"maxItems": 84,
"items": {
"type": "string",
"maxLength": 20
}
},
"definitions": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"code": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"start": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
},
"end": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
}
},
"required": [
"code",
"label",
"start",
"end"
]
}
},
"repeat_mode": {
"type": "string",
"enum": [
"cycles",
"until",
"indefinite"
]
},
"cycles": {
"type": "integer",
"minimum": 1,
"maximum": 520
},
"until_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"pattern_id",
"scope",
"sequence",
"definitions",
"repeat_mode"
]
}
}commit_pattern_editAction
Save one exact reviewed pattern edit. Requires explicit confirmation and preserves earlier shifts when scope is this_and_future.
View tool JSON
{
"name": "commit_pattern_edit",
"kind": "act",
"impl": "imperative",
"description": "Save one exact reviewed pattern edit. Requires explicit confirmation and preserves earlier shifts when scope is this_and_future.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"plan_id": {
"type": "string",
"pattern": "^pattern-edit-[a-f0-9]{8}$"
},
"idempotency_key": {
"type": "string",
"minLength": 4,
"maxLength": 100
},
"confirmed": {
"type": "boolean"
}
},
"required": [
"plan_id",
"idempotency_key",
"confirmed"
]
}
}