*REST API › Objects › Operations*

# Planner service

> Staff or fleet service pending coverage, or already covered.

A staff or fleet service of an order that is pending coverage or already covered. When `staffMemberId` and `vehicleId` are null the service is uncovered. The identifier you use to assign it is `orderServiceId`, not an `id`. List the services of a date window with [`GET /api/v1/planner/services`](https://docs.filmo.io/rest-api/endpoint-reference/planner/list-the-services-to-cover).

Schemas: `PlannerServiceDto`

## Attributes

| Name | Type | Description |
| --- | --- | --- |
| `orderServiceId` | string | Service line identifier. It is the one passed when assigning. |
| `rowKind` | string | Which row this is. A service comes as ONE `summary` row (the service itself, with `staffMemberId` and `vehicleId` always null) plus one `detail` row per person or vehicle assigned to it, all with the same `orderServiceId`. A service is covered when it has `detail` rows with an assignee, and uncovered when it only has the `summary` row. `summary`, `detail` |
| `orderId` | string | Order the service is attached to; an empty string on internal services, which belong to no order. |
| `orderNumber` | string | Human-readable number of that order; an empty string on internal services. |
| `orderStatus` | string | Order status. |
| `contactName` | string | Customer of the order; null if not recorded. |
| `projectId` | string | Associated project; null if not applicable. |
| `projectName` | string | Project name; null if not applicable. |
| `serviceId` | string | Catalogue service it comes from. |
| `serviceName` | string | Service name. |
| `serviceType` | string | Type: crew, fleet or general. |
| `staffMemberId` | string | Assigned staff member. Only `detail` rows carry it; it is null on the `summary` row even when the service is covered. |
| `vehicleId` | string | Assigned vehicle. Only `detail` rows carry it; it is null on the `summary` row even when the service is covered. |
| `startDate` | string<date-time> | Service start in ISO 8601 UTC. |
| `endDate` | string<date-time> | Service end in ISO 8601 UTC. |
| `status` | string | Service line status. |
| `qty` | number | How many units of the service are requested. |
| `taskId` | string | Linked schedule task; null if there is none. |
| `requirements` | object[] | Resources needed to cover it. |
| `requirements.requiredResourceType` | string | What is needed: personnel or vehicle. `personnel`, `vehicle` |
| `requirements.qty` | number | How many are needed. |

## Values

| Field | Values |
| --- | --- |
| `rowKind` | `summary`, `detail` |

## Example

*Planner service · Generated from the schema*

```json
{
  "orderServiceId": "string",
  "rowKind": "summary",
  "orderId": "string",
  "orderNumber": "string",
  "orderStatus": "string",
  "contactName": "Example",
  "projectId": "string",
  "projectName": "Example",
  "serviceId": "string",
  "serviceName": "Example",
  "serviceType": "string",
  "staffMemberId": "string",
  "vehicleId": "string",
  "startDate": "2026-09-01T08:00:00Z",
  "endDate": "2026-09-01T08:00:00Z",
  "status": "string",
  "qty": 1,
  "taskId": "string",
  "requirements": [
    {
      "requiredResourceType": "personnel",
      "qty": 1
    }
  ]
}
```

## Returned by

- [`GET /api/v1/planner/services`](https://docs.filmo.io/rest-api/endpoint-reference/planner/list-the-services-to-cover) — List the services to cover

## Modified by

No operation.

---

Canonical URL: https://docs.filmo.io/rest-api/objects/planner-service  
Last updated: 2026-10-25