What this MCP does
Manages private family schedules, plans, tasks, recurring responsibilities, checklists, attachments, household members, and availability.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetType', 'targetId'], 'properties': {'width': {'type': 'integer', 'description': 'Optional image width in pixels.', 'exclusiveMinimum': 0}, 'height': {'type': 'integer', 'description': 'Optional image height in pixels.', 'exclusiveMinimum': 0}, 'dataUrl': {'type': 'string', 'description': 'Image data URL, e.g. data:image/png;base64,...'}, 'fileName': {'type': 'string', 'maxLength': 160, 'description': 'Optional image filename shown in attachment metadata.'}, 'mimeType': {'enum': ['image/jpeg', 'image/png', 'image/webp'], 'type': 'string', 'description': 'Required when base64Data is provided without a dataUrl.'}, 'targetId': {'type': 'string', 'minLength': 1, 'description': 'Task id when targetType is task, or plan item id when targetType is plan.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone used by the backend request.'}, 'base64Data': {'type': 'string', 'description': 'Raw base64 image bytes when dataUrl is not provided.'}, 'targetType': {'enum': ['task', 'plan'], 'type': 'string', 'description': 'Type of Familia item that should receive the image.'}, 'replaceExistingPhoto': {'type': 'boolean', 'description': 'When true, replaces the latest existing photo attachment for the target.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['attachmentId'], 'properties': {'link': {'type': 'string'}, 'targetId': {'type': 'string'}, 'attachment': {'type': 'object', 'required': ['attachmentId', 'targetType', 'targetId', 'type', 'status', 'mimeType', 'fileName', 'byteSize', 'createdByUserId', 'createdAt', 'updatedAt', 'contentUrl', 'contentUrlRequiresAuthentication', 'expiresAt'], 'properties': {'type': {'type': 'string'}, 'width': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'status': {'type': 'string'}, 'byteSize': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'fileName': {'type': ['string', 'null']}, 'mimeType': {'type': ['string', 'null']}, 'targetId': {'type': ['string', 'null']}, 'todoList': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': True}, {'type': 'null'}]}, 'createdAt': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'contentUrl': {'type': ['string', 'null']}, 'targetType': {'anyOf': [{'enum': ['task', 'plan'], 'type': 'string'}, {'type': 'null'}]}, 'attachmentId': {'type': 'string'}, 'createdByUserId': {'type': ['string', 'null']}, 'contentUrlRequiresAuthentication': {'type': 'boolean'}}, 'additionalProperties': True}, 'targetType': {'enum': ['task', 'plan'], 'type': 'string'}, 'attachmentId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operations'], 'properties': {'timezone': {'type': 'string', 'description': 'Default IANA timezone for operations that omit their own timezone.'}, 'operations': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['action', 'householdId', 'title'], 'properties': {'dueAt': {'type': 'string'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'action': {'type': 'string', 'const': 'create_task'}, 'allDay': {'type': 'boolean'}, 'timezone': {'type': 'string'}, 'todoList': {'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'id': {'type': 'string', 'maxLength': 64}, 'done': {'type': 'boolean'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'subtasks': {'type': 'array', 'items': {'$ref': '#/properties/operations/items/anyOf/0/properties/todoList/properties/items/items'}, 'maxItems': 100}}, 'additionalProperties': False}, 'maxItems': 250, 'minItems': 1}, 'title': {'type': 'string', 'maxLength': 120}}, 'additionalProperties': False}, 'repeatRule': {'type': 'string', 'maxLength': 500, 'description': 'Optional RFC 5545 RRULE, e.g. FREQ=DAILY;INTERVAL=2 or FREQ=WEEKLY;BYDAY=MO,WE. Use this when the user says the same task or plan repeats across days, weeks, or months; create one recurring schedule instead of multiple one-time items unless each occurrence has different content. Requires the first dueAt/startAt as the anchor.'}, 'description': {'type': 'string', 'maxLength': 2000}, 'householdId': {'type': 'string', 'minLength': 1}, 'leadMinutes': {'type': 'integer', 'maximum': 10080, 'minimum': 0}, 'ownerUserId': {'type': 'string'}, 'assigneeUserId': {'type': 'string'}, 'idempotencyKey': {'type': 'string', 'maxLength': 160, 'minLength': 1, 'description': 'Optional stable retry key. Reusing the same key for the same create operation returns the original result instead of creating a duplicate.'}, 'recurrenceEndDate': {'type': 'string', 'description': 'Optional YYYY-MM-DD end date for a recurring schedule. Use this for bounded repeats such as "this week", "for three days", or "until Sunday".'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action', 'householdId', 'title', 'items'], 'properties': {'dueAt': {'type': 'string'}, 'items': {'type': 'array', 'items': {'$ref': '#/properties/operations/items/anyOf/0/properties/todoList/properties/items/items'}, 'maxItems': 250, 'minItems': 1}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'action': {'type': 'string', 'const': 'create_list_task'}, 'allDay': {'type': 'boolean'}, 'timezone': {'type': 'string'}, 'listTitle': {'type': 'string', 'maxLength': 120}, 'repeatRule': {'type': 'string', 'maxLength': 500, 'description': 'Optional RFC 5545 RRULE, e.g. FREQ=DAILY;INTERVAL=2 or FREQ=WEEKLY;BYDAY=MO,WE. Use this when the user says the same task or plan repeats across days, weeks, or months; create one recurring schedule instead of multiple one-time items unless each occurrence has different content. Requires the first dueAt/startAt as the anchor.'}, 'description': {'type': 'string', 'maxLength': 2000}, 'householdId': {'type': 'string', 'minLength': 1}, 'leadMinutes': {'type': 'integer', 'maximum': 10080, 'minimum': 0}, 'ownerUserId': {'type': 'string'}, 'assigneeUserId': {'type': 'string'}, 'idempotencyKey': {'$ref': '#/properties/operations/items/anyOf/0/properties/idempotencyKey'}, 'recurrenceEndDate': {'type': 'string', 'description': 'Optional YYYY-MM-DD end date for a recurring schedule. Use this for bounded repeats such as "this week", "for three days", or "until Sunday".'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action', 'householdId', 'title'], 'properties': {'kind': {'enum': ['event', 'birthday', 'name_day', 'school', 'activity', 'care', 'travel', 'holiday', 'chore', 'checklist', 'other'], 'type': 'string'}, 'endAt': {'type': 'string'}, 'notes': {'type': 'string', 'maxLength': 2000}, 'rrule': {'type': 'string', 'maxLength': 500, 'description': 'Optional RFC 5545 RRULE, e.g. FREQ=DAILY;INTERVAL=2 or FREQ=WEEKLY;BYDAY=MO,WE. Use this when the user says the same task or plan repeats across days, weeks, or months; create one recurring schedule instead of multiple one-time items unless each occurrence has different content. Requires the first dueAt/startAt as the anchor.'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'action': {'type': 'string', 'const': 'create_plan'}, 'allDay': {'type': 'boolean'}, 'startAt': {'type': 'string'}, 'location': {'type': 'string', 'maxLength': 300}, 'timezone': {'type': 'string'}, 'householdId': {'type': 'string', 'minLength': 1}, 'agreementIds': {'type': 'array', 'items': {'type': 'string'}}, 'relatedTasks': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'dueAt': {'type': 'string', 'description': 'Accepts YYYY-MM-DD for all-day items or an RFC 3339 datetime. When using a datetime without an offset, provide timezone.'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Short title for one distinct related action, e.g. "Leave for Prague Airport" or "Outbound flight".'}, 'allDay': {'type': 'boolean', 'description': 'Whether this related task is all-day.'}, 'repeatRule': {'type': 'string', 'maxLength': 500, 'description': 'Optional RFC 5545 RRULE, e.g. FREQ=DAILY;INTERVAL=2 or FREQ=WEEKLY;BYDAY=MO,WE. Use this when the user says the same task or plan repeats across days, weeks, or months; create one recurring schedule instead of multiple one-time items unless each occurrence has different content. Requires the first dueAt/startAt as the anchor.'}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Optional details for this one related action.'}, 'leadMinutes': {'type': 'integer', 'maximum': 10080, 'minimum': 0, 'description': 'Reminder lead time in minutes before dueAt. Defaults to 0.'}, 'ownerUserId': {'type': 'string', 'description': 'Optional Familia user id that owns this related task.'}, 'assigneeUserId': {'type': 'string', 'description': 'Optional Familia user id responsible for this related task.'}, 'idempotencyKey': {'$ref': '#/properties/operations/items/anyOf/0/properties/idempotencyKey'}, 'recurrenceEndDate': {'type': 'string', 'description': 'Optional YYYY-MM-DD end date for a recurring schedule. Use this for bounded repeats such as "this week", "for three days", or "until Sunday".'}}, 'additionalProperties': False}, 'maxItems': 20}, 'idempotencyKey': {'$ref': '#/properties/operations/items/anyOf/0/properties/idempotencyKey'}, 'recurrenceEndDate': {'type': 'string', 'description': 'Optional YYYY-MM-DD end date for a recurring schedule. Use this for bounded repeats such as "this week", "for three days", or "until Sunday".'}, 'participantUserIds': {'type': 'array', 'items': {'type': 'string'}}, 'requiresConfirmation': {'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action', 'agreementId'], 'properties': {'dueAt': {'type': ['string', 'null']}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'action': {'type': 'string', 'const': 'update_task'}, 'status': {'enum': ['active', 'done', 'cancelled', 'pending', 'rejected'], 'type': 'string'}, 'timezone': {'type': 'string'}, 'repeatRule': {'type': ['string', 'null']}, 'agreementId': {'type': 'string', 'minLength': 1}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'null'}]}, 'ownerUserId': {'type': ['string', 'null']}, 'assigneeUserId': {'type': ['string', 'null']}, 'visibleToHousehold': {'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action', 'agreementId'], 'properties': {'action': {'type': 'string', 'const': 'cancel_task'}, 'timezone': {'type': 'string'}, 'agreementId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action', 'agreementId'], 'properties': {'action': {'type': 'string', 'const': 'delete_task'}, 'timezone': {'type': 'string'}, 'agreementId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action', 'targetType', 'targetId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'$ref': '#/properties/operations/items/anyOf/0/properties/todoList/properties/items/items'}, 'maxItems': 250, 'minItems': 1}, 'title': {'type': 'string', 'maxLength': 120}, 'action': {'type': 'string', 'const': 'create_todo_list_attachment'}, 'targetId': {'type': 'string', 'minLength': 1}, 'timezone': {'type': 'string'}, 'targetType': {'enum': ['task', 'plan'], 'type': 'string'}}, 'additionalProperties': False}]}, 'maxItems': 20, 'minItems': 1, 'description': 'Ordered write operations to run. Later operations cannot reference IDs created by earlier operations in the same batch unless the user already provided those IDs.'}, 'idempotencyKey': {'$ref': '#/properties/operations/items/anyOf/0/properties/idempotencyKey'}, 'continueOnError': {'type': 'boolean', 'default': False, 'description': 'When true, continue after a failed operation and return partial-success results. Defaults to false.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['count', 'succeeded', 'failed', 'results'], 'properties': {'count': {'type': 'integer'}, 'failed': {'type': 'integer'}, 'results': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': True}}, 'succeeded': {'type': 'integer'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agreementId'], 'properties': {'timezone': {'type': 'string', 'description': 'IANA timezone used by the backend request.'}, 'agreementId': {'type': 'string', 'minLength': 1, 'description': 'Familia task id to cancel. This field is named agreementId for legacy backend compatibility.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agreementId', 'deleted', 'link'], 'properties': {'link': {'type': 'string'}, 'status': {'type': 'string'}, 'taskId': {'type': 'string'}, 'deleted': {'type': 'boolean'}, 'agreementId': {'type': 'string'}, 'deletionType': {'enum': ['soft', 'hard'], 'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetType', 'targetId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'id': {'type': 'string', 'maxLength': 64}, 'done': {'type': 'boolean'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'subtasks': {'type': 'array', 'items': {'$ref': '#/properties/items/items'}, 'maxItems': 100}}, 'additionalProperties': False}, 'maxItems': 250, 'minItems': 1, 'description': 'Checklist/list items to attach. Supports nested subtasks.'}, 'title': {'type': 'string', 'maxLength': 120, 'description': 'Optional title shown on the attached checklist/list.'}, 'targetId': {'type': 'string', 'minLength': 1, 'description': 'Task id when targetType is task, or plan item id when targetType is plan.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone used by the backend request.'}, 'targetType': {'enum': ['task', 'plan'], 'type': 'string', 'description': 'Type of Familia item that should receive the list.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['attachmentId'], 'properties': {'link': {'type': 'string'}, 'targetId': {'type': 'string'}, 'attachment': {'type': 'object', 'required': ['attachmentId', 'targetType', 'targetId', 'type', 'status', 'mimeType', 'fileName', 'byteSize', 'createdByUserId', 'createdAt', 'updatedAt', 'contentUrl', 'contentUrlRequiresAuthentication', 'expiresAt'], 'properties': {'type': {'type': 'string'}, 'width': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'status': {'type': 'string'}, 'byteSize': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'fileName': {'type': ['string', 'null']}, 'mimeType': {'type': ['string', 'null']}, 'targetId': {'type': ['string', 'null']}, 'todoList': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': True}, {'type': 'null'}]}, 'createdAt': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'contentUrl': {'type': ['string', 'null']}, 'targetType': {'anyOf': [{'enum': ['task', 'plan'], 'type': 'string'}, {'type': 'null'}]}, 'attachmentId': {'type': 'string'}, 'createdByUserId': {'type': ['string', 'null']}, 'contentUrlRequiresAuthentication': {'type': 'boolean'}}, 'additionalProperties': True}, 'targetType': {'enum': ['task', 'plan'], 'type': 'string'}, 'attachmentId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['householdId', 'title', 'items'], 'properties': {'dueAt': {'type': 'string', 'description': 'Accepts YYYY-MM-DD for all-day items or an RFC 3339 datetime. When using a datetime without an offset, provide timezone.'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'id': {'type': 'string', 'maxLength': 64}, 'done': {'type': 'boolean'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'subtasks': {'type': 'array', 'items': {'$ref': '#/properties/items/items'}, 'maxItems': 100}}, 'additionalProperties': False}, 'maxItems': 250, 'minItems': 1, 'description': 'Checklist items to attach to the new task. Supports nested subtasks.'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Task title, e.g. â\x80\x9cGroceriesâ\x80\x9d or â\x80\x9cPack for tripâ\x80\x9d.'}, 'allDay': {'type': 'boolean', 'description': 'Whether the due date is an all-day task.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone for dueAt, e.g. Europe/Prague.'}, 'listTitle': {'type': 'string', 'maxLength': 120, 'description': 'Optional title shown on the attached list. Defaults to the task title.'}, 'repeatRule': {'type': 'string', 'maxLength': 500, 'description': 'Optional RFC 5545 RRULE, e.g. FREQ=DAILY;INTERVAL=2 or FREQ=WEEKLY;BYDAY=MO,WE. Use this when the user says the same task or plan repeats across days, weeks, or months; create one recurring schedule instead of multiple one-time items unless each occurrence has different content. Requires the first dueAt/startAt as the anchor.'}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Optional task details, notes, or context.'}, 'householdId': {'type': 'string', 'minLength': 1, 'description': 'Familia household id where the list task should be created.'}, 'leadMinutes': {'type': 'integer', 'maximum': 10080, 'minimum': 0, 'description': 'Reminder lead time in minutes before dueAt. Defaults to 0.'}, 'ownerUserId': {'type': 'string', 'description': 'Optional Familia user id that owns the task.'}, 'assigneeUserId': {'type': 'string', 'description': 'Optional Familia user id responsible for the task.'}, 'idempotencyKey': {'type': 'string', 'maxLength': 160, 'minLength': 1, 'description': 'Optional stable retry key. Reusing the same key for the same create operation returns the original result instead of creating a duplicate.'}, 'recurrenceEndDate': {'type': 'string', 'description': 'Optional YYYY-MM-DD end date for a recurring schedule. Use this for bounded repeats such as "this week", "for three days", or "until Sunday".'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agreementId', 'deeplink'], 'properties': {'taskId': {'type': 'string'}, 'deeplink': {'type': 'string'}, 'schedule': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'agreementId': {'type': 'string'}, 'attachmentError': {'type': 'string'}, 'attachmentCreated': {'type': 'boolean'}, 'todoListAttachment': {'anyOf': [{'type': 'object', 'required': ['attachmentId', 'targetType', 'targetId', 'type', 'status', 'mimeType', 'fileName', 'byteSize', 'createdByUserId', 'createdAt', 'updatedAt', 'contentUrl', 'contentUrlRequiresAuthentication', 'expiresAt'], 'properties': {'type': {'type': 'string'}, 'width': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'status': {'type': 'string'}, 'byteSize': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'fileName': {'type': ['string', 'null']}, 'mimeType': {'type': ['string', 'null']}, 'targetId': {'type': ['string', 'null']}, 'todoList': {'anyOf': [{'$ref': '#/properties/schedule'}, {'type': 'null'}]}, 'createdAt': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'contentUrl': {'type': ['string', 'null']}, 'targetType': {'anyOf': [{'enum': ['task', 'plan'], 'type': 'string'}, {'type': 'null'}]}, 'attachmentId': {'type': 'string'}, 'createdByUserId': {'type': ['string', 'null']}, 'contentUrlRequiresAuthentication': {'type': 'boolean'}}, 'additionalProperties': True}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['householdId', 'title'], 'properties': {'kind': {'enum': ['event', 'birthday', 'name_day', 'school', 'activity', 'care', 'travel', 'holiday', 'chore', 'checklist', 'other'], 'type': 'string', 'description': 'Plan category. Use event when no more specific category fits.'}, 'endAt': {'type': 'string', 'description': 'Optional ISO datetime.'}, 'notes': {'type': 'string', 'maxLength': 2000, 'description': 'Optional plan notes or context. Do not use notes as the only place for separate dated actions; use relatedTasks for each distinct action with its own date or time.'}, 'rrule': {'type': 'string', 'maxLength': 500, 'description': 'Optional RFC 5545 RRULE, e.g. FREQ=DAILY;INTERVAL=2 or FREQ=WEEKLY;BYDAY=MO,WE. Use this when the user says the same task or plan repeats across days, weeks, or months; create one recurring schedule instead of multiple one-time items unless each occurrence has different content. Requires the first dueAt/startAt as the anchor.'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Short plan title, e.g. "School concert" or "Long weekend trip".'}, 'allDay': {'type': 'boolean', 'description': 'Whether the plan is all-day.'}, 'startAt': {'type': 'string', 'description': 'Optional ISO datetime.'}, 'location': {'type': 'string', 'maxLength': 300, 'description': 'Optional location, venue, or address.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone for startAt/endAt, e.g. Europe/Prague.'}, 'householdId': {'type': 'string', 'minLength': 1, 'description': 'Familia household id where the plan should be created.'}, 'agreementIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional existing related task ids to link to the plan.'}, 'relatedTasks': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'dueAt': {'type': 'string', 'description': 'Accepts YYYY-MM-DD for all-day items or an RFC 3339 datetime. When using a datetime without an offset, provide timezone.'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Short title for one distinct related action, e.g. "Leave for Prague Airport" or "Outbound flight".'}, 'allDay': {'type': 'boolean', 'description': 'Whether this related task is all-day.'}, 'repeatRule': {'type': 'string', 'maxLength': 500, 'description': 'Optional RFC 5545 RRULE, e.g. FREQ=DAILY;INTERVAL=2 or FREQ=WEEKLY;BYDAY=MO,WE. Use this when the user says the same task or plan repeats across days, weeks, or months; create one recurring schedule instead of multiple one-time items unless each occurrence has different content. Requires the first dueAt/startAt as the anchor.'}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Optional details for this one related action.'}, 'leadMinutes': {'type': 'integer', 'maximum': 10080, 'minimum': 0, 'description': 'Reminder lead time in minutes before dueAt. Defaults to 0.'}, 'ownerUserId': {'type': 'string', 'description': 'Optional Familia user id that owns this related task.'}, 'assigneeUserId': {'type': 'string', 'description': 'Optional Familia user id responsible for this related task.'}, 'idempotencyKey': {'type': 'string', 'maxLength': 160, 'minLength': 1, 'description': 'Optional stable retry key. Reusing the same key for the same create operation returns the original result instead of creating a duplicate.'}, 'recurrenceEndDate': {'type': 'string', 'description': 'Optional YYYY-MM-DD end date for a recurring schedule. Use this for bounded repeats such as "this week", "for three days", or "until Sunday".'}}, 'additionalProperties': False}, 'maxItems': 20, 'description': 'Optional new tasks to create and link to this plan. Use one related task per distinct dated or timed action, such as leaving for an airport, outbound flight, return flight, pickup, packing, or check-in.'}, 'idempotencyKey': {'$ref': '#/properties/relatedTasks/items/properties/idempotencyKey'}, 'recurrenceEndDate': {'type': 'string', 'description': 'Optional YYYY-MM-DD end date for a recurring schedule. Use this for bounded repeats such as "this week", "for three days", or "until Sunday".'}, 'participantUserIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional Familia user ids participating in the plan.'}, 'requiresConfirmation': {'type': 'boolean', 'description': 'Whether participants should confirm coverage or attendance.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['planItemId', 'occurrenceIds', 'link'], 'properties': {'link': {'type': 'string'}, 'schedule': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'planItemId': {'type': 'string'}, 'relatedTasks': {'type': 'array', 'items': {'$ref': '#/properties/schedule'}}, 'occurrenceIds': {'type': 'array', 'items': {'type': 'string'}}, 'relatedTaskIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['householdId', 'title'], 'properties': {'dueAt': {'type': 'string', 'description': 'Accepts YYYY-MM-DD for all-day items or an RFC 3339 datetime. When using a datetime without an offset, provide timezone.'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Short task title, e.g. "Pay school fee" or "Take bins out".'}, 'allDay': {'type': 'boolean', 'description': 'Whether the due date is an all-day task.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone for dueAt, e.g. Europe/Prague.'}, 'todoList': {'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'id': {'type': 'string', 'maxLength': 64}, 'done': {'type': 'boolean'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'subtasks': {'type': 'array', 'items': {'$ref': '#/properties/todoList/properties/items/items'}, 'maxItems': 100}}, 'additionalProperties': False}, 'maxItems': 250, 'minItems': 1}, 'title': {'type': 'string', 'maxLength': 120}}, 'description': 'Optional checklist/list to attach to the created task.', 'additionalProperties': False}, 'repeatRule': {'type': 'string', 'maxLength': 500, 'description': 'Optional RFC 5545 RRULE, e.g. FREQ=DAILY;INTERVAL=2 or FREQ=WEEKLY;BYDAY=MO,WE. Use this when the user says the same task or plan repeats across days, weeks, or months; create one recurring schedule instead of multiple one-time items unless each occurrence has different content. Requires the first dueAt/startAt as the anchor.'}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Optional task details, notes, or context.'}, 'householdId': {'type': 'string', 'minLength': 1, 'description': 'Familia household id where the task should be created.'}, 'leadMinutes': {'type': 'integer', 'maximum': 10080, 'minimum': 0, 'description': 'Reminder lead time in minutes before dueAt. Defaults to 0.'}, 'ownerUserId': {'type': 'string', 'description': 'Optional Familia user id that owns the task.'}, 'assigneeUserId': {'type': 'string', 'description': 'Optional Familia user id responsible for the task.'}, 'idempotencyKey': {'type': 'string', 'maxLength': 160, 'minLength': 1, 'description': 'Optional stable retry key. Reusing the same key for the same create operation returns the original result instead of creating a duplicate.'}, 'recurrenceEndDate': {'type': 'string', 'description': 'Optional YYYY-MM-DD end date for a recurring schedule. Use this for bounded repeats such as "this week", "for three days", or "until Sunday".'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agreementId', 'deeplink'], 'properties': {'taskId': {'type': 'string'}, 'deeplink': {'type': 'string'}, 'schedule': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'agreementId': {'type': 'string'}, 'attachmentError': {'type': 'string'}, 'attachmentCreated': {'type': 'boolean'}, 'todoListAttachment': {'anyOf': [{'type': 'object', 'required': ['attachmentId', 'targetType', 'targetId', 'type', 'status', 'mimeType', 'fileName', 'byteSize', 'createdByUserId', 'createdAt', 'updatedAt', 'contentUrl', 'contentUrlRequiresAuthentication', 'expiresAt'], 'properties': {'type': {'type': 'string'}, 'width': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'status': {'type': 'string'}, 'byteSize': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'fileName': {'type': ['string', 'null']}, 'mimeType': {'type': ['string', 'null']}, 'targetId': {'type': ['string', 'null']}, 'todoList': {'anyOf': [{'$ref': '#/properties/schedule'}, {'type': 'null'}]}, 'createdAt': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'contentUrl': {'type': ['string', 'null']}, 'targetType': {'anyOf': [{'enum': ['task', 'plan'], 'type': 'string'}, {'type': 'null'}]}, 'attachmentId': {'type': 'string'}, 'createdByUserId': {'type': ['string', 'null']}, 'contentUrlRequiresAuthentication': {'type': 'boolean'}}, 'additionalProperties': True}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['attachmentId'], 'properties': {'timezone': {'type': 'string', 'description': 'IANA timezone used by the backend request.'}, 'attachmentId': {'type': 'string', 'minLength': 1, 'description': 'Familia attachment id to delete.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['attachmentId', 'deleted'], 'properties': {'deleted': {'type': 'boolean'}, 'attachmentId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['planItemId'], 'properties': {'timezone': {'type': 'string', 'description': 'IANA timezone used by the backend request.'}, 'planItemId': {'type': 'string', 'minLength': 1, 'description': 'Familia plan item id to delete or cancel.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['planItemId', 'link'], 'properties': {'link': {'type': 'string'}, 'deleted': {'type': 'boolean'}, 'planItemId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agreementId'], 'properties': {'timezone': {'type': 'string', 'description': 'IANA timezone used by the backend request.'}, 'agreementId': {'type': 'string', 'minLength': 1, 'description': 'Familia task id to permanently delete. This field is named agreementId for legacy backend compatibility.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agreementId', 'deleted', 'link'], 'properties': {'link': {'type': 'string'}, 'status': {'type': 'string'}, 'taskId': {'type': 'string'}, 'deleted': {'type': 'boolean'}, 'agreementId': {'type': 'string'}, 'deletionType': {'enum': ['soft', 'hard'], 'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 8, 'maximum': 20, 'minimum': 1, 'description': 'Maximum number of free-day runs to return. Defaults to 8.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone used for day boundaries, e.g. Europe/Prague.'}, 'startDate': {'type': 'string', 'description': 'YYYY-MM-DD or ISO datetime. Defaults to today.'}, 'busyEndHour': {'type': 'integer', 'maximum': 24, 'minimum': 1, 'description': 'End hour of the day window to consider busy. Defaults to 24.'}, 'horizonDays': {'type': 'integer', 'default': 120, 'maximum': 366, 'minimum': 1, 'description': 'How many days to scan forward from startDate. Defaults to 120.'}, 'householdId': {'type': 'string', 'description': 'Optional Familia household id. Omit to use all accessible households.'}, 'busyStartHour': {'type': 'integer', 'maximum': 23, 'minimum': 0, 'description': 'Start hour of the day window to consider busy. Defaults to 0.'}, 'blockingPolicy': {'enum': ['availability', 'strict'], 'type': 'string', 'default': 'availability', 'description': 'availability ignores soft reminders such as chores, checklists, birthdays/name days and ordinary tasks; strict treats any timeline item as busy.'}, 'consecutiveDays': {'type': 'integer', 'default': 4, 'maximum': 31, 'minimum': 1, 'description': 'Required length of each free-day run. Defaults to 4.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['startDate', 'horizonDays', 'consecutiveDays', 'timezone', 'blockingPolicy', 'securityNotice', 'count', 'runs', 'caveat'], 'properties': {'runs': {'type': 'array', 'items': {'type': 'object', 'required': ['startDate', 'endDate', 'days'], 'properties': {'days': {'type': 'array', 'items': {'type': 'string'}}, 'link': {'type': 'string'}, 'endDate': {'type': 'string'}, 'startDate': {'type': 'string'}}, 'additionalProperties': True}}, 'count': {'type': 'integer'}, 'caveat': {'type': 'string'}, 'timezone': {'type': 'string'}, 'startDate': {'type': 'string'}, 'horizonDays': {'type': 'integer'}, 'blockingPolicy': {'enum': ['availability', 'strict'], 'type': 'string'}, 'securityNotice': {'type': 'string'}, 'consecutiveDays': {'type': 'integer'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'date': {'type': 'string', 'description': 'Date as YYYY-MM-DD, ISO datetime, or omitted for today in the selected timezone.'}, 'endAt': {'type': 'string', 'description': 'Optional ISO datetime for a narrower time window. Defaults to one hour after startAt.'}, 'startAt': {'type': 'string', 'description': 'Optional ISO datetime for a narrower time window.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone, defaults to ASYNQ_TIMEZONE or the local runtime timezone.'}, 'householdId': {'type': 'string', 'description': 'Optional Familia household id. Omit to aggregate across all accessible memberships.'}, 'includeCompleted': {'type': 'boolean', 'description': 'Include completed tasks when looking through history.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['date', 'timezone', 'securityNotice', 'window', 'householdId', 'count', 'counts', 'overdueSummary', 'items', 'links'], 'properties': {'date': {'type': 'string'}, 'count': {'type': 'integer'}, 'items': {'type': 'array', 'items': {'$ref': '#/properties/counts'}}, 'links': {'type': 'object', 'required': ['webDay'], 'properties': {'webDay': {'type': 'string'}}, 'additionalProperties': False}, 'counts': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'intent': {'type': 'string'}, 'window': {'anyOf': [{'type': 'object', 'required': ['startAt', 'endAt'], 'properties': {'endAt': {'type': 'string'}, 'startAt': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'timezone': {'type': 'string'}, 'householdId': {'type': ['string', 'null']}, 'overdueSummary': {'$ref': '#/properties/counts'}, 'securityNotice': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of attention items to return. Defaults to 20.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone, e.g. Europe/Prague. Defaults to ASYNQ_TIMEZONE or runtime timezone.'}, 'householdId': {'type': 'string', 'description': 'Optional Familia household id. Omit to use all accessible households.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['date', 'timezone', 'householdId', 'count', 'items', 'categories'], 'properties': {'date': {'type': 'string'}, 'count': {'type': 'integer'}, 'items': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': True}}, 'timezone': {'type': 'string'}, 'categories': {'$ref': '#/properties/items/items'}, 'householdId': {'type': ['string', 'null']}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 20, 'minimum': 1, 'description': 'Maximum number of upcoming items to return. Defaults to 5.'}, 'scope': {'enum': ['personal', 'household'], 'type': 'string', 'default': 'personal', 'description': 'Use personal for â\x80\x9cmyâ\x80\x9d, â\x80\x9cfor meâ\x80\x9d, or â\x80\x9cwhat should I doâ\x80\x9d; use household for family-wide next items.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone, e.g. Europe/Prague. Defaults to ASYNQ_TIMEZONE or runtime timezone.'}, 'householdId': {'type': 'string', 'description': 'Optional Familia household id. Omit to use all accessible households.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['now', 'timezone', 'scope', 'currentUserId', 'householdId', 'overdueSummary', 'count', 'items'], 'properties': {'now': {'type': 'string'}, 'count': {'type': 'integer'}, 'items': {'type': 'array', 'items': {'$ref': '#/properties/overdueSummary'}}, 'scope': {'enum': ['personal', 'household'], 'type': 'string'}, 'timezone': {'type': 'string'}, 'householdId': {'type': ['string', 'null']}, 'currentUserId': {'type': ['string', 'null']}, 'overdueSummary': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'otherHouseholdItems': {'type': 'array', 'items': {'$ref': '#/properties/overdueSummary'}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'timezone': {'type': 'string', 'description': 'IANA timezone, e.g. Europe/Prague. Defaults to ASYNQ_TIMEZONE or runtime timezone.'}, 'householdId': {'type': 'string', 'description': 'Optional Familia household id. Omit to use all accessible households.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['date', 'timezone', 'securityNotice', 'window', 'householdId', 'count', 'counts', 'overdueSummary', 'items', 'links'], 'properties': {'date': {'type': 'string'}, 'count': {'type': 'integer'}, 'items': {'type': 'array', 'items': {'$ref': '#/properties/counts'}}, 'links': {'type': 'object', 'required': ['webDay'], 'properties': {'webDay': {'type': 'string'}}, 'additionalProperties': False}, 'counts': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'intent': {'type': 'string'}, 'window': {'anyOf': [{'type': 'object', 'required': ['startAt', 'endAt'], 'properties': {'endAt': {'type': 'string'}, 'startAt': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'timezone': {'type': 'string'}, 'householdId': {'type': ['string', 'null']}, 'overdueSummary': {'$ref': '#/properties/counts'}, 'securityNotice': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'timezone': {'type': 'string', 'description': 'IANA timezone, e.g. Europe/Prague. Defaults to ASYNQ_TIMEZONE or runtime timezone.'}, 'householdId': {'type': 'string', 'description': 'Optional Familia household id. Omit to use all accessible households.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['date', 'timezone', 'securityNotice', 'window', 'householdId', 'count', 'counts', 'overdueSummary', 'items', 'links'], 'properties': {'date': {'type': 'string'}, 'count': {'type': 'integer'}, 'items': {'type': 'array', 'items': {'$ref': '#/properties/counts'}}, 'links': {'type': 'object', 'required': ['webDay'], 'properties': {'webDay': {'type': 'string'}}, 'additionalProperties': False}, 'counts': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'intent': {'type': 'string'}, 'window': {'anyOf': [{'type': 'object', 'required': ['startAt', 'endAt'], 'properties': {'endAt': {'type': 'string'}, 'startAt': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'timezone': {'type': 'string'}, 'householdId': {'type': ['string', 'null']}, 'overdueSummary': {'$ref': '#/properties/counts'}, 'securityNotice': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'default': 7, 'maximum': 14, 'minimum': 1, 'description': 'Number of days to include, from 1 to 14. Defaults to 7.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone, e.g. Europe/Prague. Defaults to ASYNQ_TIMEZONE or runtime timezone.'}, 'startDate': {'type': 'string', 'description': 'YYYY-MM-DD or ISO datetime. Defaults to today.'}, 'householdId': {'type': 'string', 'description': 'Optional Familia household id. Omit to use all accessible households.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['startDate', 'endDate', 'days', 'timezone', 'householdId', 'overdueSummary', 'dayOverviews'], 'properties': {'days': {'type': 'integer'}, 'endDate': {'type': 'string'}, 'timezone': {'type': 'string'}, 'startDate': {'type': 'string'}, 'householdId': {'type': ['string', 'null']}, 'dayOverviews': {'type': 'array', 'items': {'$ref': '#/properties/overdueSummary'}}, 'overdueSummary': {'type': 'object', 'properties': {}, 'additionalProperties': True}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetType', 'targetId'], 'properties': {'targetId': {'type': 'string', 'minLength': 1, 'description': 'Task id when targetType is task, or plan item id when targetType is plan.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone used by the backend request.'}, 'targetType': {'enum': ['task', 'plan'], 'type': 'string', 'description': 'Type of Familia item that owns the attachments.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetType', 'targetId', 'count', 'items'], 'properties': {'count': {'type': 'integer'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['attachmentId', 'targetType', 'targetId', 'type', 'status', 'mimeType', 'fileName', 'byteSize', 'createdByUserId', 'createdAt', 'updatedAt', 'contentUrl', 'contentUrlRequiresAuthentication', 'expiresAt'], 'properties': {'type': {'type': 'string'}, 'width': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'status': {'type': 'string'}, 'byteSize': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'fileName': {'type': ['string', 'null']}, 'mimeType': {'type': ['string', 'null']}, 'targetId': {'type': ['string', 'null']}, 'todoList': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': True}, {'type': 'null'}]}, 'createdAt': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'contentUrl': {'type': ['string', 'null']}, 'targetType': {'anyOf': [{'enum': ['task', 'plan'], 'type': 'string'}, {'type': 'null'}]}, 'attachmentId': {'type': 'string'}, 'createdByUserId': {'type': ['string', 'null']}, 'contentUrlRequiresAuthentication': {'type': 'boolean'}}, 'additionalProperties': True}}, 'targetId': {'type': 'string'}, 'targetType': {'enum': ['task', 'plan'], 'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['householdId'], 'properties': {'timezone': {'type': 'string', 'description': 'IANA timezone used by the backend request.'}, 'householdId': {'type': 'string', 'minLength': 1, 'description': 'Familia household id whose active and pending members should be listed.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['householdId', 'count', 'members'], 'properties': {'count': {'type': 'integer'}, 'members': {'type': 'array', 'items': {'type': 'object', 'required': ['memberId', 'userId', 'displayName', 'role', 'status', 'memberColor', 'createdAt'], 'properties': {'role': {'type': 'string'}, 'status': {'type': 'string'}, 'userId': {'type': 'string'}, 'memberId': {'type': 'string'}, 'createdAt': {'type': ['string', 'null']}, 'displayName': {'type': ['string', 'null']}, 'memberColor': {'type': ['string', 'null']}}, 'additionalProperties': True}}, 'householdId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['selectedHouseholdId', 'households', 'configuration'], 'properties': {'households': {'type': 'array', 'items': {'$ref': '#/properties/currentUser/anyOf/0'}}, 'currentUser': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': True}, {'type': 'null'}]}, 'configuration': {'type': 'object', 'required': ['apiBaseUrl', 'webBaseUrl', 'webLocale', 'timezone', 'hasToken'], 'properties': {'hasToken': {'type': 'boolean'}, 'timezone': {'type': 'string'}, 'webLocale': {'enum': ['cs', 'en'], 'type': 'string'}, 'apiBaseUrl': {'type': 'string'}, 'webBaseUrl': {'type': 'string'}}, 'additionalProperties': False}, 'selectedHouseholdId': {'type': ['string', 'null']}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of past-due items to return. Defaults to 20.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone, e.g. Europe/Prague. Defaults to ASYNQ_TIMEZONE or runtime timezone.'}, 'householdId': {'type': 'string', 'description': 'Optional Familia household id. Omit to use all accessible households.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['date', 'timezone', 'householdId', 'count', 'items', 'categories'], 'properties': {'date': {'type': 'string'}, 'count': {'type': 'integer'}, 'items': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': True}}, 'timezone': {'type': 'string'}, 'categories': {'$ref': '#/properties/items/items'}, 'householdId': {'type': ['string', 'null']}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of matches to return. Defaults to 12.'}, 'query': {'type': 'string', 'minLength': 1, 'description': 'Search text, e.g. "dentist", "school trip", or "groceries".'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Pagination offset, defaults to 0.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone used when formatting matched timeline items.'}, 'householdId': {'type': 'string', 'description': 'Optional Familia household id. Omit to search all accessible households.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['totalCount', 'hasMore', 'query', 'securityNotice', 'count', 'matches'], 'properties': {'count': {'type': 'integer'}, 'query': {'type': 'string'}, 'hasMore': {'type': 'boolean'}, 'matches': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': True}}, 'totalCount': {'type': 'integer'}, 'securityNotice': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['attachmentId', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'id': {'type': 'string', 'maxLength': 64}, 'done': {'type': 'boolean'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'subtasks': {'type': 'array', 'items': {'$ref': '#/properties/items/items'}, 'maxItems': 100}}, 'additionalProperties': False}, 'maxItems': 250, 'minItems': 1, 'description': 'Full replacement checklist/list content. Supports nested subtasks.'}, 'title': {'type': 'string', 'maxLength': 120, 'description': 'Optional replacement list title.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone used by the backend request.'}, 'attachmentId': {'type': 'string', 'minLength': 1, 'description': 'Familia attachment id for the checklist/list to replace.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['attachmentId'], 'properties': {'link': {'type': 'string'}, 'targetId': {'type': 'string'}, 'attachment': {'type': 'object', 'required': ['attachmentId', 'targetType', 'targetId', 'type', 'status', 'mimeType', 'fileName', 'byteSize', 'createdByUserId', 'createdAt', 'updatedAt', 'contentUrl', 'contentUrlRequiresAuthentication', 'expiresAt'], 'properties': {'type': {'type': 'string'}, 'width': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'height': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'status': {'type': 'string'}, 'byteSize': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'fileName': {'type': ['string', 'null']}, 'mimeType': {'type': ['string', 'null']}, 'targetId': {'type': ['string', 'null']}, 'todoList': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': True}, {'type': 'null'}]}, 'createdAt': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'contentUrl': {'type': ['string', 'null']}, 'targetType': {'anyOf': [{'enum': ['task', 'plan'], 'type': 'string'}, {'type': 'null'}]}, 'attachmentId': {'type': 'string'}, 'createdByUserId': {'type': ['string', 'null']}, 'contentUrlRequiresAuthentication': {'type': 'boolean'}}, 'additionalProperties': True}, 'targetType': {'enum': ['task', 'plan'], 'type': 'string'}, 'attachmentId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['planItemId'], 'properties': {'kind': {'enum': ['event', 'birthday', 'name_day', 'school', 'activity', 'care', 'travel', 'holiday', 'chore', 'checklist', 'other'], 'type': 'string', 'description': 'Replacement plan category.'}, 'endAt': {'type': ['string', 'null'], 'description': 'ISO datetime for replacement end time; null clears end time.'}, 'notes': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'null'}], 'description': 'Replacement plan notes; null clears notes.'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Replacement plan title.'}, 'allDay': {'type': 'boolean', 'description': 'Whether the replacement schedule is all-day.'}, 'startAt': {'type': 'string', 'description': 'ISO datetime. When provided, replaces the plan schedule with a one-time schedule.'}, 'location': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}], 'description': 'Replacement location; null clears location.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone for startAt/endAt, e.g. Europe/Prague.'}, 'planItemId': {'type': 'string', 'minLength': 1, 'description': 'Familia plan item id to update.'}, 'agreementIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Replacement related task ids.'}, 'participantUserIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Replacement participant user ids.'}, 'requiresConfirmation': {'type': ['boolean', 'null'], 'description': 'Whether participants should confirm coverage or attendance; null clears the setting.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['planItemId', 'link', 'updated'], 'properties': {'link': {'type': 'string'}, 'updated': {'type': 'boolean'}, 'planItemId': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agreementId'], 'properties': {'dueAt': {'type': ['string', 'null'], 'description': 'ISO datetime, null to clear.'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Replacement task title.'}, 'status': {'enum': ['active', 'done', 'cancelled', 'pending', 'rejected'], 'type': 'string', 'description': 'Replacement task status. Use done to complete the next actionable occurrence, not to close a recurring task series.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone for dueAt, e.g. Europe/Prague.'}, 'repeatRule': {'type': ['string', 'null'], 'description': 'Replacement recurrence rule; null clears recurrence.'}, 'agreementId': {'type': 'string', 'minLength': 1, 'description': 'Familia task id to update. This field is named agreementId for legacy backend compatibility.'}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'null'}], 'description': 'Replacement task details; null clears the description.'}, 'ownerUserId': {'type': ['string', 'null'], 'description': 'Replacement owner user id; null clears the owner.'}, 'assigneeUserId': {'type': ['string', 'null'], 'description': 'Replacement assignee user id; null clears the assignee.'}, 'visibleToHousehold': {'type': 'boolean', 'description': 'Whether the task is visible to the whole household.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agreementId', 'link', 'updated'], 'properties': {'link': {'type': 'string'}, 'taskId': {'type': 'string'}, 'updated': {'type': 'boolean'}, 'agreementId': {'type': 'string'}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Calcgrid
Runs general-purpose calculators for loans, dates, lunar and solar terms, time zones, units, and a larger catalog of specialized …
Local MCP
Connects AI assistants to Mac email, calendars, reminders, notes, tasks, files, Microsoft 365, Todoist, spreadsheets, and daily b…
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
hopi
Provides read-only calculators, converters, validators, text utilities, encoders, and generators for everyday and technical tasks.
mu
Supports personal and collaborative tasks including web browsing, app creation, blogs, bookmarks, discussions, and contact manage…
John's Essentials
Analyzes and converts documents, images, audio, video, archives, data files, and other media formats, with PDF chat and file insp…
Dayze — Life Context
Provides authenticated personal life-context data and tools for contacts, memories, events, expenses, trips, assets, places, and …