Automatisation avec Google Apps Script : Ne plus oublier son message d’absence dans Gmail

Avez vous déjà oublié d’activer votre message automatique d’absence sur Gmail avant de partir en congé ? Si oui, je vous propose ce script permettant en lisant votre agenda de le positionner automatiquement afin de ne plus jamais oublier cette tâche.

Lorsque mon responsable valide mes demandes de jours de congé via notre système RH interne, je n’oublie pas ensuite d’ajouter un événement « Absent du bureau » sur Google Agenda.

Cette tâche permet à ce que mon calendrier soit bloqué pendant mes vacances prévues. Cependant, il n’y avait aucun déclencheur automatique pour mettre à jour mes paramètres Gmail.

Une automatisation simple mais puissante Avec Apps Script

Étant un grand fan de Google Apps Script, j’étais convaincu qu’il y avait un moyen d’automatiser cette tâche pour éviter d’oublier d’activer le message automatique d’absence de Gmail.

J’ai créé un script Apps Script autonome qui utilise les services avancés de l’API Google Agenda et de l’API Gmail. Une fois activés dans l’IDE Apps Script, ces deux services permettent d’utiliser les API respectives dans Apps Script.

Étapes de l’automatisation

  1. Récupération des Événements de Type ‘OutOfOffice’ :
    Le script récupère tous les événements de type ‘OufOfOffice’ pour le jour en cours. Si de tels événements existent et ont ‘Absent du bureau’ comme résumé (texte par défaut), la fonction appelle activerRepondeurAutomatique_().
  2. Vérification et Activation du Répondeur Automatique :
    La fonction activerRepondeurAutomatique_() vérifie d’abord si le message automatique d’absence est déjà activé pour éviter des activations répétitives inutiles. Si le répondeur n’est pas activé, la fonction le configure dans les paramètres de Gmail.

Exemple de code

// Fonction pour obtenir les événements de type "outOfOffice" du jour en cours
function obtenirEvenementsAbsence() {
  // ID du calendrier principal
  const idCalendrier = 'primary';
  
  // Paramètres optionnels pour la requête des événements
  const options = {
    eventTypes: ['outOfOffice'], 
    showDeleted: false, // Ne pas montrer les événements supprimés
    timeMin: obtenirDateEtHeure_(0, 01), // Heure de début : 00:01
    timeMax: obtenirDateEtHeure_(23, 59), // Heure de fin : 23:59
  };

  // Récupération de la réponse de la liste des événements
  let reponse = Calendar.Events.list(idCalendrier, options);

  // Si des événements sont trouvés
  if (reponse.items.length != 0) {
    // Si le type d'événement est "outOfOffice" et le résumé est "OOO"
    if (reponse.items[0].eventType === 'outOfOffice' && reponse.items[0].summary === 'Absent du bureau') {
      activerRepondeurAutomatique_(); // Activer le répondeur automatique
    }
  }
}

// Fonction pour obtenir la date et l'heure au format requis
function obtenirDateEtHeure_(heure, minutes) {
  const date = new Date();
  date.setHours(heure);
  date.setMinutes(minutes);
  date.setSeconds(0);
  date.setMilliseconds(0);
  return date.toISOString(); // Retourne la date et l'heure en format ISO
}

// Fonction pour activer le répondeur automatique
function activerRepondeurAutomatique_() {
  // Récupérer le statut actuel du répondeur automatique
  const statutRepondeur = Gmail.Users.Settings.getVacation('me');

  // Si le répondeur automatique n'est pas activé
  if (statutRepondeur.enableAutoReply === false) {
    // Mettre à jour les paramètres du répondeur automatique
    Gmail.Users.Settings.updateVacation({
      enableAutoReply: true, // Activer le répondeur automatique
      responseSubject: 'Je suis absent du bureau aujourd\'hui', // Sujet de réponse
      responseBodyHtml: "Je suis absent du bureau aujourd'hui et je ne consulte pas mes emails.", // Corps du message de réponse
      restrictToContacts: true, // Restreindre aux contacts
      restrictToDomain: true, // Restreindre au domaine
    }, 'me');
  }
}

Configuration de la tâche planifiée

Pour que le script s’exécute tous les jours, j’ai configuré un déclencheur temporel qui s’exécute quotidiennement entre 4h et 5h du matin. J’ai également choisi d’être immédiatement notifiée en cas d’échec du script, pour une efficacité maximale.

  • 1. Ouvrez l’IDE Apps Script.
  • 2. Allez dans Éditeur > Déclencheurs et créez un nouveau déclencheur.
  • 3. Sélectionnez la fonction obtenirEvenementsAbsence.
  • 4. Définissez l’intervalle de temps pour qu’il s’exécute quotidiennement entre 4h et 5h du matin.

Importance de cette automatisation

Cette petite automatisation montre le potentiel plus large de Google Apps Script. Elle témoigne de la puissance de la personnalisation et de la capacité à adapter nos environnements numériques à nos besoins spécifiques.

Si vous avez du mal avec une tâche répétitive ou facilement oubliable, n’hésitez pas à explorer les possibilités de Google Apps Script.

Laisser un commentaire