No description
Find a file
Alex cccef9e985 Add README and MIT license
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-27 18:22:42 +02:00
event-creator.user.js Add README and MIT license 2026-07-27 18:22:42 +02:00
LICENSE Add README and MIT license 2026-07-27 18:22:42 +02:00
README.md Add README and MIT license 2026-07-27 18:22:42 +02:00
specs.md Initial commit: event-creator userscript 2026-07-27 18:01:25 +02:00

event-creator

A Violentmonkey userscript: select any text on any webpage, and turn it into a downloadable .ics calendar event.

Built for event listing sites (concert venues, theaters, local agendas) where the date, time, and location are just scattered in the page text — no need to type anything by hand.

Install

  1. Install Violentmonkey (Chrome, Firefox, Edge).
  2. Install the script from the raw file: event-creator.user.js — Violentmonkey will prompt to install it.

The script auto-updates itself from this repo (via @updateURL), so you don't need to reinstall it when it changes.

Usage

  1. Select text containing the event info (title, date, time, location…) anywhere on any page.
  2. Click the "Créer événement" bubble that appears above your selection.
  3. Check/fix the fields in the popup — title, date, time(s), recurrence, location, description.
  4. Click "Télécharger .ics" to download the file, then open it to add it to your calendar app.

What it parses

  • Title: first line of the selection that isn't a date/UI text ("Détails", "Réserver"…)
  • Date & time(s): French natural language ("15 mars 2026", "samedi 20 juin", "20h30", "20h30 - 22h30"), via chrono-node
  • Multiple time ranges: e.g. a listing with several showtimes — each becomes its own event in the .ics file
  • Recurrence: "tous les mardis", "chaque semaine", "jusqu'au 20 juin" → weekly/daily/monthly/yearly RRULE, with an end date
  • Location: a line with a venue keyword (salle, théâtre, cinéma, café…), a line starting with "à/au/chez", or a Localisation label followed by venue + address
  • All-day events: when no time is found
  • Everything is editable before download — the parsing is a best-effort starting point, not gospel

Notes

  • Single self-contained file — chrono-node is bundled in directly (built with esbuild from the npm package), so there's no runtime dependency on an external CDN.
  • @match *://*/* — works on any site.

License

MIT — see LICENSE.