Skip to content

Update a task

PATCH/v1/tasks/{taskId}

US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com

Changes only the fields you send; null clears a field. records replaces the list. Changing the due date or time, the reminder or the assignee recomputes the reminder. When someone other than the assignee changes the due date, reassigns or retitles a task, the assignee is told.

The assignee, the creator, a follower or an admin can update a task. Needs write:tasks.

Request example

Terminal window
curl --request PATCH \
--url 'https://public-api.sessionboard.com/v1/tasks/{taskId}' \
--header 'x-access-token: <api-token>' \
--header 'Content-Type: application/json' \
--data '{
"due_date": "2026-11-23",
"due_time": "14:00"
}'

Try it

Authorization

Your token stays in this page. It is sent only to the region above and is never saved; it is gone when you leave or reload the page.

Path parameters
Body application/json
PATCH

Authorizations

  • x-access-tokenstringheader

    Organization API token. Generate from Organization Settings → API Tokens.

  • AuthorizationBearer <token>headeror

    OAuth 2.1 access token. Obtained via the OAuth PKCE flow at /oauth/token.

Send one of these. See Authentication.

Path parameters

  • taskIdstring<uuid>pathrequired

    The task's id.

Request body

application/jsonrequired

Any of the create fields except event_id; null clears a field.

  • titlestring
  • descriptionstring | null
  • recordsTaskRecordRef[]
    Show child attributes
    • typestringrequired
      Allowed values
      "contact", "session", "sponsor", "exhibitor", "group"
    • idstringrequired
  • assignee_idinteger | null
  • assignee_emailstring<email> | null
  • due_datestring<date> | null
  • due_timestring | null
    Pattern
    ^([01][0-9]|2[0-3]):[0-5][0-9]$
  • reminderstring
    Allowed values
    "none", "due", "9am", "1h", "1d", "1w"
  • prioritystring
    Allowed values
    "low", "normal", "high", "urgent"
{
"due_date": "2026-11-23",
"due_time": "14:00"
}

Responses

200application/json

OK

  • dataTask

    A to-do for your team, about one or more records, in an event or across the organization.

    Show child attributes
    • idstring<uuid>
    • org_idstring
    • event_idinteger | null
    • eventobject | null
      Show child attributes
      • idinteger
      • namestring
      • timezonestring
    • kindstring
      Allowed values
      "task", "milestone"
    • titlestring
    • descriptionstring | null
    • statusstring
      Allowed values
      "open", "in_progress", "completed", "cancelled"
    • prioritystring
      Allowed values
      "low", "normal", "high", "urgent"
    • assigneeTaskPerson | any | null
      Show child attributes
      • idinteger
      • first_namestring | null
      • last_namestring | null
      • emailstring
      • photo_urlstring | null
    • creatorTaskPerson | any | null
      Show child attributes
      • idinteger
      • first_namestring | null
      • last_namestring | null
      • emailstring
      • photo_urlstring | null
    • completed_byTaskPerson | any | null
      Show child attributes
      • idinteger
      • first_namestring | null
      • last_namestring | null
      • emailstring
      • photo_urlstring | null
    • recordsTaskRecord[]
      Show child attributes
      • typestring

        A submission is a session.

        Allowed values
        "contact", "session", "sponsor", "exhibitor", "group"
      • idstring
      • labelstring | null

        The contact's name, the session's title, or the sponsor's, exhibitor's or group's name. null when restricted.

      • restrictedboolean

        The key's user cannot read this record, so its label is withheld.

    • due_atstring<date-time> | null
    • has_due_timeboolean

      false when only a date was set (due at 23:59 that day in the time zone).

    • due_datestring<date> | null

      The due date in timezone.

    • due_timestring | null

      The due time (HH:mm) in timezone; null when has_due_time is false.

    • timezonestring

      The IANA time zone of due_date and due_time — the event's, or for an organization task the assignee's (else America/New_York).

    • record_typestring | null

      The primary record's type (the same as records[0].type).

    • record_idstring | null

      The primary record's id.

    • parent_idstring | null
    • start_atstring<date-time> | null
    • reminderstring
      Allowed values
      "none", "due", "9am", "1h", "1d", "1w"
    • reminder_atstring<date-time> | null

      When the reminder goes to the assignee.

    • milestoneobject | null
      Show child attributes
      • idstring
      • titlestring
      • due_atstring<date-time> | null
    • sourcestring | null

      Where the task came from, such as api, custom, note or milestone.

    • source_note_idstring | null

      The note this task follows up, when it was created from one.

    • completion_notestring | null
    • completed_atstring<date-time> | null
    • follower_idsinteger[]
    • is_overdueboolean
    • can_editboolean

      The key's user can update, complete or reopen it.

    • can_deleteboolean
    • created_atstring<date-time>
    • updated_atstring<date-time>

