---
search:
  tags:
    - tasks
    - PATCH
seo:
  description: >-
    What this does: Updates an existing pipeline item. This allows you…
    Reference for the PATCH /tasks/pipeline/items/{id} endpoint in the Leadtime
    Public API API.
sidebar:
  badge: PATCH
  label: Edit a planned task
title: Edit a planned task
type: openapi-operation
---
**What this does:**
Updates an existing pipeline item. This allows you to modify the scheduling of a task that has already been planned - for example, moving it to a different time slot, assigning it to a different team member, or changing the task itself. All fields are optional; only provided fields are updated.

**How it works:**
- Partial updates: Only send the fields you want to change
- If a field is not provided, the existing value is preserved
- The same validation rules apply as when creating a pipeline item
- Changes are reflected immediately in the pipeline view

**Required Permission**: User must have either Pipeline.canPlanAll OR Pipeline.canPlanOwnTeams permission

**Permission-based Assignment**:
- Users with **Pipeline.canPlanAll** can assign to any user
- Users with **Pipeline.canPlanOwnTeams** can only assign to themselves or users in their teams

**Validation Rules**:
- **Date range**: Maximum 2 weeks between dateStart and dateEnd
- **Time validation**: Start time must not exceed the work day length for the user
- **Task access**: Users can only plan tasks they have access to view
- **Time increments**: Times must be in 15-minute increments (0, 15, 30, 45, 60, 75, 90, etc.)

**Date/Time Format**: 
- **dateStart/dateEnd**: ISO format (YYYY-MM-DDTHH:mm:ssZ). **CRITICAL**: Only the date part (YYYY-MM-DD) is used - the time component is IGNORED. Always use "T00:00:00Z" or similar. Example: "2025-11-04T00:00:00Z"
- **timeStart/timeEnd**: MINUTES from the beginning of the work day (NOT from midnight, NOT absolute clock time)
  - **Range**: 0 to workDayLength (typically 0-480 for an 8-hour day)
  - **Format**: Must be in 15-minute increments: 0, 15, 30, 45, 60, 75, 90, 105, 120, etc.
  - **Calculation**: Actual time = workDayStartTime + (timeStart/timeEnd minutes)
- **Examples** (assuming 8-hour work day starting at 09:00):
  - `timeStart=0` = 09:00 (start of work day)
  - `timeStart=60` = 10:00 (1 hour after work day start)
  - `timeStart=240` = 13:00 (4 hours = midday)
  - `timeStart=480` = 17:00 (8 hours = end of work day)
- **Planning Multiple Tasks for One Day** (example with 8-hour work day starting at 09:00):
  To schedule multiple tasks sequentially throughout the day, chain them together:
  - Task 1: `timeStart: 0, timeEnd: 75` = 09:00 to 10:15 (1.25 hours)
  - Task 2: `timeStart: 75, timeEnd: 150` = 10:15 to 11:30 (1.25 hours)
  - Task 3: `timeStart: 150, timeEnd: 240` = 11:30 to 13:00 (1.5 hours)
  - Task 4: `timeStart: 240, timeEnd: 330` = 13:00 to 14:30 (1.5 hours)
  - Task 5: `timeStart: 330, timeEnd: 480` = 14:30 to 17:00 (2.5 hours)
- **Important**: timeStart/timeEnd are NOT hours since midnight. If work day starts at 09:00, timeStart=0 means 09:00, not 00:00.
- **Response**: The response dateStart/dateEnd values show calculated absolute times in UTC. To interpret them, extract the time component relative to work day start, not midnight.

**Use cases:**
- Adjust task timing during planning meetings
- Reassign tasks to different team members
- Extend or shorten task duration
- Move tasks to different days or weeks

<Operation source="api-reference" id="pipelinecontroller-updatepipelineitem" />
