Commencez votre lundi sereinement : Le script qui vous envoie votre planning de la semaine
Nous connaissons tous cette sensation. C’est lundi matin, le café est à peine prêt, et vous ouvrez votre ordinateur en vous demandant : « Qu’est-ce que j’ai au programme cette semaine ? » On ouvre Google Agenda, on navigue entre les jours, on essaie d’avoir une vue d’ensemble… et on perd déjà un temps précieux.
Et si, à la place, vous receviez automatiquement un e-mail clair et concis à 8h00 pétantes chaque lundi matin, résumant tous vos rendez-vous et événements pour les 7 prochains jours ?
Aujourd’hui, je vous montre comment transformer cette idée en réalité grâce à la puissance cachée de Google : Apps Script. C’est un outil gratuit, intégré à votre compte Google, qui vous permet d’automatiser à peu près tout. Pas besoin d’être un développeur de génie, suivez simplement le guide !
Pourquoi c’est intéressant ?
- Visibilité instantanée : Plus besoin de chasser l’information. Vous avez une vue d’ensemble de votre semaine avant même de l’avoir commencée.
- Gain de temps : C’est quelques minutes de gagnées chaque lundi, mais surtout, une charge mentale en moins.
- « Zéro oubli » : En ayant un aperçu clair, vous anticipez mieux les préparations nécessaires pour vos réunions.
- C’est 100% gratuit et fonctionne en arrière-plan. « Configurez et oubliez ! »
Mettez-le en place en 5 minutes
Prêt à automatiser votre organisation ? C’est parti !
Étape 1 : Ouvrir l’éditeur de script
La façon la plus simple est de vous rendre sur script.google.com et de cliquer sur « Nouveau projet » en haut à gauche.
Alternative : Vous pouvez aussi l’ouvrir depuis un outil Google (comme Google Sheets, Docs, ou même Agenda). Dans Google Agenda, cliquez sur la roue crantée ⚙️ (Paramètres) > « Paramètres », puis dans le menu de gauche, cliquez sur « Apps Script ».
Donnez un nom à votre projet (par ex. « Résumé Agenda Hebdo »).
Étape 2 : Coller le code
L’éditeur vous présentera un fichier vide nommé Code.gs. Effacez tout ce qu’il contient et collez l’intégralité du code (celui en français fourni au début de cet article).
/**
* Récupère dynamiquement l'e-mail de l'utilisateur qui exécute le script.
* L'e-mail sera envoyé à cette personne.
*/
const EMAIL_DESTINATAIRE = Session.getActiveUser().getEmail();
/**
* Récupère les événements à venir du calendrier et envoie un résumé hebdomadaire
* formaté par e-mail.
*/
function envoyerResumeHebdomadaire() {
const aujourdhui = new Date();
// Calcule la date dans 7 jours
const dansUneSemaine = new Date(aujourdhui.getTime() + 7 * 24 * 60 * 60 * 1000);
try {
const calendrier = CalendarApp.getDefaultCalendar();
const evenements = calendrier.getEvents(aujourdhui, dansUneSemaine);
const sujet = `Votre agenda du ${aujourdhui.toLocaleDateString('fr-FR')} au ${dansUneSemaine.toLocaleDateString('fr-FR')}`;
// Construction du corps de l'e-mail en HTML pour une belle mise en forme
let corpsHtml = `
<body style="font-family: Arial, sans-serif; line-height: 1.6;">
<h2 style="color: #1a73e8;">Votre résumé d'agenda hebdomadaire</h2>
<p>Bonjour, voici vos événements à venir pour les 7 prochains jours :</p>
`;
if (evenements.length === 0) {
// Utilisation d'apostrophes inverses (backticks) pour gérer l'apostrophe
corpsHtml += `<p>Vous n'avez aucun événement cette semaine. Profitez de votre temps libre !</p>`;
} else {
corpsHtml += `
<table style="width: 100%; border-collapse: collapse;">
<tr style="background-color: #f2f2f2; text-align: left;">
<th style="padding: 12px; border: 1px solid #ddd;">Titre</th>
<th style="padding: 12px; border: 1px solid #ddd;">Date et heure</th>
</tr>
`;
// Boucle sur chaque événement trouvé
evenements.forEach(evenement => {
const titre = evenement.getTitle();
// Utilise 'fr-FR' pour un format de date et heure local
const debut = evenement.getStartTime().toLocaleString('fr-FR');
const fin = evenement.getEndTime().toLocaleString('fr-FR');
// Gère les événements d'une journée entière différemment
const horaire = evenement.isAllDayEvent() ? "Toute la journée" : `${debut} - ${fin}`;
corpsHtml += `
<tr>
<td style="padding: 12px; border: 1px solid #ddd;">${titre}</td>
<td style="padding: 12px; border: 1px solid #ddd;">${horaire}</td>
</tr>
`;
});
corpsHtml += "</table>";
}
corpsHtml += `<p style="font-size: 12px; color: #777; margin-top: 20px;">Ceci est un e-mail automatisé envoyé par Google Apps Script et l'Atelier Informatique.</p></body>`;
// Envoi de l'e-mail
GmailApp.sendEmail(EMAIL_DESTINATAIRE, sujet, "", { htmlBody: corpsHtml });
console.log('E-mail résumé envoyé avec succès à ' + EMAIL_DESTINATAIRE);
} catch (e) {
// --- CORRECTION APPLIQUÉE ICI ---
// Gestion des erreurs
// Utilisation de backticks (`) pour gérer l'apostrophe dans "l'envoi"
// et de e.stack pour un message d'erreur plus détaillé (avec le numéro de ligne).
console.error(`Erreur lors de l'envoi du résumé hebdomadaire : ${e.stack}`);
}
}
/**
* Crée un déclencheur (trigger) qui exécute automatiquement la fonction envoyerResumeHebdomadaire
* tous les lundis matin.
* Vous n'avez besoin d'exécuter cette fonction qu'UNE SEULE FOIS depuis l'éditeur Apps Script
* pour mettre en place l'automatisation.
*/
function creerDeclencheurHebdomadaire() {
const declencheurs = ScriptApp.getProjectTriggers();
// Empêche la création de déclencheurs en double pour cette fonction
for (const declencheur of declencheurs) {
if (declencheur.getHandlerFunction() === 'envoyerResumeHebdomadaire') {
ScriptApp.deleteTrigger(declencheur);
}
}
// Crée le nouveau déclencheur
ScriptApp.newTrigger('envoyerResumeHebdomadaire')
.timeBased() // Basé sur le temps
.onWeekDay(ScriptApp.WeekDay.MONDAY) // S'exécute le LUNDI
.atHour(8) // À 8h00 du matin
.inTimezone(Session.getScriptTimeZone()) // Utilise le fuseau horaire de votre script
.create();
console.log('Déclencheur créé pour une exécution hebdomadaire le lundi à 8h00.');
}
Étape 3 : La configuration …
Aucune configuration n’est nécessaire.
Cliquez juste sur l’icône de disquette 💾 pour enregistrer votre projet.
Étape 4 : Tester le script (Optionnel mais recommandé)
Assurons-nous que tout fonctionne.
- Dans la barre de menu en haut (à côté de « Déboguer »), sélectionnez la fonction
envoyerResumeHebdomadaire. - Cliquez sur le bouton « Exécuter« .
La première fois, Google vous demandera des autorisations. C’est tout à fait normal ! Le script a besoin de votre permission pour :
- Lire votre calendrier (pour trouver les événements).
- Envoyer un e-mail (pour vous envoyer le résumé).
Cliquez sur « Examiner les autorisations », choisissez votre compte Google, et (cliquez sur « Paramètres avancés » si nécessaire) « Autoriser ».
Une fois l’exécution terminée, vérifiez votre boîte de réception ! Vous devriez avoir reçu votre premier résumé.
Étape 5 : Activer l’automatisation (Le « Trigger »)
Maintenant, disons à Google de faire cela pour nous chaque semaine.
- Dans la barre de menu, sélectionnez cette fois la fonction
creerDeclencheurHebdomadaire. - Cliquez sur le bouton « Exécuter« .
Vous n’avez besoin de faire cela QU’UNE SEULE FOIS. Cette fonction vient de dire à Google : « Hé, exécute la fonction envoyerResumeHebdomadaire tous les lundis à 8h00 pour moi. »
Vous pouvez vérifier que cela a fonctionné en cliquant sur l’icône en forme de réveil ⏰ (« Déclencheurs ») dans le menu de gauche. Vous devriez y voir votre nouvelle automatisation.
Et voilà !
C’est terminé ! Lundi prochain, à 8h00, vous recevrez votre premier résumé d’agenda entièrement automatisé.
C’est un exemple simple de ce qu’Apps Script peut faire. À partir de là, vous pourriez le personnaliser :
- Changer le jour (pourquoi pas un envoi le vendredi soir ?) en modifiant
.onWeekDay(ScriptApp.WeekDay.MONDAY). - Changer l’heure en modifiant
.atHour(8). - Ajouter un message de bienvenue personnalisé.
J’espère que cette astuce vous aidera à mieux vous organiser.
Et vous, avez-vous d’autres idées pour automatiser votre quotidien numérique ? Partagez-les en commentaire !