An iCalendar feed of the highest-signal AI events in the SF Bay Area, refreshed every 6 hours. Ranked by host reputation, filtered for technical depth, skips events that clash with your work day. One URL — subscribe from any calendar app.
https://raw.githubusercontent.com/SiddanthEmani/kyros/main/events.ics
- Apple Calendar
File → New Calendar Subscription→ paste URL - Google Calendar
Other calendars → + → From URL→ paste URL - Outlook / Fantastical / anything else Add subscription by URL
The feed refreshes four times a day. You'll see the next ~30 days of
hand-rankable AI talks, demos, hackathons, and salons — without the noise
of "AI for Founders Networking Drinks" or "Asian American Voices in Tech"
that Luma's category=ai lumps in.
kyros (κῦρος): authority, weight, signal over noise.
Luma discover ─► filter ─► rank ─► cap ─► events.ics ─► your calendar
~1700/day ~250 left top 40 every 6h subscribe once
- Fetch — scrapes Luma's server-rendered discover HTML and paginates the JSON discover API across SF, San Jose, and global-virtual events for the next 30 days. Falls back to a CORS relay when the runner IP is blocked.
- Filter — drops events past the horizon, events that don't mention
AI vocabulary in the title or host calendar (catches the Luma
category=aileak), events outside SF/SJ, and weekday events that start before 5 PM local. - Rank — scores by host reputation (LangChain, Snorkel, Modal, DeepMind, AI Tinkerers, …), technical title vocabulary (RAG, agentic, evals, fine-tuning, …), and lightly penalizes purely-social titles.
- Cap — keeps the top N (default 40) and writes a clean
.ics.
Fork the repo, enable Actions, done. The kyros-refresh workflow runs
every 6 hours (00, 06, 12, 18 UTC), regenerates events.ics, and
commits it back. Anyone subscribed to your raw URL gets the refresh
automatically.
No secrets, no API keys, no servers — just a .ics file in a public
repo. Run locally with python run.py if you want to inspect.
| key | default | meaning |
|---|---|---|
cities |
["san-francisco", "san-jose"] |
Luma city_slugs to query |
include_virtual_global |
true |
also fetch virtual / global events |
lookahead_days |
30 |
drop events past this horizon |
min_weekday_hour_local |
17 |
weekday events must start at/after this hour, in local_tz. 0 disables |
local_tz |
"America/Los_Angeles" |
IANA tz for the schedule check |
max_events_per_run |
40 |
top-N cap after ranking. 0 = unlimited |
run.py # the entire job
config.json # user-editable
requirements.txt # icalendar
.github/workflows/refresh.yml # 6-hourly schedule
events.ics # output (committed by CI)
I wanted one calendar I could open on Sunday night and see every meaningful
AI talk in SF for the coming weeks — without scrolling through Luma's
"AI Founders Networking Drinks" or "Asian American Voices in Tech" that
its category=ai tag lumps in. The signal-to-noise on the raw discover
feed is brutal, and the events I actually want are spread across 50+
calendars.
kyros is the small cron that does that filtering for me, and the public
.ics URL means I can subscribe from any device and never think about it
again.
MIT — fork it, run it for your city, ship your own feed.