Eventy is a Chrome extension that finds event details on webpages, images, and pasted text, then turns them into calendar-ready entries.
Version: v1.2.0
Homepage: https://eventy.ariobarin.com/
- Scans active pages, selected text, pasted text, images, flyers, and schedules.
- Extracts titles, dates, times, locations, descriptions, previews, and recurrence hints.
- Adds selected events to Google Calendar or downloads iCalendar files.
- Separates upcoming and past events before you add anything.
- Supports light, dark, and system themes.
- Lets advanced users bring their own OpenRouter API key and choose a model.
- Shows shared free scan usage in settings from the hosted proxy.
- Clone or download this repository.
- Open
chrome://extensions/. - Enable Developer mode.
- Click Load unpacked.
- Select this repository folder.
Reload the extension from chrome://extensions/ after code changes.
Runtime knobs live in config.js:
PROXY_URL: hosted Eventy extraction proxy.PROXY_TOKEN: optional shared proxy token.MOCK_MODE: loads sample events instead of calling the proxy.
The hosted proxy is not part of this repository. It is operated separately. BYOK users can provide their own OpenRouter key in settings, with key validation and model listing routed through the proxy.
assets/ Extension icons
src/background/ Calendar opening helpers
src/content/ Page marker script
src/lib/ Calendar URL and ICS helpers
src/llm/ Client and preprocessing pipeline
src/mocks/ Mock scan data
src/ui/ Popup, settings, and styles
src/utils/ Storage, scan, string, timezone, and logging helpers
tests/ Node tests
webstore-docs/ Chrome Web Store submission notes
npm testBrowser-backed UI verification launches Chrome, loads the extension from a
temporary mock-mode copy, and runs popup and settings flows with automated
state, interaction, and layout assertions. Screenshots and a JSON report are
written under tests/fixtures/ui/ for debugging failures.
npm run verify:uiUse npm run verify:ui -- --headless for headless environments, or
npm run verify:ui -- --keep-browser when inspecting the final Chrome state.
Real-page verification uses local static snapshots so the test corpus can be audited without committing large captured pages.
npm run capture:real-pages
npm run audit:real-pagesUse npm run verify:real-pages to recapture every corpus page and audit the
fresh snapshots in one command. Compare retained labels and context size against
the v1.1.1-era preprocessing baseline with npm run compare:real-pages:static.
LLM judging is available through npm run compare:real-pages:llm when an eval
transport is configured.
For local release confidence, run npm run verify:release. It combines unit
tests, static real-page comparison, the headless browser UI suite, and a live
LLM integration eval against a small labeled real-page set. The live eval uses
the public Eventy proxy URL and reads any required token from
EVENTY_EVAL_PROXY_TOKEN or EVENTY_TOKEN.
For an offline confidence pass that does not call an LLM, run
npm run verify:offline.
The public product page is served from this repository's GitHub Pages output and fronted at https://eventy.ariobarin.com/ by the Cloudflare Worker in workers/eventyHome.js. The previous https://ariobarin.com/eventy-home/ URL remains supported.
npm run deploy:homeMIT