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.
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 autonome qui utilise les services avancés de l’API Google Agenda et de l’API Gmail. Le programme recherche les événements de type Absent du bureau et fonction des dates positionne le message d’absence.
Étapes de l’automatisation
- 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 appelleactiverRepondeurAutomatique_()
. - Vérification et Activation du Répondeur Automatique :
La fonctionactiverRepondeurAutomatique_()
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.