{
  "name": "create_feishu_task",
  "description": "Batch creates Feishu tasks or nested subtasks. Pass an array of task items; each item has summary (required), optional description/due/members/repeat_rule/start/mode/is_milestone, optional parentTaskGuid (create under existing task), and optional subTasks (nested subtasks, multi-level). Use open_id from get_feishu_users for assignees. Min 1, max 50 top-level items; max 50 subTasks per level. Returns nested results and path-indexed errors.",
  "arguments": {
    "type": "object",
    "properties": {
      "tasks": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "parentTaskGuid": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100,
              "description": "Parent task GUID (optional). When set, creates a subtask under this task; requires edit permission on the parent."
            },
            "summary": {
              "type": "string",
              "minLength": 1,
              "maxLength": 3000,
              "description": "Task title (required). Max 3000 UTF-8 characters."
            },
            "description": {
              "type": "string",
              "maxLength": 3000,
              "description": "Task description (optional). Max 3000 UTF-8 characters."
            },
            "dueTimestamp": {
              "type": "string",
              "description": "Timestamp in milliseconds since 1970-01-01 00:00:00 UTC. Example: \"1675454764000\"."
            },
            "isDueAllDay": {
              "type": "boolean",
              "default": false,
              "description": "Whether the time is all-day. If true, only the date part of timestamp is used."
            },
            "completedAt": {
              "type": "string",
              "description": "Completion timestamp in ms (optional). Omit or \"0\" = unfinished; set to create a completed task."
            },
            "assigneeIds": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "maxItems": 50,
              "description": "Assignee open_ids (optional). Use open_id from get_feishu_users. Max 50."
            },
            "followerIds": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "maxItems": 50,
              "description": "Follower open_ids (optional). Use open_id from get_feishu_users. Max 50."
            },
            "repeatRule": {
              "type": "string",
              "maxLength": 1000,
              "description": "Recurrence rule (optional). Example: \"FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR\"."
            },
            "startTimestamp": {
              "$ref": "#/properties/tasks/items/properties/dueTimestamp"
            },
            "isStartAllDay": {
              "$ref": "#/properties/tasks/items/properties/isDueAllDay"
            },
            "mode": {
              "type": "number",
              "enum": [
                1,
                2
              ],
              "default": 2,
              "description": "Task mode (optional): 1 = all assignees must complete, 2 = any assignee can complete. Default 2."
            },
            "isMilestone": {
              "type": "boolean",
              "default": false,
              "description": "Whether the task is a milestone (optional). Default false."
            },
            "subTasks": {
              "type": "array",
              "items": {
                "$ref": "#/properties/tasks/items"
              },
              "maxItems": 50,
              "description": "Nested subtasks (optional). Same shape as parent; supports multi-level nesting. Max 50 per level."
            }
          },
          "required": [
            "summary"
          ],
          "additionalProperties": false,
          "description": "Task item: summary (required), optional description/due/members/subTasks etc. Use subTasks for nested subtasks."
        },
        "minItems": 1,
        "maxItems": 50,
        "description": "Array of tasks to create (required). Each item has summary, description?, parentTaskGuid? (for subtask under existing task), subTasks? (nested subtasks). Min 1, max 50 top-level."
      }
    },
    "required": [
      "tasks"
    ],
    "additionalProperties": false,
    "$schema": "http://json-schema.org/draft-07/schema#"
  }
}