*MCP › Referencia › Operaciones › Calendario*

# Obtener la agenda de un rango

> Devuelve la agenda consolidada de una ventana: proyectos, pedidos, tareas, servicios internos y servicios de pedido.

No pagina: está acotada por fechas, que es lo que pide un calendario, pero cada capa tiene un tope y la respuesta no indica cuándo se ha cortado: como máximo 200 proyectos, 200 pedidos y 500 tareas, ordenados por fecha de inicio, de modo que una capa que devuelve exactamente su tope puede estar truncada (usa una ventana más corta). Solo aparecen los registros activos: proyectos en `draft`, `budgeted`, `confirmed` o `in_progress`, y pedidos en `draft`, `reserved`, `prepared_partially`, `prepared`, `picked_up_partially`, `picked_up`, `returned_partially`, `returned` o `checked_in_partially`; un pedido `checked_in`, cancelado o archivado no se devuelve. Por tanto, no es una instantánea completa: no borres un registro solo porque falte. Las personas asignadas salen por identificador y nombre; sus datos de contacto no.

HERRAMIENTA `filmo_schedule_get` · `schedule:read` · 120/min · Anotación del servidor: Solo lectura · Anotación del servidor: Idempotente

## Argumentos

| Nombre | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `startDate` | string<date-time> | Sí | Inicio de la ventana, en ISO 8601 con desplazamiento. |
| `endDate` | string<date-time> | Sí | Fin de la ventana, en ISO 8601 con desplazamiento. |
| `layers` | string[] | No | Qué capas obtener: projects, orders, tasks, internal_services u order_services. Por defecto, todas. Repite el parámetro o separa los valores con comas para indicar varias. `projects`, `orders`, `tasks`, `internal_services`, `order_services` |
| `projectStatus` | string[] | No | Filtra los proyectos por estado. |
| `orderStatus` | string[] | No | Filtra los pedidos por estado. |
| `assignedToStaffIds` | string[] | No | Conserva solo lo asignado a estos miembros del personal. |

## Resultado

En un éxito el resultado lleva `structuredContent` con `data` y `meta`. Estos son los atributos de `data`.

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `projects` | object[] | Proyectos que caen dentro de la ventana. |
| `projects.id` | string |  |
| `projects.name` | string |  |
| `projects.startDate` | string<date-time> |  |
| `projects.endDate` | string<date-time> |  |
| `projects.status` | string |  |
| `orders` | object[] | Pedidos que caen dentro de la ventana. |
| `orders.id` | string |  |
| `orders.orderNumber` | string |  |
| `orders.startDate` | string<date-time> |  |
| `orders.endDate` | string<date-time> |  |
| `orders.status` | string |  |
| `orders.contactName` | string |  |
| `orders.projectName` | string |  |
| `tasks` | object[] | Tareas del planificador. Sin los datos de contacto de las personas a las que están asignadas. |
| `tasks.id` | string |  |
| `tasks.title` | string |  |
| `tasks.startDate` | string<date-time> |  |
| `tasks.endDate` | string<date-time> |  |
| `tasks.isAllDay` | boolean |  |
| `tasks.isCompleted` | boolean |  |
| `tasks.type` | string |  |
| `tasks.projectId` | string |  |
| `tasks.assignedStaff` | object[] |  |
| `tasks.assignedStaff.id` | string | Identificador del miembro del personal. |
| `tasks.assignedStaff.fullName` | string | Nombre que se muestra en la agenda. |
| `internalServices` | object[] | Asignaciones no vinculadas a un pedido. |
| `internalServices.id` | string |  |
| `internalServices.title` | string |  |
| `internalServices.serviceType` | string |  |
| `internalServices.startDate` | string<date-time> |  |
| `internalServices.endDate` | string<date-time> |  |
| `internalServices.projectName` | string |  |
| `internalServices.qty` | number |  |
| `internalServices.assignedStaff` | object[] |  |
| `internalServices.assignedStaff.id` | string | Identificador del miembro del personal. |
| `internalServices.assignedStaff.fullName` | string | Nombre que se muestra en la agenda. |
| `internalServices.assignedVehicleIds` | string[] |  |
| `orderServices` | object[] | Servicios de personal y de flota asociados a un pedido. |
| `orderServices.orderId` | string |  |
| `orderServices.orderNumber` | string |  |
| `orderServices.serviceName` | string |  |
| `orderServices.serviceType` | string |  |
| `orderServices.startDate` | string<date-time> |  |
| `orderServices.endDate` | string<date-time> |  |
| `orderServices.contactName` | string |  |
| `orderServices.projectName` | string |  |
| `orderServices.qty` | number |  |
| `orderServices.assignedCount` | number |  |
| `orderServices.assignedStaff` | object[] |  |
| `orderServices.assignedStaff.id` | string | Identificador del miembro del personal. |
| `orderServices.assignedStaff.fullName` | string | Nombre que se muestra en la agenda. |

