Google スプレッドシートで自動タスクリマインダー:締切通知をメールで自動送信

JavaScript

このスクリプトはGoogle スプレッドシートとGoogle Apps Scriptを用いて、タスク管理を効率化します。締切日が明日であるタスクに対して、自動的にリマインダーをメールで送信します。これはGoogle スプレッドシートを活用してプロダクティビティを向上させるための一例です。

使用技術

  • Google Apps Script: スクリプトの主なロジックを処理。
  • Google スプレッドシート: タスクと締切日を格納および管理。
  • Google メールサービス (Gmail): リマインダーを送信するためのメールサービス。

機能

  • Googleスプレッドシートからタスクとその締切日を読み取ります。
  • スクリプトが実行された日の翌日が締切日であるタスクがあれば、指定されたメールアドレスにリマインダーを送信します。
  • 締切日が過ぎたタスクについては通知されません。

ソースコード

JavaScript
function sendTaskReminder() {
  // アクティブなスプレッドシートを取得
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  
  // "Tasks"という名前のシートを取得
  var sheet = ss.getSheetByName("Tasks");
  
  // シートが存在するかどうかを確認
  if(sheet === null) {
    Logger.log("The sheet named 'Tasks' was not found.");
    return;
  }
  
  // タスクと締切日が格納されている範囲を取得(この例では、列Aにタスク、列Bに締切日)
  var tasks = sheet.getRange("A2:B10").getValues();
  
  // 現在の日付を取得し、明日の日付を計算
  var today = new Date();
  var tomorrow = new Date(today.getTime() + (24 * 60 * 60 * 1000)); // 1日後(24時間*60分*60秒*1000ミリ秒)
  
  // 各タスクについてチェック
  for (var i = 0; i < tasks.length; i++) {
    var taskName = tasks[i][0];
    var dueDate = new Date(tasks[i][1]);
    
    // 締切日が明日であればメールを送信
    if (dueDate.toDateString() === tomorrow.toDateString()) {
      var email = "your_email@example.com"; // ご自身のメールアドレスに変更してください
      var subject = "Task Reminder: " + taskName;
      var body = "The following task is due tomorrow: " + taskName + " (Due Date: " + dueDate.toDateString() + ")";
      MailApp.sendEmail(email, subject, body);
    }
  }
}

// MIT License
// Copyright (c) 2023 [ANJI]
//
// 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.

使い方

  1. Googleスプレッドシートを作成します。
  2. シートに”Tasks”という名前を付け、列Aにタスク名、列Bに締切日を入力します。
  3. このスクリプトをGoogleスプレッドシートに追加します。
  4. コード中の var email = “your_email@example.com“; の部分を、通知を受け取りたいメールアドレスに書き換えます。
  5. スクリプトを手動で実行するか、時間ベースのトリガーを設定して自動実行させます。
  6. 時間ベースのトリガーの設定方法
  7. Googleスプレッドシートの画面で、拡張機能 → Apps Script を開きます。
  8. Apps Scriptの画面で、左上のトリガーアイコン(時計のような形をしている)をクリックします。
  9. + トリガーを追加 ボタンをクリックします。
  10. 実行する関数に sendTaskReminder を選び、イベントのソースに 時間ベースのトリガー を選びます。
  11. どの頻度でスクリプトを実行するかを選びます(例:毎日9時に実行など)。
  12. 保存をクリックします。

    以上の手順で設定すれば、指定した時間になると自動でスクリプトが実行され、条件に合致するタスクについてメール通知が送られます。

コメント

タイトルとURLをコピーしました