Every workshop. Every paper. One search.
Deadlines, past editions, and accepted papers for AI/ML/Robotics conference workshops.
A static website that aggregates AI/ML/Robotics conference workshop information in one place:
- 📅 Upcoming submission deadlines for COLM, CVPR, CoRL, ECCV, ICLR, ICML, ICRA, IROS, and NeurIPS workshops, with live countdowns and AoE → local-time conversion; the board shows open calls, and everything else is reachable through search
- 🔎 One unified, faceted search across every workshop edition and 20k+ accepted-paper titles, filterable by conference, status, year, and topic, and sortable by best match, newest first, most paper matches, or name — fully static (Pagefind), so it runs entirely in the browser with no search server
- ⭐ Save workshops and papers to a personal list, stored in your own browser (no account, no sign-in) — and optionally sync it across devices by subscribing to alerts
- ✉️ Optional weekly email digest of deadline changes and new calls in the conferences and topics you pick, plus opt-in alerts when a starred deadline is within 72 hours — no password, one-click unsubscribe that deletes your address
- 🎯 Find workshops for your paper — paste a title and abstract and get the open calls it fits, each with its deadline, judged against every workshop's topics and the papers its earlier editions accepted; optional (it lives on the alerts satellite), and nothing you paste is stored
- 📄 Auto-generated accepted-paper listings for OpenReview-hosted workshops on each workshop's page
- 🗂️ A page for each conference and each conference year (e.g.
/conference/neurips/,/conference/neurips/2026/) listing its workshops, plus the main conference's paper deadline, dates and acceptance-rate history, and one AI conference deadlines table across all of them — with schema.org structured data and an/llms.txtsummary that make the dataset easy for search engines and AI assistants to cite - 🧰 Free tools for researchers at
/tools/: a DOI finder, BibTeX from a DOI, RIS, ISBN, PubMed or URL, APA / MLA / IEEE / ACM references, LaTeX to PNG and SVG, Markdown and Excel to LaTeX, a LaTeX word count and an AoE time page, each a single page that runs in the browser and stores nothing - 🔗 Tracks and past editions linked automatically — workshops that split submissions across separate tracks, and series that return year after year, are cross-linked on every one of their pages, so landing on any single track shows the rest of the workshop and each track's own deadline
Conference deadline trackers exist; workshop deadlines never had one. This fills that gap. Ships with 900+ real workshop editions (2024–2026, across all nine conferences) and 20,000+ accepted-paper titles imported from OpenReview venue records.
GitHub repo (single source of truth)
├── data/workshops/*.yml one YAML file per workshop edition (community-edited)
├── data/conferences.yml conference metadata
├── data/editions.yml per-edition conference dates, the main conference's deadlines, place and site (synced daily from the community trackers), and each edition's official accepted-workshop list
├── data/acceptance_rates.yml main-conference acceptance rates per year, synced daily, shown on each conference page
├── data/topics.yml controlled topic vocabulary
├── data/series_links.yml pairs the weekly audit judged to be one workshop series (Jev), read by the build to link their editions
├── data/proposal_calls.yml call-for-workshop-proposals deadlines, synced daily from OpenReview, shown on the homepage
├── data/changes.json this week's dataset changes, written by the alerts job for /changes/
├── schema/ JSON Schema for a workshop file (validate.mjs enforces it)
├── cache/openreview/*.json committed paper-list caches (fetched monthly)
├── lib/ shared date/AoE, data-loading, and ICS code
├── scripts/ validation, OpenReview fetcher, automation helpers
├── site/ Astro static site (reads ../data at build time)
├── alerts/ optional email-alerts satellite (Worker + pure logic)
└── .github/workflows/ CI validation + scheduled automation
The guiding principle is to keep the moving parts few: the Git repo is the only source of truth, the site is fully static (no backend, no database), accepted-paper lists are cached from OpenReview by a scheduled job, and deadline statuses are derived at build time rather than stored. Contributions are validated by CI, not by hand.
That keeps the infrastructure simple and the hosting free, but keeping everything accurate still takes a lot of human oversight. Workshop updates can behave in unexpected ways, so unusual changes often need to be manually checked and verified, on top of the ongoing work to improve the site and add new features. If the site has been useful to you and you'd like to support the work behind it, even a small sponsorship would mean a lot and help me keep improving it.
For the reasoning behind these choices and the behavior details that matter when modifying the site (search semantics, the deploy-resilient search engine, favorites storage, link handling), see docs/ARCHITECTURE.md.
Requires Node 22.12 or newer (Astro 7's floor; every workflow runs on 22).
npm ci # root deps (validation/scripts)
npm ci --prefix site # site deps (Astro, Pagefind)
node scripts/validate.mjs # validate all workshop data
npm test # every standalone test suite (scripts/*_test.mjs)
npm run dev --prefix site # dev server at localhost:4321 (search needs a full build)
npm run build --prefix site # full build incl. search index -> site/distThe site is a static build (site/dist) and hosts anywhere that serves static
files. Two zero-cost options — GitHub Pages or Cloudflare Pages — plus the
environment-variable reference are in docs/DEPLOYING.md.
See CONTRIBUTING.md. Short version: use the "Add a workshop" issue form (no Git needed — a bot opens the PR), or copy data/workshops/_template.yml and open a PR yourself. Every workshop page has a ✎ Edit link that opens a short, timezone-safe form.
Scheduled GitHub Actions do the routine data work unattended: a weekly
OpenReview discovery job, a daily imminent-deadline re-check, and a monthly paper
refresh each validate their changes and commit straight to main, while
issue-form submissions arrive as pull requests for review. The full workflow
list, the "add a conference" procedure, and bulk-importing workshop lists are in
docs/AUTOMATION.md.
- Machine-readable dump:
/api/workshops.json(regenerated on every deploy;submission_deadlineis always the paper deadline, withabstract_deadlinealongside it for two-stage venues, andshort_name/track_labelfor labelling a workshop unambiguously when a series splits across tracks;moved_slugsmaps slugs that have left the dump to what they became, so a stored slug can follow a merge) - Markdown exports:
/exports/<conference>-<year>-workshops.md— one file per conference edition, also regenerated on every deploy - Forum ids of papers with no PDF (supports saved-paper PDF links):
/api/papers-without-pdf.json - The paper matcher's candidate set — every open call with its topics, deadline and a sample of the titles its series accepted before, plus the topic vocabulary; read by the alerts Worker's
/match, regenerated on every deploy:/api/match-candidates.json - Workshop papers by OpenReview forum id, with each paper's workshop, conference and year (lets the citation tools cite a workshop paper properly):
/api/openreview-papers.json - New-workshop announcements:
/rss.xml - What changed this week (the published edition of the weekly digest):
/changes/ - LLM-friendly site summary (llms.txt):
/llms.txt - Calendar feeds (paused — see
CALENDAR_ENABLED):/feeds/all.ics,/feeds/<conference>.ics,/feeds/topic-<id>.ics,/feeds/ws-<slug>.ics
Free, open source, ad-free.
- Code: MIT (see
LICENSE) - Data (
data/,cache/): CC-BY-4.0 — reuse freely with attribution
Contributions are governed by lightweight contributor terms: DCO certification, no CLA — and the data stays open, permanently.
No accounts, no LLM text generation, no PDF rehosting, and no scraping of submission portals or individual workshop sites. These are the things that make trackers expensive to run and easy to abandon. The free tools under /tools/ keep to the same rule: they run in the browser, call the public registries directly, and add nothing to run.
The one model in the pipeline is a judge, not a writer. TypeSafe's Jev answers typed yes/no and scoring questions in two scheduled jobs — which topics a newly imported workshop is about, and whether two entries are editions of one series — and, when the alerts satellite is configured, behind the optional "Find workshops for your paper" page. Every answer lands as data a person can read and overrule; the jobs fall back to their pre-Jev rules when no key is set, so a fork behaves exactly as before, and the site build never calls it. See docs/ARCHITECTURE.md, "Typed judgments from Jev".
One narrow exception: the tracker reads each conference's own published list of accepted workshops to cross-check what OpenReview told it — one fetch per conference-year per week, reported for a human, never applied. See docs/AUTOMATION.md for why that second opinion is needed.
Email alerts do exist, but as an optional, isolated satellite (one Cloudflare Worker + one small database) rather than a backend the site depends on: there are still no passwords and no login wall, the tracker is built and served as a fully static site, and deleting the alerts system leaves the site byte-for-byte unchanged. A build with PUBLIC_ALERTS_API unset — every fork, every PR preview — carries no trace of it. See docs/ALERTS.md.