*Llamada · filmo_schedule_get*

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "filmo_schedule_get",
    "arguments": {
      "startDate": "2026-09-01T08:00:00Z",
      "endDate": "2026-09-01T08:00:00Z"
    }
  }
}
```

*Resultado (generado desde el esquema)*

```json
{
  "structuredContent": {
    "data": {
      "projects": [
        {
          "id": "id_8f2a1c",
          "name": "Example",
          "startDate": "2026-09-01T08:00:00Z",
          "endDate": "2026-09-01T08:00:00Z",
          "status": "<status>"
        }
      ],
      "orders": [
        {
          "id": "id_8f2a1c",
          "orderNumber": "<orderNumber>",
          "startDate": "2026-09-01T08:00:00Z",
          "endDate": "2026-09-01T08:00:00Z",
          "status": "<status>",
          "contactName": "Example",
          "projectName": "Example"
        }
      ],
      "tasks": [
        {
          "id": "id_8f2a1c",
          "title": "Example",
          "startDate": "2026-09-01T08:00:00Z",
          "endDate": "2026-09-01T08:00:00Z",
          "isAllDay": true,
          "isCompleted": true,
          "type": "<type>",
          "projectId": "proj_8f2a1c",
          "assignedStaff": [
            {
              "id": "id_8f2a1c",
              "fullName": "Example"
            }
          ]
        }
      ],
      "internalServices": [
        {
          "id": "id_8f2a1c",
          "title": "Example",
          "serviceType": "<serviceType>",
          "startDate": "2026-09-01T08:00:00Z",
          "endDate": "2026-09-01T08:00:00Z",
          "projectName": "Example",
          "qty": 1,
          "assignedStaff": [
            {
              "id": "id_8f2a1c",
              "fullName": "Example"
            }
          ],
          "assignedVehicleIds": [
            "assi_8f2a1c"
          ]
        }
      ],
      "orderServices": [
        {
          "orderId": "orde_8f2a1c",
          "orderNumber": "<orderNumber>",
          "serviceName": "Example",
          "serviceType": "<serviceType>",
          "startDate": "2026-09-01T08:00:00Z",
          "endDate": "2026-09-01T08:00:00Z",
          "contactName": "Example",
          "projectName": "Example",
          "qty": 1,
          "assignedCount": 1,
          "assignedStaff": [
            {
              "id": "id_8f2a1c",
              "fullName": "Example"
            }
          ]
        }
      ]
    },
    "meta": {
      "rateLimit": {
        "limit": 120,
        "remaining": 119,
        "reset": 42
      }
    }
  }
}
```

## Prompts de ejemplo

*Prompt*

```text
¿Qué hay en el calendario entre el lunes y el viernes?
```

## La misma operación por REST

Esta herramienta ejecuta [`GET /api/v1/schedule`](https://docs.filmo.io/es/rest-api/endpoint-reference/schedule/get-the-schedule-for-a-range).

---

URL canónica: https://docs.filmo.io/es/mcp/tools/schedule/filmo-schedule-get  
Última actualización: 2026-10-25