Auto-generate ICS calendar events from selected text using chrono-node. Bundles chrono-node inline (no external CDN dependency) and includes @updateURL/@downloadURL for Violentmonkey auto-update. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
40 lines
1.5 KiB
Markdown
40 lines
1.5 KiB
Markdown
# event-creator
|
|
|
|
Userscript Violentmonkey universel : sélectionner du texte sur n'importe quelle page pour créer un fichier ICS téléchargeable.
|
|
|
|
## Cas d'usage
|
|
Sites de calendrier grenoblois (La Bobine, Summum, MC2, Le Tamis, agenda.grenoble.fr…) où les infos d'événement sont éparpillées sur la page.
|
|
|
|
## Flow utilisateur
|
|
1. Sélectionner le texte contenant les infos de l'événement
|
|
2. Cliquer sur la bulle qui apparaît au-dessus de la sélection
|
|
3. Vérifier/corriger les champs dans le formulaire de confirmation
|
|
4. Cliquer "Télécharger .ics"
|
|
|
|
## Champs du formulaire
|
|
- Titre (extrait du texte)
|
|
- Date (input `type="date"`)
|
|
- Heure début / Heure fin (input `type="time"`)
|
|
- Lieu
|
|
- Description (texte sélectionné en entier)
|
|
- URL source (URL de la page, en lecture seule)
|
|
|
|
## Extraction heuristique
|
|
- **Titre** : première ligne sans date
|
|
- **Date** : regex sur formats français ("15 mars 2025", "samedi 20 juin", "15/03/2025")
|
|
- **Heures** : "20h30", "20h", "20:30", "à 20h"
|
|
- **Lieu** : ligne contenant un mot-clé de lieu (salle, théâtre, cinéma, café…) ou commençant par "à / au / chez"
|
|
- **Description** : texte sélectionné complet
|
|
|
|
## Règles de durée
|
|
- Heure de fin détectée → utilisée
|
|
- Heure de début seulement → fin = début + 1h
|
|
- Aucune heure → événement journée entière
|
|
|
|
## Sortie ICS
|
|
Champs : SUMMARY, DTSTART, DTEND, LOCATION, DESCRIPTION, URL
|
|
|
|
## Tech
|
|
- Un seul fichier `.user.js`
|
|
- JS pur, aucune dépendance externe
|
|
- `@match *://*/*`
|