---
title: "Update User Event"
method: PATCH
path: "/user_events/{user_event_id}"
tags: ["user-events"]
---

# Update User Event

`PATCH /user_events/{user_event_id}`

Update post-goal questionnaire fields on a user event.

``goal_summary`` is recomputed from ``motivation`` on save (see
``UserEvent.async_save``), so a PATCH that changes the meaning returns a
fresh label. A ``race_tier`` change that shifts the taper schedules a
background replan, matching the ``set_event_goal_meaning`` tool path.

## Path parameters

- `user_event_id` string, required

## Query parameters

- `user_id` string, nullable

## Request body

- UserEventUpdateRequest — Request schema for updating post-goal questionnaire fields. ``race_tier`` is client-settable (validated to the ``RaceTier`` enum). ``goal_summary`` is intentionally absent — it is server-computed from ``motivation`` and must never be accepted from the client (#1497).
  - `race_experience` string, nullable
  - `target_time` string, nullable
  - `motivation` string, nullable
  - `race_tier` 'A' | 'B' | 'C' — Athlete-assigned priority for a race, anchoring taper severity. Values are UPPERCASE by product decision (the coach surfaces them as ``A``/``B``/``C`` to the athlete): - ``A``: season goal — full taper + recovery. - ``B``: secondary — light volume reduction, used to test strategy. - ``C``: training tool — no taper; replaces a workout in the plan.

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/imperfect/apis/imperfect-api.md) · [All operations](https://skmtc.dev/imperfect/apis/imperfect-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/imperfect/imperfect-api/revisions/cc2293a44257/schema)
