Vous en avez assez de votre Google Agenda qui ressemble à un bloc monochrome ? Vous passez du temps à colorer manuellement vos « Réunions » en bleu et vos « Deadlines » en rouge ? 🙋♂️
Et si je vous disais que vous pouviez automatiser tout ça ?
Aujourd’hui, je vous partage une de mes astuces préférées : un petit script Google Apps Script qui va scanner votre agenda et colorer automatiquement vos événements en fonction des mots-clés que vous avez définis. Préparez-vous à transformer votre agenda en un outil visuel ultra-efficace !
Pourquoi s’embêter à colorer ses événements ?
On est d’accord, la couleur, c’est joli. Mais ici, c’est surtout pratique !
- Visibilité immédiate : D’un seul coup d’œil, vous pouvez évaluer votre journée. « Oh, beaucoup de rouge aujourd’hui, ça va être intense ! » ou « Super, une touche de jaune, c’est ma pause déjeuner. »
- Gain de temps : Plus besoin de cliquer droit, de chercher la bonne couleur… Le script le fait pour vous, même lorsque vous créez des événements à la volée depuis votre téléphone.
- Organisation : Cela vous force (gentiment) à être cohérent dans la nomination de vos événements, ce qui est une bonne pratique en soi.
Le guide pas-à-pas : Installez ce script en 5 minutes
Pas besoin d’être un développeur ! Google Apps Script est un outil intégré à Google Workspace qui permet de créer des petites automatisations. Suivez simplement ces étapes.
Étape 1 : Ouvrir l’éditeur de script
La façon la plus simple est de vous rendre directement sur script.google.com.
- Cliquez sur Nouveau projet en haut à gauche.
- Donnez-lui un nom mémorable, comme « Coloration Agenda ».
Étape 2 : Copier-coller le code
Effacez tout le contenu du fichier Code.gs et collez le code suivant à la place. C’est notre « recette magique » !
/**
* @license MIT
* Copyright (c) 2025 Fabrice Faucheux
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/**
* @OnlyCurrentDoc
* Ce script change la couleur des événements Google Agenda en fonction de
* mots-clés dans leur titre, en parcourant les 30 prochains jours.
*/
/**
* Configuration des mots-clés et des couleurs associées.
* Pour trouver les noms des couleurs, référez-vous à l'énumération
* GoogleAppsScript.Calendar.EventColor (ex: CalendarApp.EventColor.BLUE).
*/
const COULEURS_PAR_MOT_CLE = {
'Réunion': CalendarApp.EventColor.BLUE,
'Projet': CalendarApp.EventColor.GREEN,
'Déjeuner': CalendarApp.EventColor.YELLOW,
'Appel': CalendarApp.EventColor.ORANGE,
'Deadline': CalendarApp.EventColor.RED,
'Important': CalendarApp.EventColor.RED
// Ajoutez d'autres paires mot-clé/couleur ici
};
/**
* Calcule une date future en ajoutant un nombre de jours à aujourd'hui.
* Gère correctement les passages de mois et d'années.
* @param {number} [jours=30] - Le nombre de jours à ajouter.
* @returns {Date} La date future.
*/
const calculerDateFuture = (jours = 30) => {
const date = new Date();
date.setDate(date.getDate() + jours);
return date;
};
/**
* Traite un événement individuel pour déterminer et appliquer la couleur appropriée.
* @param {GoogleAppsScript.Calendar.CalendarEvent} evenement - L'événement à traiter.
*/
const traiterEvenement = (evenement) => {
try {
const titre = evenement.getTitle();
const couleurOriginale = evenement.getColor();
const titreMin = titre.toLowerCase();
// C'est plus déclaratif que la boucle for...in avec un 'break'.
const motCleTrouve = Object.keys(COULEURS_PAR_MOT_CLE).find(motCle =>
titreMin.includes(motCle.toLowerCase())
);
const nouvelleCouleur = motCleTrouve ? COULEURS_PAR_MOT_CLE[motCleTrouve] : null;
// Appliquer la couleur seulement si une nouvelle couleur a été trouvée
// et qu'elle est différente de l'actuelle (évite les écritures API inutiles).
if (nouvelleCouleur && nouvelleCouleur !== couleurOriginale) {
evenement.setColor(nouvelleCouleur);
Logger.log(`Événement "${titre}" coloré (Mot-clé: "${motCleTrouve}").`);
}
} catch (erreur) {
// Gestion d'une erreur spécifique à cet événement (ex: événement supprimé)
// Le script continuera avec les autres événements.
Logger.log(`ERREUR lors du traitement de l'événement ID ${evenement.getId()} ("${evenement.getTitle()}"): ${erreur.message}`);
}
};
/**
* Fonction principale qui récupère les événements des 30 prochains jours
* et lance le processus de coloration.
*/
function colorerEvenements() {
try {
const calendrier = CalendarApp.getDefaultCalendar();
if (!calendrier) {
// Cas rare mais important si l'agenda par défaut n'est pas accessible
throw new Error("Impossible d'accéder au calendrier par défaut.");
}
const maintenant = new Date();
const dateFin = calculerDateFuture(30); // Utilisation de la fonction utilitaire
Logger.log(`Recherche d'événements entre ${maintenant.toISOString()} et ${dateFin.toISOString()}...`);
const evenements = calendrier.getEvents(maintenant, dateFin);
if (evenements.length === 0) {
Logger.log("Aucun événement trouvé dans la plage de dates spécifiée.");
return; // Sortie anticipée si aucun événement
}
Logger.log(`${evenements.length} événement(s) trouvé(s). Début du traitement...`);
// Utilisation d'une fonction fléchée ES6 pour le forEach
// et appel de la fonction de traitement dédiée.
evenements.forEach(traiterEvenement);
Logger.log('Coloration des événements terminée.');
} catch (erreur) {
// Gestion globale des erreurs (ex: permission refusée, API Calendar indisponible)
Logger.log(`ERREUR CRITIQUE dans colorerEvenements: ${erreur.message}`);
Logger.log(`Stack: ${erreur.stack}`);
// Optionnel : envoyer une notification par email en cas d'échec
// MailApp.sendEmail('admin@example.com', 'Erreur Script Calendrier', erreur.stack);
}
}
Étape 3 : Personnaliser vos mots-clés (Le plus important !)
Regardez en haut du script, dans la section COULEURS_PAR_MOT_CLE. C’est ici que vous définissez vos règles.
const COULEURS_PAR_MOT_CLE = {
'Réunion': CalendarApp.EventColor.BLUE,
'Projet': CalendarApp.EventColor.GREEN,
'Déjeuner': CalendarApp.EventColor.YELLOW,
// ...
};
- Pour ajouter une règle : Copiez une ligne, par exemple
'Sport': CalendarApp.EventColor.CYAN, - Pour changer une couleur : Remplacez
BLUEpar une autre valeur. L’éditeur vous proposera les choix (commeRED,GREEN,YELLOW,ORANGE,CYAN,PURPLE, etc.) si vous tapezCalendarApp.EventColor.
N’oubliez pas d’enregistrer en cliquant sur l’icône en forme de disquette 💾.
Étape 4 : Exécuter le script et donner les autorisations
C’est la seule étape un peu « technique », mais ne vous inquiétez pas, c’est normal.
- Assurez-vous que la fonction
colorerEvenementsest bien sélectionnée dans la barre d’outils en haut. - Cliquez sur le bouton Exécuter.
La première fois (et seulement la première fois), Google va vous demander la permission.
AVERTISSEMENT DE SÉCURITÉ
- Une fenêtre « Autorisation requise » va s’afficher. Cliquez sur Examiner les autorisations.
- Choisissez votre compte Google.
- Vous verrez un écran « Cette application n’a pas été validée par Google ». C’est normal, car c’est votre propre script !
- Cliquez sur Paramètres avancés (ou « Avancé »).
- Cliquez sur Accéder à [Nom de votre projet] (non sécurisé).
- Enfin, cliquez sur Autoriser pour permettre au script de lire et modifier votre propre agenda.
Une fois l’autorisation donnée, le script va s’exécuter. Allez voir votre Google Calendar… Magie ! Vos événements devraient être colorés.
Allez plus loin : Automatisez-le VRAIMENT !
C’est super, mais devoir cliquer sur « Exécuter » à chaque fois, ce n’est pas très… automatique. Nous allons donc mettre en place un déclencheur pour que ce script s’exécute tout seul, par exemple, tous les matins.
- Dans l’éditeur de script, cliquez sur l’icône Déclencheurs (une horloge ⏰) dans le menu de gauche.
- Cliquez sur le bouton Ajouter un déclencheur en bas à droite.
- Configurez-le comme suit :
- Fonction à exécuter :
colorerEvenements - Déploiement à exécuter :
Principal - Sélectionner la source de l’événement :
Basé sur l'heure - Sélectionner le type de déclencheur horaire :
Minuteur journalier - Sélectionner l’heure :
Minuit à 1h(ou l’heure qui vous convient le mieux).
- Fonction à exécuter :
- Cliquez sur Enregistrer.
Et voilà ! Désormais, chaque nuit, le script se lancera et colorera automatiquement tous les nouveaux événements des 30 prochains jours. Vous n’avez plus jamais à y penser.
C’est à vous de jouer !
Vous avez maintenant un Google Agenda intelligent qui s’organise visuellement pour vous. C’est un exemple simple de la puissance de Google Apps Script pour personnaliser votre suite Workspace.
Dites-moi dans les commentaires : Quels mots-clés et quelles couleurs allez-vous utiliser ? Avez-vous d’autres idées d’automatisation que vous aimeriez voir ?
Si vous avez des questions ou si vous bloquez à une étape, n’hésitez pas, la section commentaires est là pour ça !