Update event
Update an existing event's details, components, or publish state.
PATCH /app/events/{id}
Partially updates an existing event. All body fields are optional — only provided fields are changed. Returns the full updated event object. See HTTP methods (PUT vs PATCH) in API Basics.
Workflow status changes are not accepted on this endpoint — use Create timeline entry or Reopen event.
Note: eventType cannot be changed after creation. To post a status update (which also changes the event's current status), use the timeline endpoint.
Path parameters
| Parameter | Description |
|---|---|
id | The event ID. |
Request
See API Basics for required headers.
Request body
| Field | Type | Applies to | Description |
|---|---|---|---|
title | string | All | Brief event title. Max 250 characters. |
description | string | All | Event description. Rich text field. See Rich text fields. Max 5,000 characters. |
impactAnalysis | string | null | Incident, Maintenance | Optional customer and service impact details. Rich text field. See Rich text fields. Max 5,000 characters. Omit to leave unchanged; send null or "" to clear. |
coordinator | object | null | All | Coordinator contact object. Omit to leave unchanged; set to null to clear. See create event — coordinator. |
publish | boolean | All | Whether the event is visible on status dashboards. |
notifications | boolean | All | Whether matching subscribers are notified when this event changes. See Event notifications. |
segmentNotification | object | All | Per-event segment include/exclude targeting. Requires the segments feature. Replaces the entire object when provided. See create event — segmentNotification. |
attributes | array | All | Custom key/value metadata. Replaces the entire array when provided. Pass [] to clear. See create event — attributes. |
affectedComponents | object | All | Map of componentId → severityLabel. Replaces existing affected components. Max 50 entries. For incidents and maintenance, event severity is recalculated server-side from the highest-order label in this map. For informational events, pass componentId → "" (severity labels are not applicable and are ignored). |
startTime | string | Incident, Maintenance | ISO 8601 UTC datetime. For incidents, this is an escape-hatch override — use only to correct a time that automatic sync did not set correctly. For maintenance, this updates the scheduled window start. |
endTime | string | Incident, Maintenance | ISO 8601 UTC datetime. Must be after startTime when both are present. For incidents, this overrides the auto-set resolved time. For maintenance, this updates the scheduled window end. |
maintenanceAutomation | object | Maintenance | Automatic start/stop configuration. Replaces the entire object when provided. See create event — maintenanceAutomation. |
startTime and endTime are normally managed automatically: startTime is set at creation and endTime is set when the incident reaches a final workflow phase. Use the PUT body to correct times when needed — for example, after editing a timeline entry's timestamp separately.notifications is true on the saved event, qualifying field changes may enqueue subscriber notifications asynchronously. Delivery is non-fatal — the API response succeeds even if notification delivery is delayed. See Event notifications.maintenanceAutomation reschedules automatic transitions when startTime or endTime change. Turning automation off cancels pending automatic start and stop. See Maintenance — Automatic start & stop.startTime, endTime, and impactAnalysis are not accepted for informational events and will return a 400.
Sample request
curl -X PATCH https://api.statusdashboard.com/app/events/4f8b2e1a-3c7d-4e9f-a0b1-c2d3e4f56789 \
-H "Authorization: Bearer bcf847abf5c6:def456" \
-H "Content-Type: application/json" \
-d '{
"title": "API latency elevated — resolved",
"publish": false
}'Sample response
Status: 200 OK
{
"event": {
"id": "4f8b2e1a-3c7d-4e9f-a0b1-c2d3e4f56789",
"eventType": "incident",
"title": "API latency elevated — resolved",
"status": { "label": "Resolved", "isFinal": true, "isScheduled": false },
"severity": { "label": "Degraded Performance", "description": "Some functionality is impaired.", "icon": "alert-triangle", "color": "#f59e0b" },
"affectedComponents": {
"6b0d3a8c-5e2f-4b7d-9c1e-f23456789abc": {
"name": "API Gateway",
"status": { "label": "Degraded Performance", "description": "Some functionality is impaired.", "icon": "alert-triangle", "color": "#f59e0b" }
}
},
"description": "We investigated elevated API response times affecting a subset of users.",
"startTime": "2026-04-25T09:45:00.000Z",
"endTime": "2026-04-25T11:00:00.000Z",
"publish": false,
"notifications": true,
"updatedAt": "2026-04-25T11:05:00.000Z",
"updatedBy": "user@example.com"
}
}Error responses
| Status | When |
|---|---|
400 | Validation error — invalid field value, invalid severity label, invalid component IDs, endTime not after startTime, startTime/endTime/impactAnalysis sent for an informational event, maintenanceAutomation on a non-maintenance event, or advance-notification lead exceeds time until start. |
403 | Insufficient permissions. |
404 | Event not found. |

