> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flexxible.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Actualizar una programación cron

> Actualiza una programación cron existente para un grupo de workspaces. Se deben proporcionar todos los campos de la programación, ya que este endpoint implementa semántica de reemplazo completo. El sistema valida que no exista una programación en conflicto (mismo tipo, hora y día después de la conversión de zona horaria), excluyendo la programación actual que se está actualizando. Para eliminar un dispositivo intermedio de una programación START, omita el campo intermediate_device.



## OpenAPI

````yaml /api-reference/openapi-v1.json put /v1/organizations/{organization_id}/workspace-groups/{workspace_group_id}/schedules/{schedule_id}
openapi: 3.0.3
info:
  title: API Publica Portal
  version: 1.0.0
  description: Api publica REST para portal
servers:
  - url: https://api.staging.flxwvdexternal.com
    description: Staging API server
security:
  - bearerAuth: []
tags: []
paths:
  /v1/organizations/{organization_id}/workspace-groups/{workspace_group_id}/schedules/{schedule_id}:
    put:
      tags:
        - Grupos de workspaces
      summary: Actualizar una programación cron
      description: >-
        Actualiza una programación cron existente para un grupo de workspaces.
        Se deben proporcionar todos los campos de la programación, ya que este
        endpoint implementa semántica de reemplazo completo. El sistema valida
        que no exista una programación en conflicto (mismo tipo, hora y día
        después de la conversión de zona horaria), excluyendo la programación
        actual que se está actualizando. Para eliminar un dispositivo intermedio
        de una programación START, omita el campo intermediate_device.
      operationId: updateWorkspaceGroupSchedule
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            maxLength: 24
            pattern: ^[0-9a-f]{24}$
          description: El identificador único de la organización
          example: 507f1f77bcf86cd799439011
        - name: workspace_group_id
          in: path
          required: true
          schema:
            type: string
            maxLength: 24
            pattern: ^[0-9a-f]{24}$
          description: El identificador único del grupo de workspaces
          example: 507f1f77bcf86cd799439020
        - name: schedule_id
          in: path
          required: true
          schema:
            type: string
            maxLength: 24
            pattern: ^[0-9a-f]{24}$
          description: El identificador único de la programación a actualizar
          example: 507f1f77bcf86cd799439060
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWorkspaceGroupScheduleRequestV1'
            examples:
              update-schedule-time:
                summary: Actualizar programación para ejecutar a una hora diferente
                value:
                  cron_expression: 0 9 * * 1-5
                  time_zone: Eastern Standard Time
                  type: start
              add-intermediate-device:
                summary: >-
                  Agregar dispositivo intermedio a una programación START
                  existente
                value:
                  cron_expression: 0 8 * * 1-5
                  time_zone: Eastern Standard Time
                  type: start
                  intermediate_device: 507f1f77bcf86cd799439050
              remove-intermediate-device:
                summary: Eliminar dispositivo intermedio de la programación START
                value:
                  cron_expression: 0 8 * * 1-5
                  time_zone: Eastern Standard Time
                  type: start
              change-schedule-type:
                summary: Cambiar el tipo de programación de START a STOP
                value:
                  cron_expression: 0 18 * * 1-5
                  time_zone: UTC
                  type: stop
      responses:
        '200':
          description: >-
            Programación actualizada correctamente. La respuesta contiene el
            recurso actualizado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceGroupScheduleV1'
        '400':
          $ref: '#/components/responses/BadRequest'
          description: >-
            Solicitud incorrecta. Causas comunes: - Faltan campos obligatorios
            (cron_expression, time_zone, type) - Formato de expresión cron no
            válido - Valor de zona horaria no válido - Tipo de programación no
            válido (debe ser START, STOP o RESTART) - Formato de ID de Workspace
            intermediate_device no válido
        '401':
          $ref: '#/components/responses/Unauthorized'
          description: No autorizado - se requiere autenticación
        '404':
          $ref: '#/components/responses/NotFound'
          description: >-
            Grupo de workspaces o programación no encontrada, o no pertenece a
            la organización
        '409':
          $ref: '#/components/responses/Conflict'
          description: >-
            Conflicto - Ya existe una programación con el mismo tipo, hora y día
            (después de la conversión de zona horaria), excluyendo la
            programación actual que se está actualizando
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
          description: >-
            Entidad no procesable. Causas comunes: - El ID de Workspace
            intermediate_device no existe o no pertenece a la organización
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    UpdateWorkspaceGroupScheduleRequestV1:
      type: object
      properties:
        cron_expression:
          type: string
          description: >-
            Expresión cron que define cuándo debe ejecutarse la programación.
            Formato: minuto hora día-del-mes mes día-de-la-semana. Ejemplos: '0
            8 * * 1-5' (8 AM entre semana), '0 0 * * 0' (medianoche del
            domingo), '30 14 * * *' (2:30 PM diariamente). Día-de-la-semana:
            0=domingo, 1=lunes, ..., 6=sábado. Admite rangos (1-5), listas
            (1,3,5) y comodines (*). Debe ser un formato de expresión cron
            válido con 5 campos separados por espacios.
          example: 0 8 * * 1-5
        time_zone:
          type: string
          description: >-
            Zona horaria para la ejecución de la programación. Admite
            identificadores IANA (p. ej., 'America/New_York') y Windows (p. ej.,
            'Pacific Standard Time').
          example: Eastern Standard Time
        type:
          type: string
          enum:
            - start
            - stop
            - restart
          description: >-
            Tipo de operación de energía a realizar. START: Enciende los
            Workspaces del grupo. STOP: Apaga los Workspaces del grupo. RESTART:
            Reinicia los Workspaces del grupo.
          example: start
        intermediate_device:
          type: string
          maxLength: 24
          pattern: ^[0-9a-f]{24}$
          description: >-
            Opcional. El identificador único del Workspace de dispositivo
            intermedio. Si se proporciona, indica que debe usarse un dispositivo
            intermedio para operaciones de Wake-on-LAN. Solo aplica a
            programaciones START. Se usa para acciones de Wake-on-LAN en redes
            seguras. El Workspace debe existir y pertenecer a la organización.
            Para eliminar un dispositivo intermedio, omita este campo.
          example: 507f1f77bcf86cd799439050
      required:
        - cron_expression
        - time_zone
        - type
    WorkspaceGroupScheduleV1:
      type: object
      required:
        - id
        - cron_expression
        - time_zone
        - type
      properties:
        id:
          type: string
          pattern: ^[0-9a-f]{24}$
          description: El identificador único de la programación
          example: 507f1f77bcf86cd799439060
        cron_expression:
          type: string
          description: >-
            Expresión cron que define cuándo se ejecuta la programación.
            Formato: minuto hora día-del-mes mes día-de-la-semana.
          example: 0 8 * * 1-5
        time_zone:
          type: string
          description: >-
            Zona horaria para la ejecución de la programación. Admite
            identificadores IANA (p. ej., 'America/New_York') y Windows (p. ej.,
            'Pacific Standard Time').
          example: Eastern Standard Time
        type:
          type: string
          enum:
            - start
            - stop
            - restart
          description: >-
            Tipo de operación de energía: START (enciende), STOP (apaga),
            RESTART (reinicia Workspaces)
        intermediate_device:
          type: string
          pattern: ^[0-9a-f]{24}$
          nullable: true
          description: >-
            El identificador único del workspace del dispositivo intermedio, si
            está configurado. Se usa para acciones de Wake on LAN en redes
            seguras.
          example: 507f1f77bcf86cd799439050
        created_by:
          type: string
          pattern: ^[0-9a-f]{24}$
          nullable: true
          description: ID de usuario que creó la programación
          example: 507f1f77bcf86cd799439070
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            code:
              type: string
            details:
              type: string
          required:
            - message
            - code
      required:
        - error
  responses:
    BadRequest:
      description: Solicitud incorrecta
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: No autorizado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: No encontrado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Conflict:
      description: Conflicto
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    UnprocessableEntity:
      description: Entidad no procesable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Demasiadas solicitudes
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Error interno del servidor
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````