---
title: "Update todo"
method: PUT
path: "/v1/todos/{id}"
tags: ["Todos"]
---

# Update todo

`PUT /v1/todos/{id}`

Updates an existing todo item with the provided details. All fields in the request body will overwrite the existing values. Fields not included in the request will remain unchanged.

## Path parameters

- `id` string, required

## Request body

- ToDoUpdateDto
  - `name` string
  - `description` string
  - `status` integer
  - `dueDate` string
  - `assignedUsers` string
  - `estimatedHours` integer
  - `estimatedMinutes` integer
  - `deleted` boolean

## Response `200`

Todo successfully updated

- ToDoDto
  - `id` string
  - `user` string
  - `deleted` boolean
  - `lastUpdate` integer
  - `created` integer
  - `project` ProjectDto
    - `id` string
    - `user` string
    - `lastUpdate` integer
    - `created` integer
    - `deleted` boolean
    - `title` string
    - `description` string
    - `employer` string
    - `office` string
    - `color` integer
    - `taskDefaultBillable` boolean
    - `archived` boolean
    - `salaryVisibility` integer
    - `salary` string, decimal
    - `team` TeamDto
      - `id` string
      - `organization` OrganizationDto
        - `id` string
        - `name` string
        - `description` string
        - `image` string
        - `color` integer
        - `subscription` CustomerSubscriptionDto
          - `id` string
          - `user` string
          - `expires` integer
          - `status` integer
          - `plan` integer
          - `licenses` integer
          - `paymentOption` string
          - `business` string
          - `email` string
          - `firstname` string
          - `lastname` string
          - `vatId` string
          - `displayName` string
          - `street` string
          - `city` string
          - `state` string
          - `zip` string
          - `country` string
          - `countryIso` string
          - `language` string
          - `includeTaxForBusiness` boolean
          - `activated` boolean
          - `pastDue` boolean
          - `cancellationOffer` boolean
          - `subscriptionActive` boolean
          - `subscriptionCancelled` boolean
          - `subscriptionInactive` boolean
          - `paymentProviderActive` boolean
          - `startedTestimonial` string, date-time
          - `activationDate` string, date-time
          - `cancellationDate` string, date-time
          - `permissionAdmin` boolean
          - `valid` boolean
          - `expired` boolean
          - `validAndActivated` boolean
          - `payPalPayment` boolean
          - `stripePayment` boolean
          - `invoicePayment` boolean
          - `googlePlayPayment` boolean
          - `appleStorePayment` boolean
          - `currency` string
          - `businessCustomer` boolean
          - `euCustomer` boolean
          - `eu` boolean
          - `at` boolean
          - `ch` boolean
          - `uk` boolean
          - `product` string
          - `licenseQuantity` integer
          - `active` boolean
          - `trial` boolean
          - `cancelled` boolean
          - `member` boolean
          - `businessOrTrial` boolean
          - `pro` boolean
          - `planEnterprise` boolean
          - `planBusiness` boolean
          - `planPro` boolean
          - `planPlus` boolean
          - `planBasic` boolean
          - `monthlyPlan` boolean
          - `yearlyPlan` boolean
          - `organization` boolean
        - `user` string
        - `aiChatEnabled` boolean
        - `lastUpdate` integer
        - `created` integer
        - `deleted` boolean
        - `permission` OrganizationPermissionDto
          - `invoicing` boolean
          - `billing` boolean
          - `admin` boolean
      - `organizationId` string
      - `name` string
      - `description` string
      - `image` string
      - `color` integer
      - `projectSalaryVisibility` integer
      - `user` string
      - `lastUpdate` integer
      - `created` integer
      - `deleted` boolean
      - `permission` TeamPermissionDto
        - `role` string
        - `owner` boolean
        - `manager` boolean
        - `member` boolean
        - `managerOrOwner` boolean
      - `projects` integer
      - `members` integer
      - `projectSalaryVisible` boolean
    - `permission` ProjectPermissionDto
      - `role` string
      - `owner` boolean
      - `manager` boolean
      - `member` boolean
      - `managerOrOwner` boolean
    - `duration` integer
    - `durationBreak` integer
    - `salaryTotal` string, decimal
    - `salaryBreak` string, decimal
    - `expenses` string, decimal
    - `expensesPaid` string, decimal
    - `mileage` string, decimal
    - `todoEstimatedDuration` integer
    - `todoTrackedDuration` integer
    - `todoCount` integer
    - `titleAndClient` string
    - `salaryVisible` boolean
  - `name` string
  - `description` string
  - `status` integer
  - `dueDate` string
  - `assignedUsers` string
  - `assignedMembers` Member[]
    - `uid` string
    - `firstname` string
    - `lastname` string
    - `email` string
    - `employeeId` string
    - `imageUrl` string
    - `deleted` boolean
    - `activity` Activity
      - `projectId` string
      - `projectTitle` string
      - `projectColor` integer
      - `taskId` string
      - `startDateTime` string
      - `endDateTime` string
      - `location` string
      - `running` boolean
    - `displayName` string
    - `initials` string
  - `estimatedHours` integer
  - `estimatedMinutes` integer
  - `duration` integer
  - `durationBreak` integer
  - `salaryTotal` string, decimal
  - `salaryBreak` string, decimal
  - `expenses` string, decimal
  - `expensesPaid` string, decimal
  - `mileage` string, decimal
  - `progress` number, double

## Other responses

- `400` — Invalid request due to validation failures
- `401` — Not authorized to update todos
- `403` — Insufficient permissions to update this todo
- `404` — Todo with the specified ID was not found

---

[API](https://skmtc.net/timesheet/apis/timesheet-api.md) · [All operations](https://skmtc.net/timesheet/apis/timesheet-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/timesheet/timesheet-api/revisions/5bc49bf02dad/schema)
