*MCP › Reference › Operations › Planner*

# Assign a resource to a service

> Puts a person or a vehicle on a service.

The target is EXACTLY one: the pair `orderId` + `orderServiceId`, or a task, or an internal service. The resource, also exactly one. `conflictCount` says how many commitments of the resource overlap with this assignment: the assignment is made anyway, and you decide what to do with the number. It responds 400 `validation_error`, with `errors[].path` on the field, when `staffId`, `vehicleId` or the target (`orderServiceId`, `taskId`, `internalServiceId`) does not exist or belongs to another account, when the target does not accept that type of resource (a task only accepts staff; a service, the resource types its requirements declare) and when the task does not block availability; 409 `conflict` when the resource is already assigned to that target or is unavailable in that period. Nothing is written in any of those cases.

TOOL `filmo_planner_assignment_create` · `planner:write` · 120/min

## Arguments

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `orderId` | string | No | Order the service is attached to. |
| `orderServiceId` | string | No | Service line within that order. Goes with `orderId`. |
| `taskId` | string | No | Schedule task to assign the resource to. |
| `internalServiceId` | string | No | Internal assignment to cover. |
| `staffId` | string | No | Staff member being assigned. |
| `vehicleId` | string | No | Vehicle being assigned. |
| `role` | string | No | Role they are assigned with. E.g.: "Conductor". |
| `idempotencyKey` | string | No | Idempotency key chosen by the client (a UUID is recommended). Repeating the same key with the same arguments within 24 h returns the stored response without executing again; with different arguments it responds 422. It is the safe way to retry after a network failure. |

## Result

On success the result carries `structuredContent` with `data` and `meta`. These are the attributes of `data`.

| Name | Type | Description |
| --- | --- | --- |
| `status` | string | Operation result. |
| `conflictCount` | number | Commitments of the resource that overlap with this assignment. |

*Call · filmo_planner_assignment_create*

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "filmo_planner_assignment_create",
    "arguments": {}
  }
}
```

*Result (generated from the schema)*

```json
{
  "structuredContent": {
    "data": {
      "status": "<status>",
      "conflictCount": 1
    },
    "meta": {
      "idempotencyKey": "<the key you sent, or the one the server generated>",
      "rateLimit": {
        "limit": 120,
        "remaining": 119,
        "reset": 42
      }
    }
  }
}
```

## The same operation by REST

This tool runs [`POST /api/v1/planner/assignments`](https://docs.filmo.io/rest-api/endpoint-reference/planner/assign-a-resource-to-a-service).

---

Canonical URL: https://docs.filmo.io/mcp/tools/planner/filmo-planner-assignment-create  
Last updated: 2026-10-25