Familia

Private family planner for schedules, tasks, checklists, attachments, and availability.

使うべきか

品質と安全性

A
説明の品質
99%
スキーマの完全性
93%
命名の品質
80%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(1)

  • LOWTool 'familia_attach_image' description lacks action verbfamilia_attach_image 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~14,186トークン数(ツール定義)
~6.0 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 11.08%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "familia": {
      "url": "https://mcp.family.asynq.org/mcp"
    }
  }
}

リモートエンドポイント

https://mcp.family.asynq.org/mcpstreamable-http

できること

ツール一覧

ツール(25)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢familia_list_households

Use this when the user asks which Familia households, families, or shared boards are available. Includes member names and user ids for assigning tasks or plans. Do not use for listing tasks, plans, or calendar events.

入力スキーマ

{
  "type": "object",
  "properties": {}
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "selectedHouseholdId": {
      "type": [
        "string",
        "null"
      ]
    },
    "currentUser": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ]
    },
    "households": {
      "type": "array",
      "items": {
        "$ref": "#/properties/currentUser/anyOf/0"
      }
    },
    "configuration": {
      "type": "object",
      "properties": {
        "apiBaseUrl": {
          "type": "string"
        },
        "webBaseUrl": {
          "type": "string"
        },
        "webLocale": {
          "type": "string",
          "enum": [
            "cs",
            "en"
          ]
        },
        "timezone": {
          "type": "string"
        },
        "hasToken": {
          "type": "boolean"
        }
      },
      "required": [
        "apiBaseUrl",
        "webBaseUrl",
        "webLocale",
        "timezone",
        "hasToken"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "selectedHouseholdId",
    "households",
    "configuration"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢familia_list_household_members(householdId, timezone)

Use this when a task or plan must be assigned to, owned by, or shared with a named household member and their Familia user id is not already known.

入力スキーマ

{
  "type": "object",
  "properties": {
    "householdId": {
      "type": "string",
      "minLength": 1,
      "description": "Familia household id whose active and pending members should be listed."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone used by the backend request."
    }
  },
  "required": [
    "householdId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "householdId": {
      "type": "string"
    },
    "count": {
      "type": "integer"
    },
    "members": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "memberId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "displayName": {
            "type": [
              "string",
              "null"
            ]
          },
          "role": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "memberColor": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "memberId",
          "userId",
          "displayName",
          "role",
          "status",
          "memberColor",
          "createdAt"
        ],
        "additionalProperties": true
      }
    }
  },
  "required": [
    "householdId",
    "count",
    "members"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢familia_get_day_overview(includeCompleted, date, startAt, endAt, householdId, ...)

Use this when the user asks for Familia items on a specific date or in a specific time window. Includes tasks, plans, and connected calendar events. Do not use for broad text search or multi-week availability.

入力スキーマ

{
  "type": "object",
  "properties": {
    "includeCompleted": {
      "type": "boolean",
      "description": "Include completed tasks when looking through history."
    },
    "date": {
      "type": "string",
      "description": "Date as YYYY-MM-DD, ISO datetime, or omitted for today in the selected timezone."
    },
    "startAt": {
      "type": "string",
      "description": "Optional ISO datetime for a narrower time window."
    },
    "endAt": {
      "type": "string",
      "description": "Optional ISO datetime for a narrower time window. Defaults to one hour after startAt."
    },
    "householdId": {
      "type": "string",
      "description": "Optional Familia household id. Omit to aggregate across all accessible memberships."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone, defaults to ASYNQ_TIMEZONE or the local runtime timezone."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "intent": {
      "type": "string"
    },
    "date": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "securityNotice": {
      "type": "string"
    },
    "window": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "startAt": {
              "type": "string"
            },
            "endAt": {
              "type": "string"
            }
          },
          "required": [
            "startAt",
            "endAt"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "householdId": {
      "type": [
        "string",
        "null"
      ]
    },
    "count": {
      "type": "integer"
    },
    "counts": {
      "type": "object",
      "properties": {},
      "additionalProperties": true
    },
    "overdueSummary": {
      "$ref": "#/properties/counts"
    },
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/properties/counts"
      }
    },
    "links": {
      "type": "object",
      "properties": {
        "webDay": {
          "type": "string"
        }
      },
      "required": [
        "webDay"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "date",
    "timezone",
    "securityNotice",
    "window",
    "householdId",
    "count",
    "counts",
    "overdueSummary",
    "items",
    "links"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢familia_get_today_schedule(householdId, timezone)

Use this when the user asks about today's agenda, today's tasks, what they are doing today, or what they should do today. Includes tasks, plans, Google/calendar events, and an overdue summary.

入力スキーマ

{
  "type": "object",
  "properties": {
    "householdId": {
      "type": "string",
      "description": "Optional Familia household id. Omit to use all accessible households."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone, e.g. Europe/Prague. Defaults to ASYNQ_TIMEZONE or runtime timezone."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "intent": {
      "type": "string"
    },
    "date": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "securityNotice": {
      "type": "string"
    },
    "window": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "startAt": {
              "type": "string"
            },
            "endAt": {
              "type": "string"
            }
          },
          "required": [
            "startAt",
            "endAt"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "householdId": {
      "type": [
        "string",
        "null"
      ]
    },
    "count": {
      "type": "integer"
    },
    "counts": {
      "type": "object",
      "properties": {},
      "additionalProperties": true
    },
    "overdueSummary": {
      "$ref": "#/properties/counts"
    },
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/properties/counts"
      }
    },
    "links": {
      "type": "object",
      "properties": {
        "webDay": {
          "type": "string"
        }
      },
      "required": [
        "webDay"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "date",
    "timezone",
    "securityNotice",
    "window",
    "householdId",
    "count",
    "counts",
    "overdueSummary",
    "items",
    "links"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢familia_get_tomorrow_schedule(householdId, timezone)

Use this when the user asks about tomorrow's agenda, tomorrow's tasks, tomorrow's plans, or what they should prepare for tomorrow. Includes tasks, plans, Google/calendar events, and an overdue summary.

入力スキーマ

{
  "type": "object",
  "properties": {
    "householdId": {
      "type": "string",
      "description": "Optional Familia household id. Omit to use all accessible households."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone, e.g. Europe/Prague. Defaults to ASYNQ_TIMEZONE or runtime timezone."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "intent": {
      "type": "string"
    },
    "date": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "securityNotice": {
      "type": "string"
    },
    "window": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "startAt": {
              "type": "string"
            },
            "endAt": {
              "type": "string"
            }
          },
          "required": [
            "startAt",
            "endAt"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "householdId": {
      "type": [
        "string",
        "null"
      ]
    },
    "count": {
      "type": "integer"
    },
    "counts": {
      "type": "object",
      "properties": {},
      "additionalProperties": true
    },
    "overdueSummary": {
      "$ref": "#/properties/counts"
    },
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/properties/counts"
      }
    },
    "links": {
      "type": "object",
      "properties": {
        "webDay": {
          "type": "string"
        }
      },
      "required": [
        "webDay"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "date",
    "timezone",
    "securityNotice",
    "window",
    "householdId",
    "count",
    "counts",
    "overdueSummary",
    "items",
    "links"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢familia_get_next_up(householdId, timezone, scope, limit)

Use this when the user asks what is next, what they should do now, their next task, or the next upcoming family item. Defaults to personal assigned items; use household scope only for family-wide wording. Never describe owner-only tasks as assigned to the current user.

入力スキーマ

{
  "type": "object",
  "properties": {
    "householdId": {
      "type": "string",
      "description": "Optional Familia household id. Omit to use all accessible households."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone, e.g. Europe/Prague. Defaults to ASYNQ_TIMEZONE or runtime timezone."
    },
    "scope": {
      "type": "string",
      "enum": [
        "personal",
        "household"
      ],
      "default": "personal",
      "description": "Use personal for “my”, “for me”, or “what should I do”; use household for family-wide next items."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 5,
      "description": "Maximum number of upcoming items to return. Defaults to 5."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "now": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "scope": {
      "type": "string",
      "enum": [
        "personal",
        "household"
      ]
    },
    "currentUserId": {
      "type": [
        "string",
        "null"
      ]
    },
    "householdId": {
      "type": [
        "string",
        "null"
      ]
    },
    "overdueSummary": {
      "type": "object",
      "properties": {},
      "additionalProperties": true
    },
    "count": {
      "type": "integer"
    },
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/properties/overdueSummary"
      }
    },
    "otherHouseholdItems": {
      "type": "array",
      "items": {
        "$ref": "#/properties/overdueSummary"
      }
    }
  },
  "required": [
    "now",
    "timezone",
    "scope",
    "currentUserId",
    "householdId",
    "overdueSummary",
    "count",
    "items"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢familia_get_weekly_overview(startDate, days, householdId, timezone)

Use this when the user asks about this week, the next week, upcoming days, family schedule for the week, or a multi-day planning overview.

入力スキーマ

{
  "type": "object",
  "properties": {
    "startDate": {
      "type": "string",
      "description": "YYYY-MM-DD or ISO datetime. Defaults to today."
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 14,
      "default": 7,
      "description": "Number of days to include, from 1 to 14. Defaults to 7."
    },
    "householdId": {
      "type": "string",
      "description": "Optional Familia household id. Omit to use all accessible households."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone, e.g. Europe/Prague. Defaults to ASYNQ_TIMEZONE or runtime timezone."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "startDate": {
      "type": "string"
    },
    "endDate": {
      "type": "string"
    },
    "days": {
      "type": "integer"
    },
    "timezone": {
      "type": "string"
    },
    "householdId": {
      "type": [
        "string",
        "null"
      ]
    },
    "overdueSummary": {
      "type": "object",
      "properties": {},
      "additionalProperties": true
    },
    "dayOverviews": {
      "type": "array",
      "items": {
        "$ref": "#/properties/overdueSummary"
      }
    }
  },
  "required": [
    "startDate",
    "endDate",
    "days",
    "timezone",
    "householdId",
    "overdueSummary",
    "dayOverviews"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢familia_get_inbox(householdId, timezone, limit)

Use this when the user asks for inbox, items needing attention, overdue tasks, past leftovers, unfinished responsibilities, or what is waiting on them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "householdId": {
      "type": "string",
      "description": "Optional Familia household id. Omit to use all accessible households."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone, e.g. Europe/Prague. Defaults to ASYNQ_TIMEZONE or runtime timezone."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20,
      "description": "Maximum number of attention items to return. Defaults to 20."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "householdId": {
      "type": [
        "string",
        "null"
      ]
    },
    "count": {
      "type": "integer"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": true
      }
    },
    "categories": {
      "$ref": "#/properties/items/items"
    }
  },
  "required": [
    "date",
    "timezone",
    "householdId",
    "count",
    "items",
    "categories"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢familia_list_past_due(householdId, timezone, limit)

Use this when the user asks for overdue items, past leftovers, missed tasks, unfinished items from previous days, or Czech “resty”. Calendar events are excluded.

入力スキーマ

{
  "type": "object",
  "properties": {
    "householdId": {
      "type": "string",
      "description": "Optional Familia household id. Omit to use all accessible households."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone, e.g. Europe/Prague. Defaults to ASYNQ_TIMEZONE or runtime timezone."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20,
      "description": "Maximum number of past-due items to return. Defaults to 20."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "householdId": {
      "type": [
        "string",
        "null"
      ]
    },
    "count": {
      "type": "integer"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": true
      }
    },
    "categories": {
      "$ref": "#/properties/items/items"
    }
  },
  "required": [
    "date",
    "timezone",
    "householdId",
    "count",
    "items",
    "categories"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢familia_search_items(offset, query, householdId, limit, timezone)

Use this when the user asks to find Familia tasks, plans, or connected calendar events by title, notes, description, or location. Do not use for public web search or unrelated document search.

入力スキーマ

{
  "type": "object",
  "properties": {
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Pagination offset, defaults to 0."
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Search text, e.g. \"dentist\", \"school trip\", or \"groceries\"."
    },
    "householdId": {
      "type": "string",
      "description": "Optional Familia household id. Omit to search all accessible households."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Maximum number of matches to return. Defaults to 12."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone used when formatting matched timeline items."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "totalCount": {
      "type": "integer"
    },
    "hasMore": {
      "type": "boolean"
    },
    "query": {
      "type": "string"
    },
    "securityNotice": {
      "type": "string"
    },
    "count": {
      "type": "integer"
    },
    "matches": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": true
      }
    }
  },
  "required": [
    "totalCount",
    "hasMore",
    "query",
    "securityNotice",
    "count",
    "matches"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴familia_create_task(householdId, title, description, dueAt, allDay, ...)

Use this when the user asks to create a responsibility-style Familia task, agreement, reminder, or chore. If the same task repeats across several days, weeks, or months, provide repeatRule and create one recurring task instead of multiple one-time tasks. Do not use for calendar-style events, trips, school activities, or holidays; use familia_create_plan instead. When the primary intent is a shopping list, packing list, or standalone checklist, use familia_create_list_task. Assigning to another household member queues a push notification; schedules can also queue reminders, and delivered notifications cannot be recalled.

入力スキーマ

{
  "type": "object",
  "properties": {
    "householdId": {
      "type": "string",
      "minLength": 1,
      "description": "Familia household id where the task should be created."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Short task title, e.g. \"Pay school fee\" or \"Take bins out\"."
    },
    "description": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional task details, notes, or context."
    },
    "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."
    },
    "allDay": {
      "type": "boolean",
      "description": "Whether the due date is an all-day task."
    },
    "assigneeUserId": {
      "type": "string",
      "description": "Optional Familia user id responsible for the task."
    },
    "ownerUserId": {
      "type": "string",
      "description": "Optional Familia user id that owns the task."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for dueAt, e.g. Europe/Prague."
    },
    "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."
    },
    "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\"."
    },
    "leadMinutes": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10080,
      "description": "Reminder lead time in minutes before dueAt. Defaults to 0."
    },
    "todoList": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "maxLength": 64
              },
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "done": {
                "type": "boolean"
              },
              "subtasks": {
                "type": "array",
                "items": {
                  "$ref": "#/properties/todoList/properties/items/items"
                },
                "maxItems": 100
              }
            },
            "required": [
              "title"
            ],
            "additionalProperties": false
          },
          "minItems": 1,
          "maxItems": 250
        }
      },
      "required": [
        "items"
      ],
      "additionalProperties": false,
      "description": "Optional checklist/list to attach to the created task."
    },
    "idempotencyKey": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160,
      "description": "Optional stable retry key. Reusing the same key for the same create operation returns the original result instead of creating a duplicate."
    }
  },
  "required": [
    "householdId",
    "title"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string"
    },
    "taskId": {
      "type": "string"
    },
    "deeplink": {
      "type": "string"
    },
    "schedule": {
      "type": "object",
      "properties": {},
      "additionalProperties": true
    },
    "todoListAttachment": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "attachmentId": {
              "type": "string"
            },
            "targetType": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "task",
                    "plan"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "targetId": {
              "type": [
                "string",
                "null"
              ]
            },
            "type": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "mimeType": {
              "type": [
                "string",
                "null"
              ]
            },
            "fileName": {
              "type": [
                "string",
                "null"
              ]
            },
            "byteSize": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            },
            "width": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            },
            "height": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            },
            "createdByUserId": {
              "type": [
                "string",
                "null"
              ]
            },
            "createdAt": {
              "type": [
                "string",
                "null"
              ]
            },
            "updatedAt": {
              "type": [
                "string",
                "null"
              ]
            },
            "contentUrl": {
              "type": [
                "string",
                "null"
              ]
            },
            "contentUrlRequiresAuthentication": {
              "type": "boolean"
            },
            "expiresAt": {
              "type": [
                "string",
                "null"
              ]
            },
            "todoList": {
              "anyOf": [
                {
                  "$ref": "#/properties/schedule"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "attachmentId",
            "targetType",
            "targetId",
            "type",
            "status",
            "mimeType",
            "fileName",
            "byteSize",
            "createdByUserId",
            "createdAt",
            "updatedAt",
            "contentUrl",
            "contentUrlRequiresAuthentication",
            "expiresAt"
          ],
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ]
    },
    "attachmentCreated": {
      "type": "boolean"
    },
    "attachmentError": {
      "type": "string"
    }
  },
  "required": [
    "agreementId",
    "deeplink"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴familia_create_list_task(householdId, title, listTitle, items, description, ...)

Use this when the user asks to create a shopping list, packing list, checklist, or Familia task with list items. If the same list task repeats across several days, weeks, or months, provide repeatRule and create one recurring list task instead of multiple one-time tasks. Do not use when editing an existing list attachment. Assigning to another household member queues a push notification; schedules can also queue reminders, and delivered notifications cannot be recalled.

入力スキーマ

{
  "type": "object",
  "properties": {
    "householdId": {
      "type": "string",
      "minLength": 1,
      "description": "Familia household id where the list task should be created."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Task title, e.g. “Groceries” or “Pack for trip”."
    },
    "listTitle": {
      "type": "string",
      "maxLength": 120,
      "description": "Optional title shown on the attached list. Defaults to the task title."
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 64
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "done": {
            "type": "boolean"
          },
          "subtasks": {
            "type": "array",
            "items": {
              "$ref": "#/properties/items/items"
            },
            "maxItems": 100
          }
        },
        "required": [
          "title"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 250,
      "description": "Checklist items to attach to the new task. Supports nested subtasks."
    },
    "description": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional task details, notes, or context."
    },
    "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."
    },
    "allDay": {
      "type": "boolean",
      "description": "Whether the due date is an all-day task."
    },
    "assigneeUserId": {
      "type": "string",
      "description": "Optional Familia user id responsible for the task."
    },
    "ownerUserId": {
      "type": "string",
      "description": "Optional Familia user id that owns the task."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for dueAt, e.g. Europe/Prague."
    },
    "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."
    },
    "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\"."
    },
    "leadMinutes": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10080,
      "description": "Reminder lead time in minutes before dueAt. Defaults to 0."
    },
    "idempotencyKey": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160,
      "description": "Optional stable retry key. Reusing the same key for the same create operation returns the original result instead of creating a duplicate."
    }
  },
  "required": [
    "householdId",
    "title",
    "items"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string"
    },
    "taskId": {
      "type": "string"
    },
    "deeplink": {
      "type": "string"
    },
    "schedule": {
      "type": "object",
      "properties": {},
      "additionalProperties": true
    },
    "todoListAttachment": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "attachmentId": {
              "type": "string"
            },
            "targetType": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "task",
                    "plan"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "targetId": {
              "type": [
                "string",
                "null"
              ]
            },
            "type": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "mimeType": {
              "type": [
                "string",
                "null"
              ]
            },
            "fileName": {
              "type": [
                "string",
                "null"
              ]
            },
            "byteSize": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            },
            "width": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            },
            "height": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            },
            "createdByUserId": {
              "type": [
                "string",
                "null"
              ]
            },
            "createdAt": {
              "type": [
                "string",
                "null"
              ]
            },
            "updatedAt": {
              "type": [
                "string",
                "null"
              ]
            },
            "contentUrl": {
              "type": [
                "string",
                "null"
              ]
            },
            "contentUrlRequiresAuthentication": {
              "type": "boolean"
            },
            "expiresAt": {
              "type": [
                "string",
                "null"
              ]
            },
            "todoList": {
              "anyOf": [
                {
                  "$ref": "#/properties/schedule"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "attachmentId",
            "targetType",
            "targetId",
            "type",
            "status",
            "mimeType",
            "fileName",
            "byteSize",
            "createdByUserId",
            "createdAt",
            "updatedAt",
            "contentUrl",
            "contentUrlRequiresAuthentication",
            "expiresAt"
          ],
          "additionalProperties": true
        },
        {
          "type": "null"
        }
      ]
    },
    "attachmentCreated": {
      "type": "boolean"
    },
    "attachmentError": {
      "type": "string"
    }
  },
  "required": [
    "agreementId",
    "deeplink"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢familia_list_attachments(targetType, targetId, timezone)

Use this when the user asks what photos, checklists, or list attachments are attached to an existing Familia task or plan. Use before editing an existing list attachment when the attachment id is unknown.

入力スキーマ

{
  "type": "object",
  "properties": {
    "targetType": {
      "type": "string",
      "enum": [
        "task",
        "plan"
      ],
      "description": "Type of Familia item that owns the attachments."
    },
    "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."
    }
  },
  "required": [
    "targetType",
    "targetId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "targetType": {
      "type": "string",
      "enum": [
        "task",
        "plan"
      ]
    },
    "targetId": {
      "type": "string"
    },
    "count": {
      "type": "integer"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "attachmentId": {
            "type": "string"
          },
          "targetType": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "task",
                  "plan"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "targetId": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "mimeType": {
            "type": [
              "string",
              "null"
            ]
          },
          "fileName": {
            "type": [
              "string",
              "null"
            ]
          },
          "byteSize": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "width": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "height": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdByUserId": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "contentUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "contentUrlRequiresAuthentication": {
            "type": "boolean"
          },
          "expiresAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "todoList": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "attachmentId",
          "targetType",
          "targetId",
          "type",
          "status",
          "mimeType",
          "fileName",
          "byteSize",
          "createdByUserId",
          "createdAt",
          "updatedAt",
          "contentUrl",
          "contentUrlRequiresAuthentication",
          "expiresAt"
        ],
        "additionalProperties": true
      }
    }
  },
  "required": [
    "targetType",
    "targetId",
    "count",
    "items"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴familia_attach_image(targetType, targetId, dataUrl, base64Data, mimeType, ...)

Use this when the user asks to attach a JPEG, PNG, or WebP image to an existing Familia task or plan. Provide either dataUrl or base64Data plus mimeType. Do not use for non-image files.

入力スキーマ

{
  "type": "object",
  "properties": {
    "targetType": {
      "type": "string",
      "enum": [
        "task",
        "plan"
      ],
      "description": "Type of Familia item that should receive the image."
    },
    "targetId": {
      "type": "string",
      "minLength": 1,
      "description": "Task id when targetType is task, or plan item id when targetType is plan."
    },
    "dataUrl": {
      "type": "string",
      "description": "Image data URL, e.g. data:image/png;base64,..."
    },
    "base64Data": {
      "type": "string",
      "description": "Raw base64 image bytes when dataUrl is not provided."
    },
    "mimeType": {
      "type": "string",
      "enum": [
        "image/jpeg",
        "image/png",
        "image/webp"
      ],
      "description": "Required when base64Data is provided without a dataUrl."
    },
    "fileName": {
      "type": "string",
      "maxLength": 160,
      "description": "Optional image filename shown in attachment metadata."
    },
    "width": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Optional image width in pixels."
    },
    "height": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Optional image height in pixels."
    },
    "replaceExistingPhoto": {
      "type": "boolean",
      "description": "When true, replaces the latest existing photo attachment for the target."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone used by the backend request."
    }
  },
  "required": [
    "targetType",
    "targetId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "targetType": {
      "type": "string",
      "enum": [
        "task",
        "plan"
      ]
    },
    "targetId": {
      "type": "string"
    },
    "attachmentId": {
      "type": "string"
    },
    "attachment": {
      "type": "object",
      "properties": {
        "attachmentId": {
          "type": "string"
        },
        "targetType": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "task",
                "plan"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "targetId": {
          "type": [
            "string",
            "null"
          ]
        },
        "type": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "mimeType": {
          "type": [
            "string",
            "null"
          ]
        },
        "fileName": {
          "type": [
            "string",
            "null"
          ]
        },
        "byteSize": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "createdByUserId": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "contentUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "contentUrlRequiresAuthentication": {
          "type": "boolean"
        },
        "expiresAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "todoList": {
          "anyOf": [
            {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "attachmentId",
        "targetType",
        "targetId",
        "type",
        "status",
        "mimeType",
        "fileName",
        "byteSize",
        "createdByUserId",
        "createdAt",
        "updatedAt",
        "contentUrl",
        "contentUrlRequiresAuthentication",
        "expiresAt"
      ],
      "additionalProperties": true
    },
    "link": {
      "type": "string"
    }
  },
  "required": [
    "attachmentId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡familia_create_list_attachment(targetType, targetId, title, items, timezone)

Use this when the user asks to add a new checklist, shopping list, packing list, or structured subtasks to an existing Familia task or plan. Do not use for editing an existing attachment.

入力スキーマ

{
  "type": "object",
  "properties": {
    "targetType": {
      "type": "string",
      "enum": [
        "task",
        "plan"
      ],
      "description": "Type of Familia item that should receive the list."
    },
    "targetId": {
      "type": "string",
      "minLength": 1,
      "description": "Task id when targetType is task, or plan item id when targetType is plan."
    },
    "title": {
      "type": "string",
      "maxLength": 120,
      "description": "Optional title shown on the attached checklist/list."
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 64
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "done": {
            "type": "boolean"
          },
          "subtasks": {
            "type": "array",
            "items": {
              "$ref": "#/properties/items/items"
            },
            "maxItems": 100
          }
        },
        "required": [
          "title"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 250,
      "description": "Checklist/list items to attach. Supports nested subtasks."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone used by the backend request."
    }
  },
  "required": [
    "targetType",
    "targetId",
    "items"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "targetType": {
      "type": "string",
      "enum": [
        "task",
        "plan"
      ]
    },
    "targetId": {
      "type": "string"
    },
    "attachmentId": {
      "type": "string"
    },
    "attachment": {
      "type": "object",
      "properties": {
        "attachmentId": {
          "type": "string"
        },
        "targetType": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "task",
                "plan"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "targetId": {
          "type": [
            "string",
            "null"
          ]
        },
        "type": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "mimeType": {
          "type": [
            "string",
            "null"
          ]
        },
        "fileName": {
          "type": [
            "string",
            "null"
          ]
        },
        "byteSize": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "createdByUserId": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "contentUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "contentUrlRequiresAuthentication": {
          "type": "boolean"
        },
        "expiresAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "todoList": {
          "anyOf": [
            {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "attachmentId",
        "targetType",
        "targetId",
        "type",
        "status",
        "mimeType",
        "fileName",
        "byteSize",
        "createdByUserId",
        "createdAt",
        "updatedAt",
        "contentUrl",
        "contentUrlRequiresAuthentication",
        "expiresAt"
      ],
      "additionalProperties": true
    },
    "link": {
      "type": "string"
    }
  },
  "required": [
    "attachmentId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴familia_update_list_attachment(attachmentId, title, items, timezone)

Use this when the user asks to edit, add, remove, reorder, or mark items in an existing Familia checklist/list attachment. This replaces the existing list content; list attachments first if the attachment id is unknown.

入力スキーマ

{
  "type": "object",
  "properties": {
    "attachmentId": {
      "type": "string",
      "minLength": 1,
      "description": "Familia attachment id for the checklist/list to replace."
    },
    "title": {
      "type": "string",
      "maxLength": 120,
      "description": "Optional replacement list title."
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 64
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "done": {
            "type": "boolean"
          },
          "subtasks": {
            "type": "array",
            "items": {
              "$ref": "#/properties/items/items"
            },
            "maxItems": 100
          }
        },
        "required": [
          "title"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 250,
      "description": "Full replacement checklist/list content. Supports nested subtasks."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone used by the backend request."
    }
  },
  "required": [
    "attachmentId",
    "items"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "targetType": {
      "type": "string",
      "enum": [
        "task",
        "plan"
      ]
    },
    "targetId": {
      "type": "string"
    },
    "attachmentId": {
      "type": "string"
    },
    "attachment": {
      "type": "object",
      "properties": {
        "attachmentId": {
          "type": "string"
        },
        "targetType": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "task",
                "plan"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "targetId": {
          "type": [
            "string",
            "null"
          ]
        },
        "type": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "mimeType": {
          "type": [
            "string",
            "null"
          ]
        },
        "fileName": {
          "type": [
            "string",
            "null"
          ]
        },
        "byteSize": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "width": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "height": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "createdByUserId": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "contentUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "contentUrlRequiresAuthentication": {
          "type": "boolean"
        },
        "expiresAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "todoList": {
          "anyOf": [
            {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "attachmentId",
        "targetType",
        "targetId",
        "type",
        "status",
        "mimeType",
        "fileName",
        "byteSize",
        "createdByUserId",
        "createdAt",
        "updatedAt",
        "contentUrl",
        "contentUrlRequiresAuthentication",
        "expiresAt"
      ],
      "additionalProperties": true
    },
    "link": {
      "type": "string"
    }
  },
  "required": [
    "attachmentId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴familia_delete_attachment(attachmentId, timezone)

Use this only when the user explicitly asks to delete or remove an existing Familia photo, checklist, or list attachment. Do not use for hiding or summarizing attachments.

入力スキーマ

{
  "type": "object",
  "properties": {
    "attachmentId": {
      "type": "string",
      "minLength": 1,
      "description": "Familia attachment id to delete."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone used by the backend request."
    }
  },
  "required": [
    "attachmentId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "attachmentId": {
      "type": "string"
    },
    "deleted": {
      "type": "boolean"
    }
  },
  "required": [
    "attachmentId",
    "deleted"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴familia_create_plan(householdId, title, kind, notes, location, ...)

Use this when the user asks to create a Familia plan item for an event, trip, holiday, school, activity, care coverage, travel, chore block, or other scheduled family plan. If the same plan repeats across several days, weeks, or months, provide rrule and create one recurring plan instead of multiple one-time plans. If the user gives multiple dated or timed actions that clearly belong to the plan, such as flights, leaving for the airport, pickup, packing, check-in, or return travel, put the main event/trip in the plan and create each dated action as a relatedTasks entry instead of stuffing them all into notes. Do not use for standalone responsibility-style task reminders; use familia_create_task or familia_batch_write instead. Related tasks assigned to another household member can queue push notifications; schedules can trigger reminders, and delivered notifications cannot be recalled.

入力スキーマ

{
  "type": "object",
  "properties": {
    "householdId": {
      "type": "string",
      "minLength": 1,
      "description": "Familia household id where the plan should be created."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Short plan title, e.g. \"School concert\" or \"Long weekend trip\"."
    },
    "kind": {
      "type": "string",
      "enum": [
        "event",
        "birthday",
        "name_day",
        "school",
        "activity",
        "care",
        "travel",
        "holiday",
        "chore",
        "checklist",
        "other"
      ],
      "description": "Plan category. Use event when no more specific category fits."
    },
    "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."
    },
    "location": {
      "type": "string",
      "maxLength": 300,
      "description": "Optional location, venue, or address."
    },
    "startAt": {
      "type": "string",
      "description": "Optional ISO datetime."
    },
    "endAt": {
      "type": "string",
      "description": "Optional ISO datetime."
    },
    "allDay": {
      "type": "boolean",
      "description": "Whether the plan is all-day."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for startAt/endAt, e.g. Europe/Prague."
    },
    "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."
    },
    "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."
    },
    "agreementIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional existing related task ids to link to the plan."
    },
    "relatedTasks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "Short title for one distinct related action, e.g. \"Leave for Prague Airport\" or \"Outbound flight\"."
          },
          "description": {
            "type": "string",
            "maxLength": 2000,
            "description": "Optional details for this one related action."
          },
          "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."
          },
          "allDay": {
            "type": "boolean",
            "description": "Whether this related task is all-day."
          },
          "assigneeUserId": {
            "type": "string",
            "description": "Optional Familia user id responsible for this related task."
          },
          "ownerUserId": {
            "type": "string",
            "description": "Optional Familia user id that owns this related task."
          },
          "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."
          },
          "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\"."
          },
          "leadMinutes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10080,
            "description": "Reminder lead time in minutes before dueAt. Defaults to 0."
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "Optional stable retry key. Reusing the same key for the same create operation returns the original result instead of creating a duplicate."
          }
        },
        "required": [
          "title"
        ],
        "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."
    },
    "requiresConfirmation": {
      "type": "boolean",
      "description": "Whether participants should confirm coverage or attendance."
    },
    "idempotencyKey": {
      "$ref": "#/properties/relatedTasks/items/properties/idempotencyKey"
    }
  },
  "required": [
    "householdId",
    "title"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "planItemId": {
      "type": "string"
    },
    "occurrenceIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "link": {
      "type": "string"
    },
    "schedule": {
      "type": "object",
      "properties": {},
      "additionalProperties": true
    },
    "relatedTaskIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "relatedTasks": {
      "type": "array",
      "items": {
        "$ref": "#/properties/schedule"
      }
    }
  },
  "required": [
    "planItemId",
    "occurrenceIds",
    "link"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴familia_update_task(agreementId, title, description, status, dueAt, ...)

Use this when the user asks to rename, reschedule, reassign, complete, cancel, or otherwise edit an existing Familia task. When status is done, this completes the next actionable occurrence so recurring tasks continue. Do not use to create a new task. Updates may notify household members and reschedule reminders; delivered notifications cannot be recalled.

入力スキーマ

{
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "minLength": 1,
      "description": "Familia task id to update. This field is named agreementId for legacy backend compatibility."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Replacement task title."
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2000
        },
        {
          "type": "null"
        }
      ],
      "description": "Replacement task details; null clears the description."
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "done",
        "cancelled",
        "pending",
        "rejected"
      ],
      "description": "Replacement task status. Use done to complete the next actionable occurrence, not to close a recurring task series."
    },
    "dueAt": {
      "type": [
        "string",
        "null"
      ],
      "description": "ISO datetime, null to clear."
    },
    "repeatRule": {
      "type": [
        "string",
        "null"
      ],
      "description": "Replacement recurrence rule; null clears recurrence."
    },
    "assigneeUserId": {
      "type": [
        "string",
        "null"
      ],
      "description": "Replacement assignee user id; null clears the assignee."
    },
    "ownerUserId": {
      "type": [
        "string",
        "null"
      ],
      "description": "Replacement owner user id; null clears the owner."
    },
    "visibleToHousehold": {
      "type": "boolean",
      "description": "Whether the task is visible to the whole household."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for dueAt, e.g. Europe/Prague."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string"
    },
    "taskId": {
      "type": "string"
    },
    "link": {
      "type": "string"
    },
    "updated": {
      "type": "boolean"
    }
  },
  "required": [
    "agreementId",
    "link",
    "updated"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴familia_cancel_task(agreementId, timezone)

Use this only when the user explicitly asks to cancel, archive, or hide an existing Familia task without permanently deleting the record. Do not use to mark a task done; use familia_update_task instead.

入力スキーマ

{
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "minLength": 1,
      "description": "Familia task id to cancel. This field is named agreementId for legacy backend compatibility."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone used by the backend request."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string"
    },
    "taskId": {
      "type": "string"
    },
    "deleted": {
      "type": "boolean"
    },
    "status": {
      "type": "string"
    },
    "deletionType": {
      "type": "string",
      "enum": [
        "soft",
        "hard"
      ]
    },
    "link": {
      "type": "string"
    }
  },
  "required": [
    "agreementId",
    "deleted",
    "link"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴familia_delete_task(agreementId, timezone)

Use this only when the user explicitly asks to permanently delete or hard delete an existing Familia task. This removes the record and related task schedules, occurrences, reminders, and attachments.

入力スキーマ

{
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "minLength": 1,
      "description": "Familia task id to permanently delete. This field is named agreementId for legacy backend compatibility."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone used by the backend request."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string"
    },
    "taskId": {
      "type": "string"
    },
    "deleted": {
      "type": "boolean"
    },
    "status": {
      "type": "string"
    },
    "deletionType": {
      "type": "string",
      "enum": [
        "soft",
        "hard"
      ]
    },
    "link": {
      "type": "string"
    }
  },
  "required": [
    "agreementId",
    "deleted",
    "link"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴familia_update_plan(planItemId, title, kind, notes, location, ...)

Use this when the user asks to rename, reschedule, move, update location, link tasks, change participants, or otherwise edit an existing Familia plan. Do not use to create a new plan. Updates can synchronize copies already imported by invited guests and queue notifications; delivered notifications cannot be recalled.

入力スキーマ

{
  "type": "object",
  "properties": {
    "planItemId": {
      "type": "string",
      "minLength": 1,
      "description": "Familia plan item id to update."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Replacement plan title."
    },
    "kind": {
      "type": "string",
      "enum": [
        "event",
        "birthday",
        "name_day",
        "school",
        "activity",
        "care",
        "travel",
        "holiday",
        "chore",
        "checklist",
        "other"
      ],
      "description": "Replacement plan category."
    },
    "notes": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2000
        },
        {
          "type": "null"
        }
      ],
      "description": "Replacement plan notes; null clears notes."
    },
    "location": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 300
        },
        {
          "type": "null"
        }
      ],
      "description": "Replacement location; null clears location."
    },
    "startAt": {
      "type": "string",
      "description": "ISO datetime. When provided, replaces the plan schedule with a one-time schedule."
    },
    "endAt": {
      "type": [
        "string",
        "null"
      ],
      "description": "ISO datetime for replacement end time; null clears end time."
    },
    "allDay": {
      "type": "boolean",
      "description": "Whether the replacement schedule is all-day."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for startAt/endAt, e.g. Europe/Prague."
    },
    "participantUserIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Replacement participant user ids."
    },
    "agreementIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Replacement related task ids."
    },
    "requiresConfirmation": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Whether participants should confirm coverage or attendance; null clears the setting."
    }
  },
  "required": [
    "planItemId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "planItemId": {
      "type": "string"
    },
    "link": {
      "type": "string"
    },
    "updated": {
      "type": "boolean"
    }
  },
  "required": [
    "planItemId",
    "link",
    "updated"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴familia_delete_plan(planItemId, timezone)

Use this only when the user explicitly asks to delete, remove, or cancel an existing Familia plan item. Do not use to reschedule or complete a plan; use familia_update_plan instead. Cancelling a shared plan can update existing guest copies and queue cancellation notifications; delivered notifications cannot be recalled.

入力スキーマ

{
  "type": "object",
  "properties": {
    "planItemId": {
      "type": "string",
      "minLength": 1,
      "description": "Familia plan item id to delete or cancel."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone used by the backend request."
    }
  },
  "required": [
    "planItemId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "planItemId": {
      "type": "string"
    },
    "deleted": {
      "type": "boolean"
    },
    "link": {
      "type": "string"
    }
  },
  "required": [
    "planItemId",
    "link"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴familia_batch_write(operations, continueOnError, idempotencyKey, timezone)

Use this when the user explicitly asks to create or modify multiple Familia tasks, list tasks, plans, or task attachments in one request, or when one prompt contains multiple standalone dated actions that should become separate tasks. When the same task or plan repeats, use repeatRule/rrule on one operation instead of creating duplicate one-time operations. For a main event/trip plus clearly related dated actions, prefer one create_plan operation with relatedTasks. Internally this runs bounded individual write operations one by one; it does not create a backend transaction. Operations can queue assignment notifications and reminders; delivered notifications cannot be recalled.

入力スキーマ

{
  "type": "object",
  "properties": {
    "operations": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "action": {
                "type": "string",
                "const": "create_task"
              },
              "householdId": {
                "type": "string",
                "minLength": 1
              },
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "description": {
                "type": "string",
                "maxLength": 2000
              },
              "dueAt": {
                "type": "string"
              },
              "allDay": {
                "type": "boolean"
              },
              "assigneeUserId": {
                "type": "string"
              },
              "ownerUserId": {
                "type": "string"
              },
              "timezone": {
                "type": "string"
              },
              "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."
              },
              "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\"."
              },
              "leadMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10080
              },
              "todoList": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "maxLength": 120
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "maxLength": 64
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "done": {
                          "type": "boolean"
                        },
                        "subtasks": {
                          "type": "array",
                          "items": {
                            "$ref": "#/properties/operations/items/anyOf/0/properties/todoList/properties/items/items"
                          },
                          "maxItems": 100
                        }
                      },
                      "required": [
                        "title"
                      ],
                      "additionalProperties": false
                    },
                    "minItems": 1,
                    "maxItems": 250
                  }
                },
                "required": [
                  "items"
                ],
                "additionalProperties": false
              },
              "idempotencyKey": {
                "type": "string",
                "minLength": 1,
                "maxLength": 160,
                "description": "Optional stable retry key. Reusing the same key for the same create operation returns the original result instead of creating a duplicate."
              }
            },
            "required": [
              "action",
              "householdId",
              "title"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "type": "string",
                "const": "create_list_task"
              },
              "householdId": {
                "type": "string",
                "minLength": 1
              },
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "listTitle": {
                "type": "string",
                "maxLength": 120
              },
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/properties/operations/items/anyOf/0/properties/todoList/properties/items/items"
                },
                "minItems": 1,
                "maxItems": 250
              },
              "description": {
                "type": "string",
                "maxLength": 2000
              },
              "dueAt": {
                "type": "string"
              },
              "allDay": {
                "type": "boolean"
              },
              "assigneeUserId": {
                "type": "string"
              },
              "ownerUserId": {
                "type": "string"
              },
              "timezone": {
                "type": "string"
              },
              "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."
              },
              "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\"."
              },
              "leadMinutes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10080
              },
              "idempotencyKey": {
                "$ref": "#/properties/operations/items/anyOf/0/properties/idempotencyKey"
              }
            },
            "required": [
              "action",
              "householdId",
              "title",
              "items"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "type": "string",
                "const": "create_plan"
              },
              "householdId": {
                "type": "string",
                "minLength": 1
              },
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "kind": {
                "type": "string",
                "enum": [
                  "event",
                  "birthday",
                  "name_day",
                  "school",
                  "activity",
                  "care",
                  "travel",
                  "holiday",
                  "chore",
                  "checklist",
                  "other"
                ]
              },
              "notes": {
                "type": "string",
                "maxLength": 2000
              },
              "location": {
                "type": "string",
                "maxLength": 300
              },
              "startAt": {
                "type": "string"
              },
              "endAt": {
                "type": "string"
              },
              "allDay": {
                "type": "boolean"
              },
              "timezone": {
                "type": "string"
              },
              "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."
              },
              "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"
                }
              },
              "agreementIds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "relatedTasks": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "title": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200,
                      "description": "Short title for one distinct related action, e.g. \"Leave for Prague Airport\" or \"Outbound flight\"."
                    },
                    "description": {
                      "type": "string",
                      "maxLength": 2000,
                      "description": "Optional details for this one related action."
                    },
                    "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."
                    },
                    "allDay": {
                      "type": "boolean",
                      "description": "Whether this related task is all-day."
                    },
                    "assigneeUserId": {
                      "type": "string",
                      "description": "Optional Familia user id responsible for this related task."
                    },
                    "ownerUserId": {
                      "type": "string",
                      "description": "Optional Familia user id that owns this related task."
                    },
                    "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."
                    },
                    "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\"."
                    },
                    "leadMinutes": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 10080,
                      "description": "Reminder lead time in minutes before dueAt. Defaults to 0."
                    },
                    "idempotencyKey": {
                      "$ref": "#/properties/operations/items/anyOf/0/properties/idempotencyKey"
                    }
                  },
                  "required": [
                    "title"
                  ],
                  "additionalProperties": false
                },
                "maxItems": 20
              },
              "requiresConfirmation": {
                "type": "boolean"
              },
              "idempotencyKey": {
                "$ref": "#/properties/operations/items/anyOf/0/properties/idempotencyKey"
              }
            },
            "required": [
              "action",
              "householdId",
              "title"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "type": "string",
                "const": "update_task"
              },
              "agreementId": {
                "type": "string",
                "minLength": 1
              },
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 2000
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "done",
                  "cancelled",
                  "pending",
                  "rejected"
                ]
              },
              "dueAt": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "repeatRule": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "assigneeUserId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "ownerUserId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "visibleToHousehold": {
                "type": "boolean"
              },
              "timezone": {
                "type": "string"
              }
            },
            "required": [
              "action",
              "agreementId"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "type": "string",
                "const": "cancel_task"
              },
              "agreementId": {
                "type": "string",
                "minLength": 1
              },
              "timezone": {
                "type": "string"
              }
            },
            "required": [
              "action",
              "agreementId"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "type": "string",
                "const": "delete_task"
              },
              "agreementId": {
                "type": "string",
                "minLength": 1
              },
              "timezone": {
                "type": "string"
              }
            },
            "required": [
              "action",
              "agreementId"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "type": "string",
                "const": "create_todo_list_attachment"
              },
              "targetType": {
                "type": "string",
                "enum": [
                  "task",
                  "plan"
                ]
              },
              "targetId": {
                "type": "string",
                "minLength": 1
              },
              "title": {
                "type": "string",
                "maxLength": 120
              },
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/properties/operations/items/anyOf/0/properties/todoList/properties/items/items"
                },
                "minItems": 1,
                "maxItems": 250
              },
              "timezone": {
                "type": "string"
              }
            },
            "required": [
              "action",
              "targetType",
              "targetId",
              "items"
            ],
            "additionalProperties": false
          }
        ]
      },
      "minItems": 1,
      "maxItems": 20,
      "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."
    },
    "continueOnError": {
      "type": "boolean",
      "default": false,
      "description": "When true, continue after a failed operation and return partial-success results. Defaults to false."
    },
    "idempotencyKey": {
      "$ref": "#/properties/operations/items/anyOf/0/properties/idempotencyKey"
    },
    "timezone": {
      "type": "string",
      "description": "Default IANA timezone for operations that omit their own timezone."
    }
  },
  "required": [
    "operations"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer"
    },
    "succeeded": {
      "type": "integer"
    },
    "failed": {
      "type": "integer"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": true
      }
    }
  },
  "required": [
    "count",
    "succeeded",
    "failed",
    "results"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢familia_find_free_days(consecutiveDays, startDate, horizonDays, householdId, timezone, ...)

Use this when the user asks to find free days, open dates, vacation windows, long weekends, or consecutive days without hard Familia availability blockers. Do not use for listing tasks on one known date.

入力スキーマ

{
  "type": "object",
  "properties": {
    "consecutiveDays": {
      "type": "integer",
      "minimum": 1,
      "maximum": 31,
      "default": 4,
      "description": "Required length of each free-day run. Defaults to 4."
    },
    "startDate": {
      "type": "string",
      "description": "YYYY-MM-DD or ISO datetime. Defaults to today."
    },
    "horizonDays": {
      "type": "integer",
      "minimum": 1,
      "maximum": 366,
      "default": 120,
      "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."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone used for day boundaries, e.g. Europe/Prague."
    },
    "busyStartHour": {
      "type": "integer",
      "minimum": 0,
      "maximum": 23,
      "description": "Start hour of the day window to consider busy. Defaults to 0."
    },
    "busyEndHour": {
      "type": "integer",
      "minimum": 1,
      "maximum": 24,
      "description": "End hour of the day window to consider busy. Defaults to 24."
    },
    "blockingPolicy": {
      "type": "string",
      "enum": [
        "availability",
        "strict"
      ],
      "default": "availability",
      "description": "availability ignores soft reminders such as chores, checklists, birthdays/name days and ordinary tasks; strict treats any timeline item as busy."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 8,
      "description": "Maximum number of free-day runs to return. Defaults to 8."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "startDate": {
      "type": "string"
    },
    "horizonDays": {
      "type": "integer"
    },
    "consecutiveDays": {
      "type": "integer"
    },
    "timezone": {
      "type": "string"
    },
    "blockingPolicy": {
      "type": "string",
      "enum": [
        "availability",
        "strict"
      ]
    },
    "securityNotice": {
      "type": "string"
    },
    "count": {
      "type": "integer"
    },
    "runs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string"
          },
          "endDate": {
            "type": "string"
          },
          "days": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "link": {
            "type": "string"
          }
        },
        "required": [
          "startDate",
          "endDate",
          "days"
        ],
        "additionalProperties": true
      }
    },
    "caveat": {
      "type": "string"
    }
  },
  "required": [
    "startDate",
    "horizonDays",
    "consecutiveDays",
    "timezone",
    "blockingPolicy",
    "securityNotice",
    "count",
    "runs",
    "caveat"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 25 件
検証済みバージョンは記録されていませんツール 25 件