400application/json

Invalid field values.

  • errorstring

    VALIDATION_ERROR, USER_REQUIRED, FORBIDDEN, NOT_FOUND, TASKS_PLATFORM_ONLY, SCOPE_REQUIRED, ORG_WIDE_TOKEN_REQUIRED or INTERNAL_ERROR.

  • messagestring

401

Unauthorized

403application/json

  • TASKS_PLATFORM_ONLY: the organization uses a self-serve Sessionboard product; Tasks are part of Sessionboard Platform.
  • SCOPE_REQUIRED: the key lacks read:tasks (reads) or write:tasks (writes). Legacy keys with no scopes can read but not write.
  • ORG_WIDE_TOKEN_REQUIRED: the key is restricted to particular events; Tasks need a key without an event restriction.
  • FORBIDDEN: the key's user can read this task but not change it (only the assignee, the creator, a follower or an admin can; only the creator or an admin can delete), or cannot use Tasks (reviewers and portal users).
  • errorstring

    VALIDATION_ERROR, USER_REQUIRED, FORBIDDEN, NOT_FOUND, TASKS_PLATFORM_ONLY, SCOPE_REQUIRED, ORG_WIDE_TOKEN_REQUIRED or INTERNAL_ERROR.

  • messagestring

404

No such task, or the key's user cannot read it (NOT_FOUND).

Response examples

{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"org_id": "<string>",
"event_id": 123,
"event": {
"id": 123,
"name": "<string>",
"timezone": "<string>"
},
"kind": "task",
"title": "<string>",
"description": "<string>",
"status": "open",
"priority": "low",
"assignee": {
"id": 123,
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"photo_url": "<string>"
},
"creator": {
"id": 123,
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"photo_url": "<string>"
},
"completed_by": {
"id": 123,
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"photo_url": "<string>"
},
"records": [
{
"type": "contact",
"id": "<string>",
"label": "<string>",
"restricted": true
}
],
"due_at": "2026-01-15T09:30:00Z",
"has_due_time": true,
"due_date": "2026-01-15",
"due_time": "<string>",
"timezone": "<string>",
"record_type": "<string>",
"record_id": "<string>",
"parent_id": "<string>",
"start_at": "2026-01-15T09:30:00Z",
"reminder": "none",
"reminder_at": "2026-01-15T09:30:00Z",
"milestone": {
"id": "<string>",
"title": "<string>",
"due_at": "2026-01-15T09:30:00Z"
},
"source": "<string>",
"source_note_id": "<string>",
"completion_note": "<string>",
"completed_at": "2026-01-15T09:30:00Z",
"follower_ids": [
123
],
"is_overdue": true,
"can_edit": true,
"can_delete": true,
"created_at": "2026-01-15T09:30:00Z",
"updated_at": "2026-01-15T09:30:00Z"
}
}

Get release notes by email

A short digest on the days something new goes live — each change with a link to its note in the release notes. No marketing, and one click to stop.

Company email addresses only. We’ll send one email to confirm it’s you. Already use Sessionboard? You can also turn this on under Community → What’s new.