Simplifiez la gestion de votre calendrier : repérez et colorez vos événements avec des invités

Google Apps Script offre de formidables possibilités pour automatiser et personnaliser vos services Google. Aujourd’hui, nous allons voir comment modifier automatiquement la couleur de vos événements Google Agenda qui comportent des invités.

Contexte et intérêt

Imaginez que vous souhaitiez identifier rapidement, sur votre calendrier, les événements impliquant d’autres participants. En changeant leur couleur, vous pouvez immédiatement repérer les rendez-vous collaboratifs sans parcourir chaque événement individuellement. Ce petit script, facile à intégrer dans Google Apps Script, vous permettra d’automatiser cette tâche et d’améliorer votre productivité.

Présentation du code

Voici le code que nous allons détailler.

function changerCouleurEvenementsAvecInvites() {
  // Obtenir la date d'aujourd'hui et régler l'heure au début de la journée
  const aujourdHui = new Date();
  aujourdHui.setHours(0, 0, 0, 0);

  // Calculer la date de demain (vous pouvez modifier l'intervalle si besoin)
  const dateFuture = new Date(aujourdHui);
  dateFuture.setDate(dateFuture.getDate() + 1);

  // Obtenir le calendrier par défaut
  const calendrier = CalendarApp.getDefaultCalendar();

  // Récupérer tous les événements entre aujourd'hui et la date future
  const evenements = calendrier.getEvents(aujourdHui, dateFuture);

  // Définir la couleur préférée pour les événements comportant des invités
  // Options : CalendarApp.EventColor.RED, PALE_BLUE, PALE_GREEN, MAUVE, etc.
  const couleurPreferee = CalendarApp.EventColor.RED;

  // Parcourir chaque événement pour vérifier s'il a des invités
  for (const evenement of evenements) {
    const invites = evenement.getGuestList();

    if (invites.length > 0) {
      evenement.setColor(couleurPreferee);
      Logger.log(`Couleur changée pour l'événement : ${evenement.getTitle()} avec ${invites.length} invités`);
    } else {
      Logger.log(`Couleur d'origine conservée pour l'événement : ${evenement.getTitle()} avec ${invites.length} invités`);
    }
  }
}

Décryptage du script

1. Initialisation de la date

Le script commence par définir la date d’aujourd’hui et réinitialise l’heure pour se concentrer uniquement sur la date. Ensuite, il calcule la date du lendemain pour définir une plage temporelle d’un jour. Cela permet d’optimiser la recherche des événements du jour.

2. Accès au calendrier et récupération des événements

En appelant CalendarApp.getDefaultCalendar(), le script récupère le calendrier par défaut de l’utilisateur. Ensuite, il utilise la méthode getEvents pour extraire tous les événements entre aujourd’hui et demain. Cette approche permet de limiter le traitement aux événements pertinents.

3. Définition et application de la couleur

La constante couleurPreferee est définie pour spécifier la couleur à appliquer aux événements comportant des invités. La boucle for…of parcourt chaque événement, vérifie si des invités sont présents grâce à getGuestList(), et modifie la couleur de l’événement si nécessaire. Chaque modification (ou absence de modification) est consignée via Logger.log, ce qui est utile pour le suivi et le débogage.

Valoriser vos créneaux de concentration

En complément de la mise en évidence des événements collaboratifs, il est intéressant de noter que les créneaux où vous êtes seul peuvent également être valorisés. Pour ces périodes de travail individuel, vous pouvez créer des événements spécifiques en utilisant le type “Moment de concentration”. Cette approche permet non seulement de distinguer clairement les rendez-vous collaboratifs des périodes de travail focalisé, mais aussi de mieux organiser votre journée en réservant des plages dédiées à la réflexion ou à la production personnelle.

Comment aller plus loin ?

Vous pouvez adapter ce script selon vos besoins, par exemple :

  • Changer la plage temporelle : Étendre ou réduire la période pour récupérer les événements (par exemple, une semaine ou un mois).
  • Rechercher des événements avec un invité spécifique : Adaptez le script pour filtrer les événements comportant un invité particulier, ce qui permet de cibler plus précisément certains rendez-vous.
  • Utiliser d’autres critères : Modifier la couleur en fonction de critères supplémentaires, comme le titre de l’événement ou l’heure.
  • Notifier par email : Ajouter une fonctionnalité pour envoyer une notification par email lorsque la couleur d’un événement est modifiée.

Conclusion

Ce script est un excellent exemple de la manière dont Google Apps Script peut simplifier la gestion de votre calendrier en automatisant des tâches répétitives.

N’hésitez pas à expérimenter et à adapter ce code pour qu’il réponde parfaitement à vos besoins !