Skip to main content

event.item_updated

Sent when an existing event in a feed is updated.

When This Event Fires

  • Event details change on the source website (time, location, description, etc.)
  • Event status changes (cancelled, rescheduled, etc.)
  • Additional information is discovered about an existing event

Event Data Schema

The data field in the webhook payload contains the following structure:

FieldTypeRequiredDescription
timestampnumberYesUnix timestamp in milliseconds when the webhook was triggered
feedIdstring (uuid)YesID of the event feed that was updated
idstring (uuid)YesID of the event feed item that was updated. Use with GET /feeds/events/{feedId}/items/{id} to fetch the full item.
eventIdstring (uuid)YesID of the event that was updated

Example Payload

Complete example of a webhook payload for this event type:

{
"eventType": "event.item_updated",
"timestamp": 1704123456789,
"id": "456e7890-a12b-34c5-d678-901234567890",
"data": {
"timestamp": 1704123456789,
"feedId": "987e6543-e21b-12d3-a456-426614174111",
"id": "abc12345-6789-4abc-8def-fedcba987654",
"eventId": "123e4567-e89b-12d3-a456-426614174000"
}
}

Handling This Event

When you receive an event.item_updated webhook, fetch the current item data from the API using data.id (the event feed item identifier):

async function handleEventUpdated(feedId: string, itemId: string) {
// GET /feeds/events/{feedId}/items/{itemId}
const event = await helixApi.getFeedItem(feedId, itemId);

// Update your local copy
await database.events.update({
where: { helixEventFeedItemId: itemId },
data: mapToLocalEvent(event),
});
}
Important

The webhook payload is intentionally minimal. Always fetch the current event state from the API rather than relying on cached data. This ensures you have the most up-to-date information.


For information about HTTP headers, security verification, and retry policies, see the Webhooks Overview.

For complete documentation on event webhooks, see Events Webhooks.