---
title: Event Stream Timeline Widget
---

The Event Stream Timeline widget displays a universal chronological view of all events within an Event Stream. Different entry types (chat messages, pins, locations, custom events) are merged into a single, time-ordered feed.

## Widget Name

`WIDGET_EVENT_STREAM_TIMELINE` (`"EventStreamTimeline"`)

**Category**: `data`
**Visible in catalog**: yes

## Configuration

| Property | Type | Required | Description |
|---|---|---|---|
| `eventStreamId` | `string` | Yes | The ID of the Event Stream whose entries are rendered chronologically. |
| `collectionName` | `string` | Yes | The custom data type collection name that implements `EventStreamEntry` for this project. |
| `typeDefinitions` | `TypeDefinition[]` | No | Optional per-`type` display overrides for timeline entries (link, icon, action text). |

### `TypeDefinition` object

| Field | Type | Required | Description |
|---|---|---|---|
| `type` | `string` | Yes | The `EventStreamEntry.type` value this definition applies to. |
| `link` | `string` | No | URL template for the entry. Supports the tokens `{id}`, `{type}`, and `{eventStreamId}`. |
| `icon` | `string` | No | FontAwesome class name for the entry icon. |
| `text` | `string` | No | Action text displayed alongside the entry. |

## Example Configuration

```typescript
// Widget data object for the EventStreamTimeline widget
const eventStreamTimelineWidgetData = {
    eventStreamId: "<event-stream-id>",
    collectionName: "<event-stream-entries-collection-name>",
    typeDefinitions: [
        {
            type: "message",
            icon: "fa-comment",
            text: "posted a message"
        },
        {
            type: "location",
            link: "/map/{eventStreamId}?entry={id}",
            icon: "fa-map-pin",
            text: "shared a location"
        }
    ]
};
```

## Related

- [Widget System](../../developer/widget-system.md)
