ClawEvents 🎉
Multi-city event discovery — Tel Aviv, Barcelona, New York.
Triggers
- "What's on in Tel Aviv this weekend?"
- "Find jazz concerts in Barcelona next week"
- "Cinema in Tel Aviv tonight"
- "Free family events in NYC this Saturday"
- "Events in Tel Aviv and Barcelona for the group trip"
- "Lev Cinema schedule this week"
- "Live music in New York, adults only, evening"
CLI Usage
# Basic search
python3 -m clawevents search --city tel-aviv --days 7
# Jazz in Tel Aviv this week
python3 -m clawevents search --city tel-aviv --type jazz --days 7
# Cinema tonight (Lev + others)
python3 -m clawevents search --city tel-aviv --type cinema --days 1
# Multi-city: what's on in Barcelona and NYC this weekend
python3 -m clawevents search --city barcelona new-york --days 3
# Family events, free, afternoon
python3 -m clawevents search --city tel-aviv --type family --age family --time afternoon --free
# Concert, adults, evening, specific dates
python3 -m clawevents search --city tel-aviv barcelona --type concert --age adults --time evening --from 2026-06-21 --to 2026-06-27
# JSON output (for programmatic use)
python3 -m clawevents search --city new-york --type jazz --format json --limit 10
Supported Cities
| City |
Alias |
Sources |
| Tel Aviv |
tel-aviv, tlv |
TLV Municipality API, Eventbrite, Lev Cinema |
| Barcelona |
barcelona, bcn |
Ticketmaster, Eventbrite |
| New York |
new-york, nyc |
Ticketmaster, Eventbrite, NYC Open Data |
Event Types
jazz · concert / music · cinema / movie · theatre · nightlife · family / kids · comedy · art · sport · festival · community
Filters
| Flag |
Values |
Default |
--type |
jazz, concert, cinema, theatre, ... |
all |
--age |
kids, family, adults |
all |
--time |
morning, afternoon, evening, late-night |
all |
--from / --to |
YYYY-MM-DD |
today / +7d |
--days |
integer |
7 |
--free |
flag |
false |
--limit |
integer |
20 |
--format |
text, json |
text |
Setup
Install dependencies
cd skills/clawevents
pip3 install -r requirements.txt
API Keys (optional but recommended)
Without API keys: Tel Aviv scrapes TLV website; Barcelona/NYC use Eventbrite free tier only + NYC Open Data.
Add to ~/.zshrc or ~/.bashrc:
export TICKETMASTER_API_KEY="your_key"
export EVENTBRITE_TOKEN="your_token"
export TLV_API_KEY="your_key" # optional
Data Sources
Tel Aviv
- TLV Municipality API — Official city events (DigiTel source). Free with API key.
- Eventbrite — Tech, community, cultural events
- Lev Cinema — Boutique cinema (Dizengoff). Web scrape.
- (planned) Time Out Israel scraper — jazz, clubs, theatre picks
Barcelona
- Ticketmaster Discovery API — Concerts, theatre, sports, 230K+ events
- Eventbrite — Community + cultural events
- (planned) Fever/Xceed scraper — nightlife, club events, immersive experiences
New York
- Ticketmaster Discovery API — Concerts, Broadway, sports
- Eventbrite — Community events
- NYC Open Data — Free parks events, city programmes
Architecture
ClawEventsEngine
├── Fetchers (parallel, per-city)
│ ├── TLVMunicipalityFetcher → Tel Aviv
│ ├── TicketmasterFetcher → Barcelona, NYC
│ ├── EventbriteFetcher → All cities
│ ├── LevCinemaFetcher → Tel Aviv (cinema)
│ └── NYCOpenDataFetcher → NYC (free events)
├── Filter layer (types, age, time-of-day, date, free)
├── Dedup layer (same title + time across sources)
└── Rank layer (chronological, no-time events last)
Extending
To add a new city or source:
- Create
clawevents/fetchers/your_source.py implementing BaseFetcher
- Register in
_FETCHER_REGISTRY and _CITY_FETCHERS in engine.py
- Add city alias in
cli.py
1---2name: clawevents3description: Multi-city event discovery for Tel Aviv, Barcelona, and New York. Searches concerts, jazz, cinema, theatre, nightlife, family events, comedy, art, and festivals. Supports filtering by age group (kids/family/adults), time of day (morning/afternoon/evening/late-night), date range, and free-only. Returns ranked, deduplicated results from multiple sources per city.4---5
6# ClawEvents 🎉
7
8Multi-city event discovery — Tel Aviv, Barcelona, New York.
9
10## Triggers
11
12- "What's on in Tel Aviv this weekend?"
13- "Find jazz concerts in Barcelona next week"
14- "Cinema in Tel Aviv tonight"
15- "Free family events in NYC this Saturday"
16- "Events in Tel Aviv and Barcelona for the group trip"
17- "Lev Cinema schedule this week"
18- "Live music in New York, adults only, evening"
19
20## CLI Usage
21
22```bash
23# Basic search
24python3 -m clawevents search --city tel-aviv --days 7
25
26# Jazz in Tel Aviv this week
27python3 -m clawevents search --city tel-aviv --type jazz --days 7
28
29# Cinema tonight (Lev + others)
30python3 -m clawevents search --city tel-aviv --type cinema --days 1
31
32# Multi-city: what's on in Barcelona and NYC this weekend
33python3 -m clawevents search --city barcelona new-york --days 3
34
35# Family events, free, afternoon
36python3 -m clawevents search --city tel-aviv --type family --age family --time afternoon --free
37
38# Concert, adults, evening, specific dates
39python3 -m clawevents search --city tel-aviv barcelona --type concert --age adults --time evening --from 2026-06-21 --to 2026-06-27
40
41# JSON output (for programmatic use)
42python3 -m clawevents search --city new-york --type jazz --format json --limit 10
43```
44
45## Supported Cities
46
47| City | Alias | Sources |
48|------|-------|---------|
49| Tel Aviv | `tel-aviv`, `tlv` | TLV Municipality API, Eventbrite, Lev Cinema |
50| Barcelona | `barcelona`, `bcn` | Ticketmaster, Eventbrite |
51| New York | `new-york`, `nyc` | Ticketmaster, Eventbrite, NYC Open Data |
52
53## Event Types
54
55`jazz` · `concert` / `music` · `cinema` / `movie` · `theatre` · `nightlife` · `family` / `kids` · `comedy` · `art` · `sport` · `festival` · `community`
56
57## Filters
58
59| Flag | Values | Default |
60|------|--------|---------|
61| `--type` | jazz, concert, cinema, theatre, ... | all |
62| `--age` | kids, family, adults | all |
63| `--time` | morning, afternoon, evening, late-night | all |
64| `--from` / `--to` | YYYY-MM-DD | today / +7d |
65| `--days` | integer | 7 |
66| `--free` | flag | false |
67| `--limit` | integer | 20 |
68| `--format` | text, json | text |
69
70## Setup
71
72### Install dependencies
73```bash
74cd skills/clawevents
75pip3 install -r requirements.txt
76```
77
78### API Keys (optional but recommended)
79
80| Key | Source | Cities unlocked |
81|-----|--------|-----------------|
82| `TICKETMASTER_API_KEY` | [developer.ticketmaster.com](https://developer.ticketmaster.com) — free | Barcelona, NYC |
83| `EVENTBRITE_TOKEN` | [eventbrite.com/platform/api](https://www.eventbrite.com/platform/api) — free | All 3 |
84| `TLV_API_KEY` | [apiportal.tel-aviv.gov.il](https://apiportal.tel-aviv.gov.il) — free | Tel Aviv (official events) |
85
86Without API keys: Tel Aviv scrapes TLV website; Barcelona/NYC use Eventbrite free tier only + NYC Open Data.
87
88Add to `~/.zshrc` or `~/.bashrc`:
89```bash
90export TICKETMASTER_API_KEY="your_key"
91export EVENTBRITE_TOKEN="your_token"
92export TLV_API_KEY="your_key" # optional
93```
94
95## Data Sources
96
97### Tel Aviv
98- **TLV Municipality API** — Official city events (DigiTel source). Free with API key.
99- **Eventbrite** — Tech, community, cultural events
100- **Lev Cinema** — Boutique cinema (Dizengoff). Web scrape.
101- *(planned)* Time Out Israel scraper — jazz, clubs, theatre picks
102
103### Barcelona
104- **Ticketmaster Discovery API** — Concerts, theatre, sports, 230K+ events
105- **Eventbrite** — Community + cultural events
106- *(planned)* Fever/Xceed scraper — nightlife, club events, immersive experiences
107
108### New York
109- **Ticketmaster Discovery API** — Concerts, Broadway, sports
110- **Eventbrite** — Community events
111- **NYC Open Data** — Free parks events, city programmes
112
113## Architecture
114
115```
116ClawEventsEngine
117├── Fetchers (parallel, per-city)
118│ ├── TLVMunicipalityFetcher → Tel Aviv
119│ ├── TicketmasterFetcher → Barcelona, NYC
120│ ├── EventbriteFetcher → All cities
121│ ├── LevCinemaFetcher → Tel Aviv (cinema)
122│ └── NYCOpenDataFetcher → NYC (free events)
123├── Filter layer (types, age, time-of-day, date, free)
124├── Dedup layer (same title + time across sources)
125└── Rank layer (chronological, no-time events last)
126```
127
128## Extending
129
130To add a new city or source:
1311. Create `clawevents/fetchers/your_source.py` implementing `BaseFetcher`
1322. Register in `_FETCHER_REGISTRY` and `_CITY_FETCHERS` in `engine.py`
1333. Add city alias in `cli.py`