---
title: "PUT /program/updateProgramV2"
method: PUT
path: "/program/updateProgramV2"
tags: ["ProgramService"]
---

# PUT /program/updateProgramV2

`PUT /program/updateProgramV2`

## Request body

- UpdateProgramV2Request — NOTE: This endpoint supports partial updates and only needs the id and the fields to update, not the entire model.
  - `id` string
  - `name` string
  - `color` string
  - `enabled` boolean
  - `dailyInterval` DailyIntervalCadence
    - `intervalDays` integer
  - `daysOfWeek` DaysOfWeekCadence
    - `daysOfWeek` string[]
  - `oddDays` OddDaysCadence
  - `evenDays` EvenDaysCadence
  - `plannedRuns` UpdateProgramV2RequestPlannedRunsV2
    - `runs` PlannedRunV2[]
      - `fixedStart` FixedStart
        - `startAt` Time
          - `hour` integer
          - `minute` integer
          - `second` integer
      - `sunStart` SunStart
        - `sunEvent` 'BEFORE_RISE' | 'AFTER_RISE' | 'BEFORE_SET' | 'AFTER_SET', enum
        - `offsetSeconds` string
      - `entityRuns` EntityRun[]
        - `entityId` string
        - `durationSec` string
      - `runConcurrently` boolean
      - `cycleAndSoak` boolean
  - `rainSkipEnabled` boolean
  - `settings` ProgramSettings — NOTE: either provide a startOnDate for a fixed start date, or provide startOn and endOn for annual start and end dates
    - `startOn` CalendarDate
      - `month` integer
      - `day` integer
    - `endOn` CalendarDate
      - `month` integer
      - `day` integer
    - `startOnNotificationsEnabled` boolean
    - `endOnNotificationsEnabled` boolean
    - `startOnDate` Date
      - `year` integer
      - `month` integer
      - `day` integer

## Response `200`

OK

- UpdateProgramV2Response
  - `program` ProgramV2
    - `id` string
    - `name` string
    - `color` string
    - `enabled` boolean
    - `dailyInterval` DailyIntervalCadence
      - `intervalDays` integer
    - `daysOfWeek` DaysOfWeekCadence
      - `daysOfWeek` string[]
    - `oddDays` OddDaysCadence
    - `evenDays` EvenDaysCadence
    - `plannedRuns` PlannedRunV2[]
      - `fixedStart` FixedStart
        - `startAt` Time
          - `hour` integer
          - `minute` integer
          - `second` integer
      - `sunStart` SunStart
        - `sunEvent` 'BEFORE_RISE' | 'AFTER_RISE' | 'BEFORE_SET' | 'AFTER_SET', enum
        - `offsetSeconds` string
      - `entityRuns` EntityRun[]
        - `entityId` string
        - `durationSec` string
      - `runConcurrently` boolean
      - `cycleAndSoak` boolean
    - `assignments` Assignment[]
      - `entityId` string — Represents a (program, valve) relationship. This must be a valve ID.
    - `rainSkipEnabled` boolean
    - `settings` ProgramSettings — NOTE: either provide a startOnDate for a fixed start date, or provide startOn and endOn for annual start and end dates
      - `startOn` CalendarDate
        - `month` integer
        - `day` integer
      - `endOn` CalendarDate
        - `month` integer
        - `day` integer
      - `startOnNotificationsEnabled` boolean
      - `endOnNotificationsEnabled` boolean
      - `startOnDate` Date
        - `year` integer
        - `month` integer
        - `day` integer

---

[API](https://skmtc.net/rach/apis/smart-hose-timer.md) · [All operations](https://skmtc.net/rach/apis/smart-hose-timer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rach/smart-hose-timer/versions/990335185e30/schema)
