REST API
PUT/projects/{projectId}/tasks/{taskId}/dateAPI v1

Task put date

3 min readTasksView as Markdown

PUT /projects/{projectId}/tasks/{taskId}/date

Create or update date for a task

Base URL: https://www.taskade.com/api/v1

Authentication

Send a personal access token or an OAuth 2.0 access token as a bearer token. Create a personal access token at taskade.com/settings/api.

Http
Authorization: Bearer tskdp_your_token_here

Parameters

Name In Type Required Description
projectId path string Yes —
taskId path string Yes —

Request body

application/json

Field Type Required Description
start object Yes —
start.date string Yes ISO date format (YYYY-MM-DD), e.g. "2021-12-31"
start.time string No Optional time component in 24-hour format (HH:MM:SS), e.g. "15:30:45". Can be null or omitted for date-only representations
start.timezone string No Optional timezone identifier (IANA timezone name), e.g. "America/New_York", "Asia/Singapore". Can be null or omitted for timezone-naive representations
end object No —
end.date string Yes ISO date format (YYYY-MM-DD), e.g. "2021-12-31"
end.time string No Optional time component in 24-hour format (HH:MM:SS), e.g. "15:30:45". Can be null or omitted for date-only representations
end.timezone string No Optional timezone identifier (IANA timezone name), e.g. "America/New_York", "Asia/Singapore". Can be null or omitted for timezone-naive representations

A nested field marked Yes is required whenever its parent object is present.

Example request

Bash
curl -X PUT "https://www.taskade.com/api/v1/projects/<projectId>/tasks/<taskId>/date" \
  -H "Authorization: Bearer $TASKADE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"start":{"date":"<date>"}}'

Responses

200 — Task date set

Field Type Required Description
ok boolean Yes —
item object Yes —
item.id string Yes —
item.text string No —
item.parentId string No —
item.completed boolean No —

4XX — Error description

Field Type Required Description
ok boolean Yes —
message string Yes —
code string Yes —
statusMessage string Yes —
featureId string No The plan entitlement the request needs, set on some PAYMENT_REQUIRED errors.

Errors

Errors return an ok: false envelope. Rate limiting returns 429 with x-rate-limit-limit, x-rate-limit-remaining and x-rate-limit-reset headers. x-rate-limit-reset is the number of seconds until the window reopens. Retry-After is not sent, so schedule retries from x-rate-limit-reset; retrying sooner will fail again.

Json
{ "ok": false, "message": "Unauthorized", "code": "UNAUTHORIZED" }

Rate limits for this version: enforced per endpoint; ceilings are not published and can change without notice. A 429 response carries x-rate-limit-limit, x-rate-limit-remaining, and x-rate-limit-reset (seconds until the window reopens). Back off from those headers rather than hardcoding numbers. Bundle import and export run under tighter limits than regular reads and writes, so schedule bulk transfers accordingly. See Rate limits.