batch_create_tasks
Create multiple tasks in a single request to reduce latency. Handles partial success, returning successful tasks and failure details.
Instructions
[LOCAL — bulk write operation via SOAP. Beta MCP cannot create tasks.]
Batch create multiple tasks in a single SOAP call.
Much faster than calling create_task() multiple times. Creates all tasks in a single SOAP request, significantly reducing latency for bulk creation.
Args: tasks: List of task creation dictionaries. Each dict must contain: - Description: Task description (required) - FatherKey: Parent work entity key URI (required) Optional fields: Key, ScheduleStartDate, ScheduleFinishDate, Duration, etc. (same as create_task) options: Optional WorkOptionsDto dictionary (applies to all tasks)
Returns:
Dict with per-task results (SOAP may partially succeed):
- success: True only if all tasks succeeded
- created: List of per-task entries in the same order as tasks:
- description: task description (if available)
- key: created task key (for succeeded tasks) or null (for failed tasks)
- status: "success" | "failed"
- error: present only for failed tasks
- summary: {total, succeeded, failed}
- warnings: optional list of warning messages
Raises: PlanviewValidationError: If task data is invalid PlanviewAuthError: If authentication fails PlanviewError: For other errors
Example: tasks = [ { "Description": "Task 1", "FatherKey": "key://2/$Plan/12345", "ScheduleStartDate": "2024-01-01T08:00:00", "ScheduleFinishDate": "2024-01-15T17:00:00" }, { "Description": "Task 2", "FatherKey": "key://2/$Plan/12345", "ScheduleStartDate": "2024-01-16T08:00:00", "ScheduleFinishDate": "2024-01-30T17:00:00" } ] result = await batch_create_tasks(tasks)
Notes: - All tasks are created in a single SOAP call, making this much faster than individual create_task() calls - If some tasks fail, this tool still returns the successful ones so callers can avoid retrying the already-created tasks (which would create duplicates) - Response fields may be null - this is normal SOAP API behavior - Use read_task() to verify individual tasks if needed - Recommended to use external Key (ekey://) to prevent duplicates
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tasks | Yes | List of task dicts (each needs Description, FatherKey). | |
| options | No | Optional WorkOptionsDto for all tasks. |