Feeds & API
Everything Has Things knows about Kelowna is available as an open feed, covering the next 60 days. No key, no sign-up, CORS enabled. If you build something with these, we would rather you did than not.
City feeds
- /feeds/events.ics · subscribe in any calendar app
- /feeds/events.json · structured JSON, same shape as the API
- /feeds/events.rss · RSS 2.0
- /feeds/events.csv · one row per showtime, for spreadsheets
Every city site publishes the same four feeds, so montreal.hasthings.com/feeds/events.csv is Montréal's. City pages announce them with <link rel="alternate">, so feed readers and calendar apps can find them from the page address.
API
- /api/events · tonight by default; paginated; carries the forecast
- /api/venues · every active venue
/api/events/<slug>· one event with every showtime/api/venues/<slug>· one venue/api/venues/<slug>/events· upcoming at one venue
Parameters for /api/events
- night
YYYY-MM-DD— one night. Nights run to 5 AM, so a 1 AM show belongs to the evening before.- date
YYYY-MM-DD— one calendar date, midnight to midnight, America/Vancouver.- from, to
- ISO 8601 instants. Use one time selector at a time.
- category
musicfilmcomedydj-partytheatrearttalkother. One name or a comma-separated set (category=music,comedy);otherstands for every kind without a filter of its own.- venue, neighbourhood
- Venue slug; neighbourhood display name.
- tag
- Tag slug — a genre, a series, or a provider such as
rickshaw-theatre. Items carry their tags. - size, minImportance, bands
notable(importance 20 and up: club and theatre nights) orbig(40 and up: arenas, festivals, sold-out shows); or a number 0–100. Importance is computed from the room's size, how many independent sources list the event, and whether it sold out — never from taste.- status
scheduledsold-outpostponedcancelled- sort, dir
timetitlevenueneighbourhoodcategoryagestatusimportance;ascordesc.- limit, offset
- Default 100, maximum 500. The envelope carries
totalandnextOffset.
The API is scoped by hostname. There is no ?city= parameter, because kelowna.hasthings.com already says which city you mean. Unknown or malformed parameters return a 400 with a reason.
Limits and caching
Responses are cached at the edge: feeds for 15 minutes, API answers for 5 minutes, and both may be served stale for a while after that. Polling more often than that gets you the same bytes. There is no rate limit today beyond that cache; if a client makes the site slow for people, that client gets blocked, so identify yourself with a User-Agent that says who you are.
Licence and attribution
The listing metadata in these feeds — titles, times, venues, categories, tags and links — is published under CC BY 4.0. Use it, reshape it, republish it; credit it as “Data: Has Things (hasthings.com)” and, where you can, keep the link to the venue or seller each row carries. Every JSON envelope repeats this in a license block and every item names its sources.
The forecast is not ours and travels under its own terms. /api/events, /api/events/<slug> and /feeds/events.json all carry a weather block beside the events — the whole city's nights on the list endpoints, and just the nights one event runs on when you ask for that event — with a source naming Open-Meteo and its CC BY 4.0 terms. Join it to events on nightDate; the outdoors field is what says whether the weather bears on one, and it sits on each occurrence rather than on the event, because a run can be in one room on Friday and another on Saturday. Keep the attribution “Weather data by Open-Meteo.com” with anything you publish from it.
What the bulk feeds deliberately leave out: descriptions, posters and images. Those belong to the venues and ticketing platforms that wrote them, and their terms do not allow us to hand them on in bulk. The single-event API endpoint mirrors the event page, description included, for display only. Has Things is a directory of pointers, not a copy of anyone's catalogue; if you need the full listing, follow the link.
Venue calendars
- 2400 Highway 97 North · 1 upcoming
- 262 Bernard Avenue · 1 upcoming
- Bar Norcino · 1 upcoming
- Benvoulin Church · 1 upcoming
- Bernie's Cinema · 10 upcoming
- Buffalo Rouge Brewing Co. · 2 upcoming
- Casa de Frida · 1 upcoming
- Central Okanagan United Church · 1 upcoming
- Church of Jesus Christ of Latter-day Saints · 2 upcoming
- Cineplex Orchard Plaza · 10 upcoming
- Coast Capri Hotel · 2 upcoming
- Creative and Critical Studies Building · 1 upcoming
- Distrikt Nightclub · 3 upcoming
- Dormition of the Mother of God Ukrainian Catholic Parish · 2 upcoming
- DunnEnzies Pizza Downtown · 4 upcoming
- Famoso Italian Pizzeria - Sopa Square · 1 upcoming
- Frequency Cafe · 1 upcoming
- Frequency Sound 528 Inc. · 1 upcoming
- Hotel Eldorado at Eldorado Resort · 1 upcoming
- Jackknife Brewing · 4 upcoming
- Kelowna Community Theatre · 4 upcoming
- Kelowna Events Centre · 1 upcoming
- Kelowna Rutland Library | ORL Branch · 1 upcoming
- Landmark Cinemas Grand 10 · 21 upcoming
- Metro Hub · 1 upcoming
- Midnight Kings · 1 upcoming
- Midnight Kings Hookah Lounge & Grill · 1 upcoming
- Ok Corral Cabaret · 2 upcoming
- Okanagan Mission Community Hall (The Red Barn) · 1 upcoming
- Priest Creek Family Estate Winery · 2 upcoming
- Prospera Place · 6 upcoming
- Rustic Reel Brewing Company · 2 upcoming
- Sandhill Wines · 1 upcoming
- Shore Line Brewing Co. · 1 upcoming
- Soul de Cuba Cafe · 1 upcoming
- Summerhill Pyramid Winery · 1 upcoming
- The Laurel Packinghouse · 1 upcoming
- The Placery Bistro and Bar · 1 upcoming
- Three Lakes Brewing Ltd · 1 upcoming
- Unicorn Lounge · 24 upcoming
- Unleashed Brewing Company · 4 upcoming
- Urban Distilleries · 1 upcoming
- WINGS Restaurants & Pubs - Kelowna · 2 upcoming
- heyhey Bar & Grill · 1 upcoming