# events (adapter system)

Event aggregation adapter system: fetch/normalize events from pluggable sources (ticketmaster, seatgeek, meetup, ...), then filter by category/location and sort by date. Source adapters are...


Multi-source **event aggregation**. Ported from `leumas-middleware/lib/a.events` — the pure aggregation
core (`fetchEvents` / filter / sort). The source's fs adapter-scanner, express server, `results/`
dumps, and keyed provider clients (ticketmaster, seatgeek, meetup, serpapi, openevent) were stripped.

Source adapters are **injected** as `{ name, getEvents(location) -> event[] }`, so this engine carries
no API keys. A normalized event is `{ source, title?, date?, category?, location?, url? }`.

## Tools (`adapters`)

| tool | args | result |
|------|------|--------|
| `fetchEvents` | `{ sources, location?, category?, sort? }` | `{ count, events, errors }` |
| `filterByCategory` | `{ events, category }` | `{ events }` |
| `sortByDate` | `{ events, order? }` | `{ events }` |
| `categories` | `{ events }` | `{ categories }` |


---
Source: shared/engines/adapters/domain/events/README.md
Canonical: https://docs.leumas.tech/p/adapters/domain/events
