이 MCP로 할 수 있는 일
Manages household tasks, calendars, shopping lists, contacts, meals, recipes, subscriptions, pets, vehicles, appliances, and documents.
도구
입력 스키마
{'type': 'object', 'examples': [{'name': 'Milk', 'quantity': 2}], 'required': ['name'], 'properties': {'name': {'type': 'string', 'examples': ['Milk'], 'description': "Item name, e.g. 'Milk'. A new item gets a category from its name; a matching unbought item has its quantity increased instead."}, 'category': {'enum': ['FruitAndVegetables', 'Bakery', 'DeliAndPreparedFoods', 'MeatAndSeafood', 'DairyAndEggs', 'Frozen', 'PantryAndDryGoods', 'SnacksAndConfectionery', 'Beverages', 'HouseholdAndCleaning', 'HealthAndPersonalCare', 'BabyAndKids', 'PetSupplies', 'Online', 'Other'], 'type': 'string', 'examples': ['DairyAndEggs'], 'description': 'Store-aisle category to use instead of auto-assigning one; the name is then kept exactly as given. Omit to auto-categorise. Ignored when merged into an existing item.'}, 'quantity': {'type': 'integer', 'examples': [2], 'description': 'How many to add, 1-9999, default 1. Added to the existing quantity when merged.'}, 'shoppingListId': {'type': 'string', 'examples': ['0189c8d4f2b1712a9e4d6c9a1b2e3f4a'], 'description': 'Target list, an id from list_shopping_lists. Omit for the default. Merging only happens within one list.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '018f2c9a1b2c7d3e9a4f5b6c7d8e9f0a', 'assignedToMemberId': '7f3a9c2e1b4d8f6a0c5e3b7d9a1f4c6e'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['018f2c9a1b2c7d3e9a4f5b6c7d8e9f0a'], 'description': 'Task id from create_task or list_tasks.'}, 'assignedToMemberId': {'type': ['string', 'null'], 'examples': ['7f3a9c2e1b4d8f6a0c5e3b7d9a1f4c6e'], 'description': 'Member id from list_house_members. Empty or null unassigns.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'items': [{'name': 'Milk', 'quantity': 2}, {'name': 'Eggs', 'quantity': 1}]}], 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'quantity'], 'properties': {'name': {'type': 'string', 'examples': ['Milk'], 'description': "Item name, e.g. 'Milk'. Duplicate names are summed within the batch and merged into any matching unbought item."}, 'category': {'enum': ['FruitAndVegetables', 'Bakery', 'DeliAndPreparedFoods', 'MeatAndSeafood', 'DairyAndEggs', 'Frozen', 'PantryAndDryGoods', 'SnacksAndConfectionery', 'Beverages', 'HouseholdAndCleaning', 'HealthAndPersonalCare', 'BabyAndKids', 'PetSupplies', 'Online', 'Other'], 'type': 'string', 'examples': ['DairyAndEggs'], 'description': 'Store-aisle category to use instead of auto-assigning one; the name is then kept exactly as given. Omit to auto-categorise. Ignored when merged into an existing item.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'examples': [2], 'description': 'How many to add, 1-9999. Summed quantities are capped at 9999.'}}, 'description': 'One item to add, with its quantity.'}, 'examples': [[{'name': 'Milk', 'quantity': 2}]], 'maxItems': 25, 'description': 'Items to add, up to 25 per call.'}, 'shoppingListId': {'type': 'string', 'examples': ['0189c8d4f2b1712a9e4d6c9a1b2e3f4a'], 'description': 'Target list for every item in this call, an id from list_shopping_lists. Omit for the default. Merging only happens within one list.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0189c8d4f2b1712a9e4d6c9a1b2e3f4a', 'quantityToBuy': 1}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0189c8d4f2b1712a9e4d6c9a1b2e3f4a'], 'description': 'Item id from add_shopping_list_item or list_shopping_list_items.'}, 'quantityToBuy': {'type': 'integer', 'examples': [1], 'description': 'Units bought, 1-9999, default 1. At or above the remaining quantity the item is fully bought and leaves the list.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '018f2c9a1b2c7d3e9a4f5b6c7d8e9f0a'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['018f2c9a1b2c7d3e9a4f5b6c7d8e9f0a'], 'description': 'Task id from create_task or list_tasks.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'name': 'Kitchen Refrigerator', 'brand': 'Samsung', 'model': 'RF28R7351SG', 'purchaseDate': '2023-11-04', 'serialNumber': 'S/N-4471829', 'warrantyExpiryDate': '2025-11-04'}], 'required': ['name'], 'properties': {'name': {'type': 'string', 'examples': ['Kitchen Refrigerator'], 'description': 'Name, e.g. what it is or where it lives.'}, 'brand': {'type': 'string', 'examples': ['Samsung'], 'description': 'Manufacturer or brand.'}, 'model': {'type': 'string', 'examples': ['RF28R7351SG'], 'description': 'Model, as printed on the appliance or manual.'}, 'notes': {'type': 'string', 'examples': ['Extended warranty purchased in-store, receipt in the kitchen drawer.'], 'description': 'Freeform notes.'}, 'purchaseDate': {'type': 'string', 'examples': ['2023-11-04'], 'description': 'Purchase date, YYYY-MM-DD.'}, 'serialNumber': {'type': 'string', 'examples': ['S/N-4471829'], 'description': 'Serial number, for support or warranty claims.'}, 'warrantyDocumentId': {'type': 'string', 'examples': ['doc_8f3a1c2b9e4d'], 'description': 'Warranty document id from create_document.'}, 'warrantyExpiryDate': {'type': 'string', 'examples': ['2025-11-04'], 'description': 'Warranty expiry, YYYY-MM-DD. Must not precede purchaseDate.'}, 'insuranceDocumentId': {'type': 'string', 'examples': ['doc_1a2b3c4d5e6f'], 'description': 'Insurance document id from create_document.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'notes': 'Bring insurance card', 'title': 'Dentist appointment', 'isAllDay': False, 'location': {'$type': 'Address', 'line1': '221B Baker Street', 'postalCode': 'NW1 6XE', 'countryCode': 'GB'}, 'timezone': 'Europe/London', 'description': 'Annual checkup with Dr. Smith', 'endDateTime': '2026-08-03T15:30:00Z', 'startDateTime': '2026-08-03T14:30:00Z', 'reminderOffsetMinutes': [60, 1440]}, {'title': 'Half term', 'endDate': '2026-10-30', 'isAllDay': True, 'startDate': '2026-10-26'}], 'required': ['title', 'isAllDay'], 'properties': {'notes': {'type': 'string', 'examples': ['Bring insurance card'], 'description': 'Freeform notes.'}, 'title': {'type': 'string', 'examples': ['Dentist appointment'], 'description': 'Title shown in calendar views.'}, 'endDate': {'type': 'string', 'examples': ['2026-08-05'], 'description': 'All-day only: LAST day, inclusive, YYYY-MM-DD. Omit for a single day. The event may cover at most 366 days, between 1900 and 2200.'}, 'isAllDay': {'type': 'boolean', 'examples': [False], 'description': 'True for all-day, false for timed.'}, 'location': {'type': 'object', 'required': ['$type'], 'properties': {'url': {'type': 'string', 'examples': ['https://meet.google.com/abc-defg-hij'], 'description': 'Absolute http/https join link.'}, '$type': {'enum': ['Address', 'OnlineLocation'], 'type': 'string', 'examples': ['Address'], 'description': 'Which location shape this is.'}, 'line1': {'type': 'string', 'examples': ['221B Baker Street'], 'description': 'Address line 1. An Address needs one of line1-3 or postalCode.'}, 'line2': {'type': 'string', 'examples': ['Flat 3'], 'description': 'Address line 2, e.g. flat or suite.'}, 'line3': {'type': 'string', 'examples': ['London'], 'description': 'Address line 3.'}, 'notes': {'type': 'string', 'examples': ['Parking on level 2'], 'description': 'Access detail, e.g. parking or passcode.'}, 'postalCode': {'type': 'string', 'examples': ['NW1 6XE'], 'description': 'Postal or ZIP code.'}, 'countryCode': {'type': 'string', 'examples': ['GB'], 'description': 'ISO country code, e.g. GB.'}}, 'description': "Where it happens. $type 'Address' takes line1-3/postalCode/countryCode; 'OnlineLocation' takes url/notes."}, 'timezone': {'type': ['string', 'null'], 'examples': ['Europe/London'], 'description': "IANA zone for the wall-clock times, e.g. 'Europe/London'. Null means UTC. Not stored when an all-day event is sent with startDate."}, 'startDate': {'type': 'string', 'examples': ['2026-08-03'], 'description': 'All-day only (preferred for all-day): first day, YYYY-MM-DD. Takes precedence over startDateTime. Stored as startDateTime 00:00Z on this day, with endDateTime 00:00Z on the last day (null for a single day).'}, 'description': {'type': 'string', 'examples': ['Annual checkup with Dr. Smith'], 'description': 'Longer description.'}, 'endDateTime': {'type': 'string', 'examples': ['2026-08-03T15:30:00Z'], 'description': 'End of a timed event, ISO 8601 UTC. Must not precede startDateTime. For all-day events send endDate instead. An all-day event sent with endDateTime and no startDate stores it as given, and a midnight endDateTime then names the LAST day (inclusive).'}, 'startDateTime': {'type': 'string', 'examples': ['2026-08-03T14:30:00Z'], 'description': 'Start of a timed event, ISO 8601 UTC with a Z suffix. For an all-day event send startDate instead; when startDate is present this is ignored.'}, 'reminderOffsetMinutes': {'type': 'array', 'items': {'type': 'integer', 'maximum': 525600, 'minimum': 60, 'examples': [1440], 'multipleOf': 60, 'description': 'One lead time in minutes: whole hours 60-1380, or a multiple of 1440 for days.'}, 'examples': [[1440, 10080]], 'maxItems': 5, 'description': 'Reminder lead times, in minutes before the event starts. Each value is whole hours, 60-1380 (1-23 hours), or whole days, a multiple of 1440 up to 525600 (365 days); a week is 10080. Up to 5 values. An all-day event counts from 00:00 on its first day, so 300 (5 hours) is 19:00 the evening before. Day and week reminders arrive at 19:00 on the earlier day; hour reminders arrive that many hours before the start, or up to 15 minutes earlier. Every household member is reminded.', 'uniqueItems': True}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'email': 'sarah.jones@example.com', 'notes': 'Met at the neighbourhood BBQ.', 'phone': '+44 7911 123456', 'address': {'line1': '12 Baker Street', 'postalCode': 'NW1 6XE', 'countryCode': 'GB'}, 'lastName': 'Jones', 'firstName': 'Sarah', 'dateOfBirth': '1990-05-15', 'prepareBirthdayPresent': True}], 'required': ['firstName'], 'properties': {'email': {'type': 'string', 'examples': ['sarah.jones@example.com'], 'description': 'Email address.'}, 'notes': {'type': 'string', 'examples': ['Met at the neighbourhood BBQ.'], 'description': 'Free-text notes.'}, 'phone': {'type': 'string', 'examples': ['+44 7911 123456'], 'description': 'Phone number, any format.'}, 'address': {'type': 'object', 'properties': {'line1': {'type': 'string', 'examples': ['12 Baker Street'], 'description': 'Line 1, typically number and street.'}, 'line2': {'type': 'string', 'examples': ['Flat 3'], 'description': 'Line 2, e.g. apartment or unit.'}, 'line3': {'type': 'string', 'examples': ['London'], 'description': 'Line 3, e.g. town or city.'}, 'postalCode': {'type': 'string', 'examples': ['NW1 6XE'], 'description': 'Postal or ZIP code.'}, 'countryCode': {'type': 'string', 'examples': ['GB'], 'description': 'ISO country code, e.g. GB.'}}, 'description': 'Postal address.'}, 'lastName': {'type': 'string', 'examples': ['Jones'], 'description': 'Last (family) name.'}, 'firstName': {'type': 'string', 'examples': ['Sarah'], 'description': 'First name. The only required field.'}, 'dateOfBirth': {'type': 'string', 'examples': ['1990-05-15'], 'description': 'Date of birth, YYYY-MM-DD. Drives the birthday reminder.'}, 'displayName': {'type': 'string', 'examples': ['Sarah from book club'], 'description': 'Name to show instead of first/last, e.g. a nickname or company.'}, 'prepareBirthdayPresent': {'type': 'boolean', 'examples': [True], 'description': 'Whether to flag a birthday present for them.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'fee': {'value': 8250, 'currencyCode': 'GBP'}, 'notes': 'Renew before the next family trip.', 'title': 'UK Passport', 'documentType': 'Passport', 'documentNumber': '512345678', 'issuingAuthority': 'HM Passport Office'}], 'required': ['documentType'], 'properties': {'fee': {'type': 'object', 'required': ['value', 'currencyCode'], 'properties': {'value': {'type': 'integer', 'examples': [1599], 'description': "Amount in the currency's minor units. Most currencies have 2 decimal places (1599 = 15.99 USD), but some have none (1500 = 1500 JPY) and a few have 3 (12345 = 12.345 KWD)."}, 'currencyCode': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'examples': ['USD'], 'description': 'Uppercase ISO 4217 code, e.g. USD, GBP, JPY.'}}, 'description': 'Cost, e.g. a renewal or issuance fee.'}, 'notes': {'type': 'string', 'examples': ['Renew before the next family trip.'], 'description': 'Free-text notes.'}, 'title': {'type': 'string', 'examples': ['UK Passport'], 'description': "Custom title. Defaults to type plus number, e.g. 'Passport - 512345678'."}, 'documentType': {'enum': ['Passport', 'Insurance', 'Certificate', 'Warranty', 'License', 'Other'], 'type': 'string', 'examples': ['Passport'], 'description': 'Kind of document.'}, 'documentNumber': {'type': 'string', 'examples': ['512345678'], 'description': 'Reference or serial number, e.g. a passport or policy number.'}, 'issuingAuthority': {'type': 'string', 'examples': ['HM Passport Office'], 'description': 'Who issued it.'}, 'renewalCronExpression': {'type': 'string', 'examples': ['0 0 1 1 *'], 'description': 'Accepted but not yet stored or acted on; has no effect.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'date': '2026-10-01', 'mealType': 'dinner', 'recipeId': '8f14e45f-ceea-467e-8a2f-1a2b3c4d5e6f', 'servings': 4}], 'required': ['date', 'mealType'], 'properties': {'date': {'type': 'string', 'description': "Date, YYYY-MM-DD. Must be today or within the next 28 days, so work it out from today's date."}, 'name': {'type': 'string', 'examples': ['Leftover curry'], 'description': 'Custom meal name when no recipe is linked.'}, 'notes': {'type': 'string', 'examples': ['Double the rice'], 'description': 'Free-text notes.'}, 'mealType': {'enum': ['breakfast', 'lunch', 'dinner', 'snack'], 'type': 'string', 'examples': ['dinner'], 'description': 'Meal slot of the day.'}, 'recipeId': {'type': 'string', 'examples': ['8f14e45f-ceea-467e-8a2f-1a2b3c4d5e6f'], 'description': 'Recipe id from list_recipes or list_global_recipes.'}, 'servings': {'type': 'integer', 'examples': [4], 'description': 'Servings, 1-100.'}, 'recipeSource': {'enum': ['household', 'global'], 'type': 'string', 'examples': ['household'], 'description': "Use 'global' when recipeId came from list_global_recipes. Defaults to 'household'."}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'name': 'Bella', 'notes': 'Allergic to chicken; on prescription food.', 'dateOfBirth': '2021-06-15', 'microchipNumber': '985141000123456'}], 'required': ['name'], 'properties': {'name': {'type': 'string', 'examples': ['Bella'], 'description': 'Name.'}, 'notes': {'type': 'string', 'examples': ['Allergic to chicken; on prescription food.'], 'description': 'Freeform notes, e.g. diet or medical history.'}, 'dateOfBirth': {'type': 'string', 'examples': ['2021-06-15'], 'description': 'Date of birth, YYYY-MM-DD.'}, 'vetContactId': {'type': 'string', 'examples': ['contact_5e6f7a8b9c0d'], 'description': 'Vet contact id from create_contact.'}, 'microchipNumber': {'type': 'string', 'examples': ['985141000123456'], 'description': 'Microchip number.'}, 'insuranceDocumentId': {'type': 'string', 'examples': ['doc_1a2b3c4d5e6f'], 'description': 'Insurance document id from create_document.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'url': 'https://example.com/recipes/chicken-tikka-masala', 'name': 'Chicken Tikka Masala', 'servings': 4, 'ingredients': [{'name': 'chicken breast', 'quantity': 2}, {'name': 'tomato', 'quantity': 4}], 'instructions': 'Marinate the chicken, then simmer in the spiced tomato sauce for 20 minutes.'}], 'required': ['name'], 'properties': {'url': {'type': 'string', 'examples': ['https://example.com/recipes/chicken-tikka-masala'], 'description': 'Source URL.'}, 'name': {'type': 'string', 'examples': ['Chicken Tikka Masala'], 'description': 'Recipe name.'}, 'servings': {'type': 'integer', 'examples': [4], 'description': 'Servings the recipe yields, minimum 1.'}, 'ingredients': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'quantity'], 'properties': {'name': {'type': 'string', 'examples': ['chicken breast'], 'description': 'Ingredient name.'}, 'quantity': {'type': 'integer', 'examples': [2], 'description': 'Whole-number quantity, minimum 1. No fractions or units.'}}, 'description': 'One ingredient and its quantity.'}, 'description': 'Ingredients.'}, 'instructions': {'type': 'string', 'examples': ['Marinate the chicken, then simmer in the spiced tomato sauce for 20 minutes.'], 'description': 'Cooking method.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'notes': 'Bring your laptop', 'title': 'Weekly team standup', 'endDate': '2026-12-31', 'duration': 'PT30M', 'isAllDay': False, 'timezone': 'Europe/London', 'startDate': '2026-08-03', 'startTime': '09:00:00', 'description': 'Sync on sprint progress', 'cronExpression': '1 Week', 'maxOccurrences': 20, 'reminderOffsetMinutes': [60]}], 'required': ['title', 'cronExpression'], 'properties': {'notes': {'type': 'string', 'examples': ['Bring your laptop'], 'description': 'Notes on each instance.'}, 'title': {'type': 'string', 'examples': ['Weekly team standup'], 'description': 'Title of every generated instance.'}, 'endDate': {'type': 'string', 'examples': ['2026-12-31'], 'description': 'Last date an instance may fall on, YYYY-MM-DD.'}, 'duration': {'type': 'string', 'examples': ['PT30M'], 'description': "Length of each instance, ISO 8601 duration e.g. 'PT30M'."}, 'isAllDay': {'type': 'boolean', 'examples': [False], 'description': 'True for all-day instances, false for timed. An all-day instance starts at midnight of its occurrence date in the template timezone (stored in UTC; omit startTime) and ends duration later (no end without a duration), so a duration of one day or more makes each instance span that many whole days.'}, 'location': {'type': 'object', 'required': ['$type'], 'properties': {'url': {'type': 'string', 'examples': ['https://meet.google.com/abc-defg-hij'], 'description': 'Absolute http/https join link.'}, '$type': {'enum': ['Address', 'OnlineLocation'], 'type': 'string', 'examples': ['Address'], 'description': 'Which location shape this is.'}, 'line1': {'type': 'string', 'examples': ['221B Baker Street'], 'description': 'Address line 1. An Address needs one of line1-3 or postalCode.'}, 'line2': {'type': 'string', 'examples': ['Flat 3'], 'description': 'Address line 2, e.g. flat or suite.'}, 'line3': {'type': 'string', 'examples': ['London'], 'description': 'Address line 3.'}, 'notes': {'type': 'string', 'examples': ['Parking on level 2'], 'description': 'Access detail, e.g. parking or passcode.'}, 'postalCode': {'type': 'string', 'examples': ['NW1 6XE'], 'description': 'Postal or ZIP code.'}, 'countryCode': {'type': 'string', 'examples': ['GB'], 'description': 'ISO country code, e.g. GB.'}}, 'description': "Where each instance happens. $type 'Address' takes line1-3/postalCode/countryCode; 'OnlineLocation' takes url/notes."}, 'timezone': {'type': ['string', 'null'], 'examples': ['Europe/London'], 'description': "IANA zone for startTime, e.g. 'Europe/London'. Occurrences follow its DST."}, 'startDate': {'type': 'string', 'examples': ['2026-08-03'], 'description': 'Date of the first instance, YYYY-MM-DD. Later ones repeat from it.'}, 'startTime': {'type': 'string', 'examples': ['09:00:00'], 'description': 'Local start time, HH:mm:ss. Omit if there is no fixed time.'}, 'description': {'type': 'string', 'examples': ['Sync on sprint progress'], 'description': 'Longer description of each instance.'}, 'cronExpression': {'type': 'string', 'examples': ['1 Week'], 'description': "Interval as 'N Unit', Unit one of Day, Week, Month, Year, e.g. '2 Week'. Not cron syntax."}, 'maxOccurrences': {'type': 'integer', 'examples': [20], 'description': 'Cap on instances generated.'}, 'reminderOffsetMinutes': {'type': 'array', 'items': {'type': 'integer', 'maximum': 40320, 'minimum': 60, 'examples': [1440], 'multipleOf': 60, 'description': 'One lead time in minutes: whole hours 60-1380, or a multiple of 1440 for days.'}, 'examples': [[1440, 10080]], 'maxItems': 5, 'description': 'Reminder lead times, in minutes before each occurrence starts. Each value is whole hours, 60-1380 (1-23 hours), or whole days, a multiple of 1440 up to 40320 (4 weeks, the most for a repeating item); a week is 10080. Up to 5 values. An all-day event counts from 00:00 on its first day, so 300 (5 hours) is 19:00 the evening before. Day and week reminders arrive at 19:00 on the earlier day; hour reminders arrive that many hours before the start, or up to 15 minutes earlier. Every household member is reminded.', 'uniqueItems': True}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'notes': 'Blue bin only', 'title': 'Take out the recycling', 'endDate': '2026-12-31', 'startDate': '2026-08-01', 'cronExpression': '2 Week', 'maxOccurrences': 26, 'assigneeRotation': ['7f3a9c2e1b4d8f6a0c5e3b7d9a1f4c6e', 'a1b2c3d4e5f60718293a4b5c6d7e8f90'], 'reminderOffsetMinutes': [1440]}], 'required': ['title', 'cronExpression'], 'properties': {'notes': {'type': 'string', 'examples': ['Blue bin only'], 'description': 'Notes copied to every generated instance.'}, 'title': {'type': 'string', 'examples': ['Take out the recycling'], 'description': 'Title given to every generated instance.'}, 'endDate': {'type': 'string', 'examples': ['2026-12-31'], 'description': 'Inclusive last date, YYYY-MM-DD. Omit for open-ended.'}, 'isUrgent': {'type': 'boolean', 'examples': [True], 'description': 'Mark every task this series generates as urgent.'}, 'startDate': {'type': 'string', 'examples': ['2026-08-01'], 'description': 'First date to generate from, YYYY-MM-DD. Defaults to today.'}, 'cronExpression': {'type': 'string', 'examples': ['2 Week'], 'description': "Interval as 'N Unit', Unit one of Day, Week, Month, Year, e.g. '2 Week'. Not cron syntax."}, 'maxOccurrences': {'type': 'integer', 'examples': [26], 'description': 'Cap on instances generated, applied even if endDate is not reached.'}, 'preparationDays': {'type': 'integer', 'examples': [1], 'description': "Legacy single reminder, days before each occurrence's due date, 0-365 (0 means none); use reminderOffsetMinutes instead. Ignored when reminderOffsetMinutes is sent."}, 'assigneeRotation': {'type': 'array', 'items': {'type': 'string', 'examples': ['7f3a9c2e1b4d8f6a0c5e3b7d9a1f4c6e'], 'description': 'Member ids round-robined one per instance. Ids that are no longer members are skipped, leaving that instance unassigned.'}, 'description': 'A member id from list_house_members.'}, 'reminderOffsetMinutes': {'type': 'array', 'items': {'type': 'integer', 'maximum': 40320, 'minimum': 60, 'examples': [1440], 'multipleOf': 60, 'description': 'One lead time in minutes: whole hours 60-1380, or a multiple of 1440 for days.'}, 'examples': [[1440, 10080]], 'maxItems': 5, 'description': "Reminder lead times, in minutes before each generated task's due date. Each value is whole hours, 60-1380 (1-23 hours), or whole days, a multiple of 1440 up to 40320 (4 weeks, the most for a repeating item); a week is 10080. Up to 5 values. A due date counts from 00:00 on that day, so 300 (5 hours) is 19:00 the evening before. Day and week reminders arrive at 19:00 on the earlier day; hour reminders arrive that many hours before, or up to 15 minutes earlier.", 'uniqueItems': True}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'fee': {'value': 1599, 'currencyCode': 'USD'}, 'name': 'Netflix', 'notes': 'Family plan, shared with parents', 'status': 'Active', 'remindMe': True, 'startDate': '2026-10-01', 'paymentDate': '2026-10-03', 'renewalCronExpression': '0 0 1 * *'}], 'required': ['name', 'status'], 'properties': {'fee': {'type': 'object', 'properties': {'value': {'type': 'integer', 'examples': [1599], 'description': "Amount in the currency's minor units. Most currencies have 2 decimal places (1599 = 15.99 USD), but some have none (1500 = 1500 JPY) and a few have 3 (12345 = 12.345 KWD)."}, 'currencyCode': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'examples': ['USD'], 'description': 'Uppercase ISO 4217 code, e.g. USD, GBP, JPY.'}}, 'description': 'Recurring charge.'}, 'name': {'type': 'string', 'examples': ['Netflix'], 'description': "Name, e.g. 'Netflix' or 'Gym membership'."}, 'notes': {'type': 'string', 'examples': ['Family plan, shared with parents'], 'description': 'Free-text notes.'}, 'status': {'enum': ['Active', 'Paused', 'Cancelled'], 'type': 'string', 'examples': ['Active'], 'description': 'Status at creation.'}, 'remindMe': {'type': 'boolean', 'examples': [True], 'description': 'Whether to remind the household before each renewal.'}, 'startDate': {'type': 'string', 'examples': ['2026-10-01'], 'description': 'Renewal date, YYYY-MM-DD. Optional. For a recurring bill it is the first renewal; for a one-off it is the date it is due.'}, 'paymentDate': {'type': 'string', 'examples': ['2026-10-03'], 'description': 'Date the first payment leaves the account, YYYY-MM-DD, when it differs from the renewal date. Payments repeat on the renewal cadence from this date. Omit when payment happens on renewal.'}, 'renewalCronExpression': {'type': 'string', 'examples': ['0 0 1 * *'], 'description': 'Cron expression for the renewal cadence. No more often than daily. Omit for a one-off bill.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'notes': 'Blue bin only', 'title': 'Take out the recycling', 'dueDate': '2026-08-01', 'assignedToMemberId': '7f3a9c2e1b4d8f6a0c5e3b7d9a1f4c6e', 'reminderOffsetMinutes': [1440, 10080]}], 'required': ['title'], 'properties': {'notes': {'type': 'string', 'examples': ['Blue bin only'], 'description': 'Freeform notes. Not for assignment info.'}, 'title': {'type': 'string', 'examples': ['Take out the recycling'], 'description': "Task title, e.g. 'Take out the recycling'."}, 'dueDate': {'type': 'string', 'examples': ['2026-08-01'], 'description': 'Due date, YYYY-MM-DD.'}, 'isUrgent': {'type': 'boolean', 'examples': [True], 'description': 'Mark the task urgent so it is shown first and highlighted.'}, 'preparationDate': {'type': 'string', 'examples': ['2026-07-30'], 'description': 'Legacy single reminder date, YYYY-MM-DD; use reminderOffsetMinutes instead. Ignored when reminderOffsetMinutes is sent. Must be on or before dueDate, and needs dueDate.'}, 'assignedToMemberId': {'type': 'string', 'examples': ['7f3a9c2e1b4d8f6a0c5e3b7d9a1f4c6e'], 'description': 'Member id from list_house_members.'}, 'reminderOffsetMinutes': {'type': 'array', 'items': {'type': 'integer', 'maximum': 525600, 'minimum': 60, 'examples': [1440], 'multipleOf': 60, 'description': 'One lead time in minutes: whole hours 60-1380, or a multiple of 1440 for days.'}, 'examples': [[1440, 10080]], 'maxItems': 5, 'description': 'Reminder lead times, in minutes before the due date. Each value is whole hours, 60-1380 (1-23 hours), or whole days, a multiple of 1440 up to 525600 (365 days); a week is 10080. Up to 5 values. A due date counts from 00:00 on that day, so 300 (5 hours) is 19:00 the evening before. Day and week reminders arrive at 19:00 on the earlier day; hour reminders arrive that many hours before, or up to 15 minutes earlier. Needs dueDate.', 'uniqueItems': True}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'vin': '1HGCM82633A004352', 'make': 'Toyota', 'year': 2021, 'model': 'Corolla', 'notes': 'Winter tyres fitted', 'colour': 'Blue', 'motDueDate': '2026-11-15', 'taxDueDate': '2026-09-01', 'registration': 'AB21 CDE', 'serviceDueDate': '2027-01-20'}], 'required': [], 'properties': {'vin': {'type': 'string', 'examples': ['1HGCM82633A004352'], 'description': 'Vehicle Identification Number, 17 alphanumeric characters.'}, 'make': {'type': 'string', 'examples': ['Toyota'], 'description': "Manufacturer, e.g. 'Toyota'."}, 'year': {'type': 'integer', 'examples': [2021], 'description': 'Model year, 1900-2100.'}, 'model': {'type': 'string', 'examples': ['Corolla'], 'description': "Model, e.g. 'Corolla'."}, 'notes': {'type': 'string', 'examples': ['Winter tyres fitted'], 'description': 'Free-text notes.'}, 'colour': {'type': 'string', 'examples': ['Blue'], 'description': 'Colour.'}, 'motDueDate': {'type': 'string', 'examples': ['2026-11-15'], 'description': 'Next MOT (roadworthiness test) due date, YYYY-MM-DD.'}, 'taxDueDate': {'type': 'string', 'examples': ['2026-09-01'], 'description': 'Next road tax due date, YYYY-MM-DD.'}, 'registration': {'type': 'string', 'examples': ['AB21 CDE'], 'description': 'Registration as shown on the plate; format varies by country.'}, 'serviceDueDate': {'type': 'string', 'examples': ['2027-01-20'], 'description': 'Next service due date, YYYY-MM-DD.'}, 'insuranceDocumentId': {'type': 'string', 'examples': ['01928e4a7d3f7b9ac1e3f6d8b2a4c710'], 'description': 'Insurance document id from create_document or list_documents.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'recommendationId': '0195e3c1a2b34c5d6e7f8091a2b3c4d5'}], 'required': ['recommendationId'], 'properties': {'recommendationId': {'type': 'string', 'examples': ['0195e3c1a2b34c5d6e7f8091a2b3c4d5'], 'description': 'Recommendation id from get_house_review.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '01933f9c-7a2b-7c3d-8e4f-1a2b3c4d5e6f'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['01933f9c-7a2b-7c3d-8e4f-1a2b3c4d5e6f'], 'description': 'ID of the appliance to delete.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0198f3a1b2c34d5e6f7089ab1c2d3e4f'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0198f3a1b2c34d5e6f7089ab1c2d3e4f'], 'description': 'Id of the calendar event to delete.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '01928e4a7d3f7b9ac1e3f6d8b2a4c710'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['01928e4a7d3f7b9ac1e3f6d8b2a4c710'], 'description': 'The id of the contact to delete, as returned by create_contact or list_contacts.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '01928e4a7d3f7b9ac1e3f6d8b2a4c710'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['01928e4a7d3f7b9ac1e3f6d8b2a4c710'], 'description': 'The id of the document to delete, as returned by create_document or list_documents.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '8f14e45f-ceea-467e-8a2f-1a2b3c4d5e6f'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['8f14e45f-ceea-467e-8a2f-1a2b3c4d5e6f'], 'description': 'Entry id from list_meal_plans.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '01933f9c-7a2b-7c3d-8e4f-1a2b3c4d5e6f'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['01933f9c-7a2b-7c3d-8e4f-1a2b3c4d5e6f'], 'description': 'ID of the pet to delete.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '8f14e45f-ceea-467e-8a2f-1a2b3c4d5e6f'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['8f14e45f-ceea-467e-8a2f-1a2b3c4d5e6f'], 'description': 'Recipe id from list_recipes.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0198f3a1b2c34d5e6f7089ab1c2d3e4f'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0198f3a1b2c34d5e6f7089ab1c2d3e4f'], 'description': 'Id of the recurring calendar event (template) to delete.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '5c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['5c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f'], 'description': "The recurring task template's ID, as returned by create_recurring_task."}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0198c1f4b2c07a1b9e4d5f6a7b8c9d0e'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0198c1f4b2c07a1b9e4d5f6a7b8c9d0e'], 'description': 'ID of the subscription to soft-delete.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '018f2c9a1b2c7d3e9a4f5b6c7d8e9f0a'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['018f2c9a1b2c7d3e9a4f5b6c7d8e9f0a'], 'description': 'Task id from create_task or list_tasks.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0198c1f4b2c07a1b9e4d5f6a7b8c9d0e'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0198c1f4b2c07a1b9e4d5f6a7b8c9d0e'], 'description': 'ID of the vehicle to soft-delete.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0195e3c1a2b34c5d6e7f8091a2b3c4d5'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0195e3c1a2b34c5d6e7f8091a2b3c4d5'], 'description': 'Id from a prior recall_memory result.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}], 'properties': {}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}], 'properties': {}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}], 'properties': {}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'forecastDays': 3}], 'properties': {'forecastDays': {'type': 'integer', 'examples': [3], 'description': 'Number of forecast days to return, from 1 to 5. Defaults to 3 if omitted.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}], 'description': "Takes no parameters; returns every non-deleted appliance in the caller's household."}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'startDateTo': '2026-07-31T23:59:59Z', 'startDateFrom': '2026-07-01T00:00:00Z'}], 'required': [], 'properties': {'startDateTo': {'type': 'string', 'examples': ['2026-07-31T23:59:59Z'], 'description': 'Range end, ISO 8601 UTC. Matches events starting at or before this.'}, 'startDateFrom': {'type': 'string', 'examples': ['2026-07-01T00:00:00Z'], 'description': 'Range start, ISO 8601 UTC. Matches events ending, or starting if undated, at or after this.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}]}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}, {'documentType': 'Passport'}], 'properties': {'documentType': {'enum': ['Passport', 'Insurance', 'Certificate', 'Warranty', 'License', 'Other'], 'type': 'string', 'examples': ['Passport'], 'description': 'Return only this type. Omit for all.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}]}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}], 'properties': {}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}], 'properties': {}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'to': '2026-07-21', 'from': '2026-07-14'}], 'required': [], 'properties': {'to': {'type': 'string', 'examples': ['2026-07-21'], 'description': 'Inclusive date range end (format: YYYY-MM-DD). Omit for an open-ended end.'}, 'from': {'type': 'string', 'examples': ['2026-07-14'], 'description': 'Inclusive date range start (format: YYYY-MM-DD). Omit for an open-ended start.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}], 'description': "Takes no parameters; returns every non-deleted pet in the caller's household."}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}]}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}, {'shoppingListId': '0189c8d4f2b1712a9e4d6c9a1b2e3f4a'}], 'properties': {'shoppingListId': {'type': 'string', 'examples': ['0189c8d4f2b1712a9e4d6c9a1b2e3f4a'], 'description': 'One named list, an id from list_shopping_lists. Omit for every list.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}], 'properties': {}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'status': 'Active'}], 'properties': {'status': {'enum': ['Active', 'Paused', 'Cancelled'], 'type': 'string', 'examples': ['Active'], 'description': 'Only return subscriptions with this status. Omit to return subscriptions of all statuses.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'limit': 20, 'dueDateOnOrAfter': '2026-07-01', 'includeCompleted': False, 'dueDateOnOrBefore': '2026-07-31', 'assignedToMemberId': '7f3a9c2e1b4d8f6a0c5e3b7d9a1f4c6e'}], 'properties': {'limit': {'type': 'integer', 'examples': [20], 'description': 'Page size, 1-100, default 50.'}, 'cursor': {'type': 'string', 'examples': ['eyJsYXN0IjoiMDE4ZjJjOWEifQ'], 'description': 'nextCursor from a previous response. Omit for the first page.'}, 'dueDateOnOrAfter': {'type': 'string', 'examples': ['2026-07-01'], 'description': 'Earliest due date, YYYY-MM-DD. Undated tasks never match.'}, 'includeCompleted': {'type': 'boolean', 'examples': [False], 'description': 'Include completed tasks. Defaults to false.'}, 'dueDateOnOrBefore': {'type': 'string', 'examples': ['2026-07-31'], 'description': 'Latest due date, YYYY-MM-DD. Undated tasks never match.'}, 'assignedToMemberId': {'type': 'string', 'examples': ['7f3a9c2e1b4d8f6a0c5e3b7d9a1f4c6e'], 'description': 'Member id to filter by. Omit for all assignees.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{}]}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'type': 'user', 'limit': 20}], 'properties': {'type': {'enum': ['system', 'user'], 'type': 'string', 'examples': ['user'], 'description': 'Filter by author. Omit for both.'}, 'limit': {'type': 'integer', 'examples': [20], 'description': 'Max number of memories to return in this page. 1-100, default 20.'}, 'cursor': {'type': 'string', 'examples': ['eyJQSyI6IkhvdXNlaG9sZCMxMjM0In0='], 'description': 'nextCursor from a previous response. Omit for the first page.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0189c8d4f2b1712a9e4d6c9a1b2e3f4a'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0189c8d4f2b1712a9e4d6c9a1b2e3f4a'], 'description': 'Item id from add_shopping_list_item or list_shopping_list_items.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'recommendationId': '0195e3c1a2b34c5d6e7f8091a2b3c4d5'}], 'required': ['recommendationId'], 'properties': {'recommendationId': {'type': 'string', 'examples': ['0195e3c1a2b34c5d6e7f8091a2b3c4d5'], 'description': 'Recommendation id from get_house_review.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'name': 'preferred-cleaning-day', 'type': 'user', 'content': "The user said they'd rather have the house cleaned Saturday mornings instead of Friday evenings, because they work late on Fridays.", 'description': 'User prefers the house cleaned on Saturday mornings'}], 'required': ['type', 'name', 'description', 'content'], 'properties': {'name': {'type': 'string', 'examples': ['preferred-cleaning-day'], 'description': "Short kebab-case slug, e.g. 'preferred-cleaning-day'. Max 80 chars."}, 'type': {'enum': ['system', 'user'], 'type': 'string', 'examples': ['user'], 'description': "'user' for what the user stated, 'system' for insights you derived."}, 'content': {'type': 'string', 'examples': ["The user said on 2026-07-10 they'd rather have the house cleaned Saturday mornings instead of Friday evenings, because they work late on Fridays."], 'description': 'Free-text body. Max 8000 chars.'}, 'description': {'type': 'string', 'examples': ['User prefers the house cleaned on Saturday mornings'], 'description': 'Single-line summary used to decide relevance later. Max 200 chars.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '018f2c9a1b2c7d3e9a4f5b6c7d8e9f0a'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['018f2c9a1b2c7d3e9a4f5b6c7d8e9f0a'], 'description': 'Task id from create_task or list_tasks.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '01933f9c-7a2b-7c3d-8e4f-1a2b3c4d5e6f', 'notes': 'Repaired ice maker under warranty, June 2026.', 'warrantyExpiryDate': '2026-11-04'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['01933f9c-7a2b-7c3d-8e4f-1a2b3c4d5e6f'], 'description': 'Appliance id from list_appliances.'}, 'name': {'type': 'string', 'examples': ['Kitchen Refrigerator'], 'description': 'New name.'}, 'brand': {'type': 'string', 'examples': ['Samsung'], 'description': 'New manufacturer or brand.'}, 'model': {'type': 'string', 'examples': ['RF28R7351SG'], 'description': 'New model.'}, 'notes': {'type': 'string', 'examples': ['Extended warranty purchased in-store, receipt in the kitchen drawer.'], 'description': 'Freeform notes.'}, 'purchaseDate': {'type': 'string', 'examples': ['2023-11-04'], 'description': 'Purchase date, YYYY-MM-DD. Must not follow warrantyExpiryDate. Empty string clears it.'}, 'serialNumber': {'type': 'string', 'examples': ['S/N-4471829'], 'description': 'New serial number.'}, 'warrantyDocumentId': {'type': 'string', 'examples': ['doc_8f3a1c2b9e4d'], 'description': 'Warranty document id from create_document.'}, 'warrantyExpiryDate': {'type': 'string', 'examples': ['2025-11-04'], 'description': 'Warranty expiry, YYYY-MM-DD. Must not precede purchaseDate. Empty string clears it.'}, 'insuranceDocumentId': {'type': 'string', 'examples': ['doc_1a2b3c4d5e6f'], 'description': 'Insurance document id from create_document.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0198f3a1b2c34d5e6f7089ab1c2d3e4f', 'notes': 'Moved to Thursday', 'endDateTime': '2026-08-04T15:30:00Z', 'startDateTime': '2026-08-04T14:30:00Z'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0198f3a1b2c34d5e6f7089ab1c2d3e4f'], 'description': 'Event id from create_calendar_event or list_calendar_events.'}, 'notes': {'type': 'string', 'examples': ['Moved to Thursday'], 'description': 'New notes.'}, 'title': {'type': 'string', 'examples': ['Dentist appointment (rescheduled)'], 'description': 'New event title.'}, 'endDate': {'type': 'string', 'examples': ['2026-08-06'], 'description': "All-day only: new LAST day, inclusive, YYYY-MM-DD. Alone it keeps the current first day. Dates are stored in the event's own end rule (see list_calendar_events)."}, 'isAllDay': {'type': 'boolean', 'examples': [False], 'description': 'True for all-day, false for timed.'}, 'location': {'type': 'object', 'required': ['$type'], 'properties': {'url': {'type': 'string', 'examples': ['https://meet.google.com/abc-defg-hij'], 'description': 'Absolute http/https join link.'}, '$type': {'enum': ['Address', 'OnlineLocation'], 'type': 'string', 'examples': ['Address'], 'description': 'Which location shape this is.'}, 'line1': {'type': 'string', 'examples': ['221B Baker Street'], 'description': 'Address line 1. An Address needs one of line1-3 or postalCode.'}, 'line2': {'type': 'string', 'examples': ['Flat 3'], 'description': 'Address line 2, e.g. flat or suite.'}, 'line3': {'type': 'string', 'examples': ['London'], 'description': 'Address line 3.'}, 'notes': {'type': 'string', 'examples': ['Parking on level 2'], 'description': 'Access detail, e.g. parking or passcode.'}, 'postalCode': {'type': 'string', 'examples': ['NW1 6XE'], 'description': 'Postal or ZIP code.'}, 'countryCode': {'type': 'string', 'examples': ['GB'], 'description': 'ISO country code, e.g. GB.'}}, 'description': "Replaces the location outright. $type 'Address' takes line1-3/postalCode/countryCode; 'OnlineLocation' takes url/notes."}, 'timezone': {'type': ['string', 'null'], 'examples': ['Europe/London'], 'description': "IANA zone for the wall-clock times, e.g. 'Europe/London'. Null means UTC."}, 'startDate': {'type': 'string', 'examples': ['2026-08-04'], 'description': 'All-day only (preferred for all-day): new first day, YYYY-MM-DD. Without endDate the event becomes a single day.'}, 'description': {'type': 'string', 'examples': ['Annual checkup with Dr. Smith'], 'description': 'New description.'}, 'endDateTime': {'type': 'string', 'examples': ['2026-08-04T15:30:00Z'], 'description': "New end of a timed event, ISO 8601 UTC. Must not precede startDateTime. For all-day events send endDate instead. An all-day endDateTime is stored as given and keeps the event's own end rule (see list_calendar_events): with no source a midnight end names the LAST day, on a device-calendar event the day after it."}, 'startDateTime': {'type': 'string', 'examples': ['2026-08-04T14:30:00Z'], 'description': 'New start of a timed event, ISO 8601 UTC. For an all-day event send startDate instead.'}, 'reminderOffsetMinutes': {'type': 'array', 'items': {'type': 'integer', 'maximum': 525600, 'minimum': 60, 'examples': [1440], 'multipleOf': 60, 'description': 'One lead time in minutes: whole hours 60-1380, or a multiple of 1440 for days.'}, 'examples': [[1440, 10080]], 'maxItems': 5, 'description': 'New reminder lead times, in minutes before the event starts. Send the full list: it replaces the current one. [] clears all reminders; omit to keep them. Reminders move with the start. Not allowed on imported events (device calendar or subscription). Each value is whole hours, 60-1380 (1-23 hours), or whole days, a multiple of 1440 up to 525600 (365 days); a week is 10080. Up to 5 values. An all-day event counts from 00:00 on its first day, so 300 (5 hours) is 19:00 the evening before. Day and week reminders arrive at 19:00 on the earlier day; hour reminders arrive that many hours before the start, or up to 15 minutes earlier. Every household member is reminded.', 'uniqueItems': True}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '01928e4a7d3f7b9ac1e3f6d8b2a4c710', 'notes': 'Prefers texts over calls.', 'phone': '+44 7911 123456'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['01928e4a7d3f7b9ac1e3f6d8b2a4c710'], 'description': 'Contact id from create_contact or list_contacts.'}, 'email': {'type': 'string', 'examples': ['sarah.jones@example.com'], 'description': 'Email address.'}, 'notes': {'type': 'string', 'examples': ['Prefers texts over calls.'], 'description': 'Free-text notes.'}, 'phone': {'type': 'string', 'examples': ['+44 7911 123456'], 'description': 'Phone number, any format.'}, 'address': {'type': 'object', 'properties': {'line1': {'type': 'string', 'examples': ['12 Baker Street'], 'description': 'Line 1, typically number and street.'}, 'line2': {'type': 'string', 'examples': ['Flat 3'], 'description': 'Line 2, e.g. apartment or unit.'}, 'line3': {'type': 'string', 'examples': ['London'], 'description': 'Line 3, e.g. town or city.'}, 'postalCode': {'type': 'string', 'examples': ['NW1 6XE'], 'description': 'Postal or ZIP code.'}, 'countryCode': {'type': 'string', 'examples': ['GB'], 'description': 'ISO country code, e.g. GB.'}}, 'description': 'Postal address. Replaces the stored one outright.'}, 'lastName': {'type': 'string', 'examples': ['Jones'], 'description': 'Last (family) name.'}, 'firstName': {'type': 'string', 'examples': ['Sarah'], 'description': 'First name.'}, 'dateOfBirth': {'type': 'string', 'examples': ['1990-05-15'], 'description': 'Date of birth, YYYY-MM-DD. Empty string clears it.'}, 'displayName': {'type': 'string', 'examples': ['Sarah from book club'], 'description': 'Name to show instead of first/last, e.g. a nickname or company.'}, 'prepareBirthdayPresent': {'type': 'boolean', 'examples': [True], 'description': 'Whether to flag a birthday present for them.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '01928e4a7d3f7b9ac1e3f6d8b2a4c710', 'notes': 'Renewed for another 10 years.', 'issuingAuthority': 'HM Passport Office'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['01928e4a7d3f7b9ac1e3f6d8b2a4c710'], 'description': 'Document id from create_document or list_documents.'}, 'fee': {'type': 'object', 'required': ['value', 'currencyCode'], 'properties': {'value': {'type': 'integer', 'examples': [1599], 'description': "Amount in the currency's minor units. Most currencies have 2 decimal places (1599 = 15.99 USD), but some have none (1500 = 1500 JPY) and a few have 3 (12345 = 12.345 KWD)."}, 'currencyCode': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'examples': ['USD'], 'description': 'Uppercase ISO 4217 code, e.g. USD, GBP, JPY.'}}, 'description': 'Cost. Replaces the stored fee outright.'}, 'notes': {'type': 'string', 'examples': ['Renewed for another 10 years.'], 'description': 'Free-text notes.'}, 'title': {'type': 'string', 'examples': ['UK Passport'], 'description': 'Custom title.'}, 'documentType': {'enum': ['Passport', 'Insurance', 'Certificate', 'Warranty', 'License', 'Other'], 'type': 'string', 'examples': ['Passport'], 'description': 'Kind of document.'}, 'documentNumber': {'type': 'string', 'examples': ['512345678'], 'description': 'Reference or serial number, e.g. a passport or policy number.'}, 'issuingAuthority': {'type': 'string', 'examples': ['HM Passport Office'], 'description': 'Who issued it.'}, 'renewalCronExpression': {'type': 'string', 'examples': ['0 0 1 1 *'], 'description': 'Accepted but not yet stored or acted on; has no effect.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '8f14e45f-ceea-467e-8a2f-1a2b3c4d5e6f', 'servings': 6}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['8f14e45f-ceea-467e-8a2f-1a2b3c4d5e6f'], 'description': 'Entry id from list_meal_plans.'}, 'date': {'type': 'string', 'description': "Date, YYYY-MM-DD. Must be today or within the next 28 days, so work it out from today's date."}, 'name': {'type': 'string', 'examples': ['Leftover curry'], 'description': 'Custom meal name when no recipe is linked.'}, 'notes': {'type': 'string', 'examples': ['Double the rice'], 'description': 'Free-text notes.'}, 'mealType': {'enum': ['breakfast', 'lunch', 'dinner', 'snack'], 'type': 'string', 'examples': ['dinner'], 'description': 'Meal slot of the day.'}, 'recipeId': {'type': 'string', 'examples': ['8f14e45f-ceea-467e-8a2f-1a2b3c4d5e6f'], 'description': 'Recipe id from list_recipes or list_global_recipes.'}, 'servings': {'type': 'integer', 'examples': [4], 'description': 'Servings, 1-100.'}, 'recipeSource': {'enum': ['household', 'global'], 'type': 'string', 'examples': ['household'], 'description': "Use 'global' when recipeId came from list_global_recipes. Defaults to 'household'."}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0195e3c1a2b34c5d6e7f8091a2b3c4d5', 'content': 'Updated 2026-07-14: the user now prefers Sunday mornings instead of Saturday mornings for cleaning.', 'description': 'User now prefers the house cleaned on Sunday mornings'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0195e3c1a2b34c5d6e7f8091a2b3c4d5'], 'description': 'Id from a prior recall_memory result.'}, 'name': {'type': 'string', 'examples': ['preferred-cleaning-day'], 'description': 'New kebab-case slug.'}, 'content': {'type': 'string', 'examples': ['Updated 2026-07-14: the user now prefers Sunday mornings instead of Saturday mornings for cleaning.'], 'description': 'New body.'}, 'description': {'type': 'string', 'examples': ['User now prefers the house cleaned on Sunday mornings'], 'description': 'New single-line summary.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '01933f9c-7a2b-7c3d-8e4f-1a2b3c4d5e6f', 'notes': "Started prescription diet on vet's advice."}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['01933f9c-7a2b-7c3d-8e4f-1a2b3c4d5e6f'], 'description': 'Pet id from list_pets.'}, 'name': {'type': 'string', 'examples': ['Bella'], 'description': 'New name.'}, 'notes': {'type': 'string', 'examples': ['Allergic to chicken; on prescription food.'], 'description': 'Freeform notes.'}, 'dateOfBirth': {'type': 'string', 'examples': ['2021-06-15'], 'description': 'Date of birth, YYYY-MM-DD. Empty string clears it.'}, 'vetContactId': {'type': 'string', 'examples': ['contact_5e6f7a8b9c0d'], 'description': 'Vet contact id from create_contact.'}, 'microchipNumber': {'type': 'string', 'examples': ['985141000123456'], 'description': 'New microchip number.'}, 'insuranceDocumentId': {'type': 'string', 'examples': ['doc_1a2b3c4d5e6f'], 'description': 'Insurance document id from create_document.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '8f14e45f-ceea-467e-8a2f-1a2b3c4d5e6f', 'servings': 6}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['8f14e45f-ceea-467e-8a2f-1a2b3c4d5e6f'], 'description': 'Recipe id from list_recipes.'}, 'url': {'type': 'string', 'examples': ['https://example.com/recipes/chicken-tikka-masala'], 'description': 'Source URL.'}, 'name': {'type': 'string', 'examples': ['Chicken Tikka Masala'], 'description': 'Name.'}, 'servings': {'type': 'integer', 'examples': [4], 'description': 'Servings the recipe yields, minimum 1.'}, 'ingredients': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'quantity'], 'properties': {'name': {'type': 'string', 'examples': ['chicken breast'], 'description': 'Ingredient name.'}, 'quantity': {'type': 'integer', 'examples': [2], 'description': 'Whole-number quantity, minimum 1. No fractions or units.'}}, 'description': 'One ingredient and its quantity.'}, 'description': 'Ingredients. Replaces the whole existing list rather than merging.'}, 'instructions': {'type': 'string', 'examples': ['Marinate the chicken, then simmer in the spiced sauce.'], 'description': 'Cooking method.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0198f3a1b2c34d5e6f7089ab1c2d3e4f', 'endDate': '2027-01-31', 'cronExpression': '2 Week'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0198f3a1b2c34d5e6f7089ab1c2d3e4f'], 'description': 'Template id from create_recurring_calendar_event.'}, 'notes': {'type': 'string', 'examples': ['Bring your laptop'], 'description': 'New notes.'}, 'title': {'type': 'string', 'examples': ['Weekly team standup'], 'description': 'New title, patched onto existing instances.'}, 'endDate': {'type': 'string', 'examples': ['2027-01-31'], 'description': 'New last date, YYYY-MM-DD. Empty string leaves it unbounded.'}, 'duration': {'type': 'string', 'examples': ['PT30M'], 'description': "Length of each instance, ISO 8601 duration e.g. 'PT30M'."}, 'isAllDay': {'type': 'boolean', 'examples': [False], 'description': 'True for all-day instances, false for timed. An all-day instance starts at midnight of its occurrence date in the template timezone (stored in UTC; omit startTime) and ends duration later (no end without a duration), so a duration of one day or more makes each instance span that many whole days.'}, 'location': {'type': 'object', 'required': ['$type'], 'properties': {'url': {'type': 'string', 'examples': ['https://meet.google.com/abc-defg-hij'], 'description': 'Absolute http/https join link.'}, '$type': {'enum': ['Address', 'OnlineLocation'], 'type': 'string', 'examples': ['Address'], 'description': 'Which location shape this is.'}, 'line1': {'type': 'string', 'examples': ['221B Baker Street'], 'description': 'Address line 1. An Address needs one of line1-3 or postalCode.'}, 'line2': {'type': 'string', 'examples': ['Flat 3'], 'description': 'Address line 2, e.g. flat or suite.'}, 'line3': {'type': 'string', 'examples': ['London'], 'description': 'Address line 3.'}, 'notes': {'type': 'string', 'examples': ['Bring your laptop'], 'description': 'Access detail, e.g. parking or passcode.'}, 'postalCode': {'type': 'string', 'examples': ['NW1 6XE'], 'description': 'Postal or ZIP code.'}, 'countryCode': {'type': 'string', 'examples': ['GB'], 'description': 'ISO country code, e.g. GB.'}}, 'description': "Replaces the location outright. $type 'Address' takes line1-3/postalCode/countryCode; 'OnlineLocation' takes url/notes."}, 'timezone': {'type': ['string', 'null'], 'examples': ['Europe/London'], 'description': "IANA zone for startTime, e.g. 'Europe/London'. Occurrences follow its DST."}, 'startDate': {'type': 'string', 'examples': ['2026-08-03'], 'description': 'New first-instance date, YYYY-MM-DD. Empty string clears it.'}, 'startTime': {'type': 'string', 'examples': ['09:00:00'], 'description': 'New local start time, HH:mm:ss.'}, 'description': {'type': 'string', 'examples': ['Sync on sprint progress'], 'description': 'New description, patched onto existing instances.'}, 'cronExpression': {'type': 'string', 'examples': ['2 Week'], 'description': "New interval as 'N Unit', Unit one of Day, Week, Month, Year, e.g. '2 Week'. Not cron syntax."}, 'maxOccurrences': {'type': 'integer', 'examples': [20], 'description': 'New cap on instances generated.'}, 'reminderOffsetMinutes': {'type': 'array', 'items': {'type': 'integer', 'maximum': 40320, 'minimum': 60, 'examples': [1440], 'multipleOf': 60, 'description': 'One lead time in minutes: whole hours 60-1380, or a multiple of 1440 for days.'}, 'examples': [[1440, 10080]], 'maxItems': 5, 'description': 'New reminder lead times, in minutes before each occurrence starts. Send the full list: it replaces the current one. [] clears all reminders; omit to keep them. A change also applies to existing instances. Each value is whole hours, 60-1380 (1-23 hours), or whole days, a multiple of 1440 up to 40320 (4 weeks, the most for a repeating item); a week is 10080. Up to 5 values. An all-day event counts from 00:00 on its first day, so 300 (5 hours) is 19:00 the evening before. Day and week reminders arrive at 19:00 on the earlier day; hour reminders arrive that many hours before the start, or up to 15 minutes earlier. Every household member is reminded.', 'uniqueItems': True}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '5c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f', 'title': 'Take out the recycling', 'cronExpression': '2 Week', 'assigneeRotation': ['7f3a9c2e1b4d8f6a0c5e3b7d9a1f4c6e']}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['5c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f'], 'description': 'Template id from create_recurring_task.'}, 'notes': {'type': 'string', 'examples': ['Blue bin only'], 'description': 'New notes, copied to uncompleted instances.'}, 'title': {'type': 'string', 'examples': ['Take out the recycling'], 'description': 'New title. Uncompleted instances are updated to match; completed ones keep theirs.'}, 'endDate': {'type': 'string', 'examples': ['2026-12-31'], 'description': 'New inclusive end date, YYYY-MM-DD. Empty string makes it open-ended.'}, 'isUrgent': {'type': 'boolean', 'examples': [True], 'description': "Mark every task this series generates as urgent: true marks urgent, false clears it, omit to leave unchanged. A change also applies to the series' open occurrences."}, 'startDate': {'type': 'string', 'examples': ['2026-08-01'], 'description': 'New start date, YYYY-MM-DD. Empty string clears it.'}, 'cronExpression': {'type': 'string', 'examples': ['2 Week'], 'description': "New interval as 'N Unit', Unit one of Day, Week, Month, Year, e.g. '2 Week'. Not cron syntax."}, 'maxOccurrences': {'type': 'integer', 'examples': [26], 'description': 'New cap on instances generated.'}, 'preparationDays': {'type': 'integer', 'examples': [1], 'description': "Legacy single reminder, days before each occurrence's due date, 0-365 (0 means none); use reminderOffsetMinutes instead. Ignored when reminderOffsetMinutes is sent. On a series without reminderOffsetMinutes it applies to instances generated after this change. On a series with reminderOffsetMinutes the server keeps it in step: a different value replaces every reminder with that one (0 removes them) and also updates the series' open tasks."}, 'assigneeRotation': {'type': 'array', 'items': {'type': 'string', 'examples': ['7f3a9c2e1b4d8f6a0c5e3b7d9a1f4c6e'], 'description': 'Replacement rotation of member ids, round-robined one per instance. Applies to instances generated after this change.'}, 'description': 'A member id from list_house_members.'}, 'reminderOffsetMinutes': {'type': 'array', 'items': {'type': 'integer', 'maximum': 40320, 'minimum': 60, 'examples': [1440], 'multipleOf': 60, 'description': 'One lead time in minutes: whole hours 60-1380, or a multiple of 1440 for days.'}, 'examples': [[1440, 10080]], 'maxItems': 5, 'description': "New reminder lead times, in minutes before each generated task's due date. Send the full list: it replaces the current one. [] clears all reminders; omit to keep them. A change also applies to the series' open tasks. Each value is whole hours, 60-1380 (1-23 hours), or whole days, a multiple of 1440 up to 40320 (4 weeks, the most for a repeating item); a week is 10080. Up to 5 values. A due date counts from 00:00 on that day, so 300 (5 hours) is 19:00 the evening before. Day and week reminders arrive at 19:00 on the earlier day; hour reminders arrive that many hours before, or up to 15 minutes earlier.", 'uniqueItems': True}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0189c8d4f2b1712a9e4d6c9a1b2e3f4a', 'category': 'DairyAndEggs', 'quantity': 3}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0189c8d4f2b1712a9e4d6c9a1b2e3f4a'], 'description': 'Item id from add_shopping_list_item or list_shopping_list_items.'}, 'name': {'type': 'string', 'examples': ['Whole milk'], 'description': 'New item name.'}, 'category': {'enum': ['FruitAndVegetables', 'Bakery', 'DeliAndPreparedFoods', 'MeatAndSeafood', 'DairyAndEggs', 'Frozen', 'PantryAndDryGoods', 'SnacksAndConfectionery', 'Beverages', 'HouseholdAndCleaning', 'HealthAndPersonalCare', 'BabyAndKids', 'PetSupplies', 'Online', 'Other'], 'type': 'string', 'examples': ['DairyAndEggs'], 'description': 'New store-aisle category, overriding the auto-assigned one.'}, 'quantity': {'type': 'integer', 'examples': [3], 'description': 'New quantity, 1-9999. Replaces rather than adds to the current one.'}, 'shoppingListId': {'type': 'string', 'examples': ['0189c8d4f2b1712a9e4d6c9a1b2e3f4a'], 'description': 'Move the item to a different list, an id from list_shopping_lists. Omit to leave it where it is; name the default list explicitly to move it back.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0198c1f4b2c07a1b9e4d5f6a7b8c9d0e', 'notes': 'Paused while travelling', 'status': 'Paused'}, {'id': '0198c1f4b2c07a1b9e4d5f6a7b8c9d0e', 'paymentDate': '2026-10-03'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0198c1f4b2c07a1b9e4d5f6a7b8c9d0e'], 'description': 'Subscription id from list_subscriptions.'}, 'fee': {'type': 'object', 'properties': {'value': {'type': 'integer', 'examples': [1599], 'description': "Amount in the currency's minor units. Most currencies have 2 decimal places (1599 = 15.99 USD), but some have none (1500 = 1500 JPY) and a few have 3 (12345 = 12.345 KWD)."}, 'currencyCode': {'type': 'string', 'pattern': '^[A-Z]{3}$', 'examples': ['USD'], 'description': 'Uppercase ISO 4217 code, e.g. USD, GBP, JPY.'}}, 'description': 'Recurring charge.'}, 'name': {'type': 'string', 'examples': ['Netflix'], 'description': 'New name.'}, 'notes': {'type': 'string', 'examples': ['Paused while travelling'], 'description': 'Free-text notes. Empty string clears them.'}, 'status': {'enum': ['Active', 'Paused', 'Cancelled'], 'type': 'string', 'examples': ['Paused'], 'description': 'New status.'}, 'remindMe': {'type': 'boolean', 'examples': [True], 'description': 'Whether to remind the household before each renewal.'}, 'startDate': {'type': 'string', 'examples': ['2026-10-01'], 'description': 'Renewal date, YYYY-MM-DD. Optional. For a recurring bill it is the first renewal; for a one-off it is the date it is due. Empty string clears it.'}, 'paymentDate': {'type': 'string', 'examples': ['2026-10-03'], 'description': 'Date the first payment leaves the account, YYYY-MM-DD, when it differs from the renewal date. Payments repeat on the renewal cadence from this date. Omit when payment happens on renewal. Empty string clears it.'}, 'renewalCronExpression': {'type': 'string', 'examples': ['0 0 1 * *'], 'description': 'Cron expression for the renewal cadence, no more often than daily. Empty string clears it, making the bill a one-off.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '018f2c9a1b2c7d3e9a4f5b6c7d8e9f0a', 'title': 'Take out the recycling', 'dueDate': '2026-08-01'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['018f2c9a1b2c7d3e9a4f5b6c7d8e9f0a'], 'description': 'Task id from create_task or list_tasks.'}, 'notes': {'type': 'string', 'examples': ['Blue bin only'], 'description': 'Freeform notes. Not for assignment info.'}, 'title': {'type': 'string', 'examples': ['Take out the recycling'], 'description': 'New title.'}, 'dueDate': {'type': 'string', 'examples': ['2026-08-01'], 'description': 'New due date, YYYY-MM-DD. Empty string clears it.'}, 'isUrgent': {'type': 'boolean', 'examples': [True], 'description': 'Mark the task urgent so it is shown first and highlighted: true marks urgent, false clears it, omit to leave unchanged.'}, 'preparationDate': {'type': 'string', 'examples': ['2026-07-30'], 'description': 'Legacy single reminder date, YYYY-MM-DD; use reminderOffsetMinutes instead. Ignored when reminderOffsetMinutes is sent. Must be on or before dueDate. Empty string clears it; clearing dueDate clears it. On a task without reminderOffsetMinutes, changing dueDate does not move it. On a task with reminderOffsetMinutes the server keeps it in step with dueDate: a different date replaces every reminder with that one, and an empty string removes them all.'}, 'assignedToMemberId': {'type': 'string', 'examples': ['7f3a9c2e1b4d8f6a0c5e3b7d9a1f4c6e'], 'description': 'Member id to assign. Empty string unassigns.'}, 'reminderOffsetMinutes': {'type': 'array', 'items': {'type': 'integer', 'maximum': 525600, 'minimum': 60, 'examples': [1440], 'multipleOf': 60, 'description': 'One lead time in minutes: whole hours 60-1380, or a multiple of 1440 for days.'}, 'examples': [[1440, 10080]], 'maxItems': 5, 'description': 'New reminder lead times, in minutes before the due date. Send the full list: it replaces the current one. [] clears all reminders; omit to keep them. Each value is whole hours, 60-1380 (1-23 hours), or whole days, a multiple of 1440 up to 525600 (365 days); a week is 10080. Up to 5 values. A due date counts from 00:00 on that day, so 300 (5 hours) is 19:00 the evening before. Day and week reminders arrive at 19:00 on the earlier day; hour reminders arrive that many hours before, or up to 15 minutes earlier. Reminders move with dueDate, need a due date, and are cleared when dueDate is cleared.', 'uniqueItems': True}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
입력 스키마
{'type': 'object', 'examples': [{'id': '0198c1f4b2c07a1b9e4d5f6a7b8c9d0e', 'notes': 'Renewed tax disc', 'taxDueDate': '2027-09-01'}], 'required': ['id'], 'properties': {'id': {'type': 'string', 'examples': ['0198c1f4b2c07a1b9e4d5f6a7b8c9d0e'], 'description': 'Vehicle id from list_vehicles.'}, 'vin': {'type': 'string', 'examples': ['1HGCM82633A004352'], 'description': 'Vehicle Identification Number, 17 alphanumeric characters.'}, 'make': {'type': 'string', 'examples': ['Toyota'], 'description': "Manufacturer, e.g. 'Toyota'."}, 'year': {'type': 'integer', 'examples': [2021], 'description': 'Model year, 1900-2100.'}, 'model': {'type': 'string', 'examples': ['Corolla'], 'description': "Model, e.g. 'Corolla'."}, 'notes': {'type': 'string', 'examples': ['Renewed tax disc'], 'description': 'Free-text notes.'}, 'colour': {'type': 'string', 'examples': ['Blue'], 'description': 'Colour.'}, 'motDueDate': {'type': 'string', 'examples': ['2026-11-15'], 'description': 'Next MOT (roadworthiness test) due date, YYYY-MM-DD.'}, 'taxDueDate': {'type': 'string', 'examples': ['2026-09-01'], 'description': 'Next road tax due date, YYYY-MM-DD.'}, 'registration': {'type': 'string', 'examples': ['AB21 CDE'], 'description': 'Registration as shown on the plate; format varies by country.'}, 'serviceDueDate': {'type': 'string', 'examples': ['2027-01-20'], 'description': 'Next service due date, YYYY-MM-DD.'}, 'insuranceDocumentId': {'type': 'string', 'examples': ['01928e4a7d3f7b9ac1e3f6d8b2a4c710'], 'description': 'Insurance document id from list_documents.'}}}
출력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}}, 'title': {'type': 'string'}, 'message': {'type': 'string'}, 'variant': {'enum': ['list', 'detail', 'confirmation'], 'type': 'string'}}}
최근 도구 변경
유사한 MCP 서버
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 …