Googleカレンダーより翌日の予定を自動取得し、10時前(7時~9時59分まで)に予定がある場合のみ、
前日の夜にメールが配信される様なツールを作成したいと思っております。
スクリプトを途中まで作成したのですが、以下がどうしても解決できない為、
ご存じの方がいらっしゃいましたら、アドバイスいただけます様、お願いします。
①Googleカレンダーの翌日予定を取得するには、どの様なコードを設定したらよいのでしょうか?
当日の予定は、以下スクリプトで取得できる様になりました。
また、祝日・休日を除く処理をしたいと思い、コードを追加しておりますが、正しいでしょうか?
function fetchSchedules() { // メールアドレス var EMAIL = '*****@*****'; // スプレッドシート:シート名 var SHEET_NAME = 'schedule'; // スプレッドシート:開始位置 var RANGE = 2; // スプレッドシート:時間フォーマット var FORMAT_TIME = 'hh:mm'; // シート情報を取得 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME).clear(); // カレンダー情報を取得 var calender = CalendarApp.getCalendarById(EMAIL); // 当日の予定を取得 var schedules = calender.getEventsForDay(new Date()); // 祝日・休日を除く処理 var currentDate = new Date(); var weekday = currentDate.getDay(); if (weekday == 0 || weekday == 6) { return; } var calendar = CalendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com'); if (calendar.getEventsForDay(currentDate, {max: 1}).length > 0) { return; } // 予定を繰り返し出力する for(var index = 0; index < schedules.length; index++) { var range = RANGE + index; // 開始時間を出力 sheet.getRange(range, 3).setValue(schedules[index].getStartTime()).setNumberFormat(FORMAT_TIME); // 終了時間を出力 sheet.getRange(range, 4).setValue(schedules[index].getEndTime()).setNumberFormat(FORMAT_TIME); // 予定名を出力 sheet.getRange(range, 5).setValue(schedules[index].getTitle()); } }
②①で取得したカレンダーの予定を元に別シートへコピーし、メール本文内に、B2セルの時間とD2セルの時間を
記載したいのですが、メール本文では以下の様な表記となってしまいます。コードの修正で対応が可能でしょうか?
function mail_send() { var mySpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var mySheet = mySpreadsheet.getSheetByName("time"); var myEndRow = mySheet.getLastRow(); //最終行取得 var myRange = mySheet.getDataRange(); //sheetの範囲指定(全部) var times = myRange.getDisplayValues(); var myValues = myRange.getValues(); //指定した範囲の値を格納 for (i = 1; i <myEndRow; i++ ) var mail_to="*****@*****,*****@*****"; //メールの送付先(To)を入力 var mail_suject="明日の出勤時間をお知らせ"; //メール件名 var mail_body = "○○さん\n\nお疲れ様です。\n\n明日は、" + myValues[1][1] +"時からの会議がありますので、\n" + myValues[1][3] +"時にご自宅を出発してください。\n\nよろしくお願いします。\n"; MailApp.sendEmail(mail_to, mail_suject, mail_body); }
③①で取得したカレンダーの予定(上記のB2セル)が、10時前(7時~9時59分まで)である場合のみ、
メールを配信する様に設定したいのですが、コードの追加等で対応が可能でしょうか?
ネット検索等で調べたコードを作成しておりますので、素人な考えやコード等になっておりましたら、
申し訳ありませんが、アドバイスいただけましたら幸いです。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/08 08:52