スプレッドシートに登録されたタスクのうち、当日が期限のものを自動で抽出し、毎朝9時にメールで通知するGASスクリプトです。
// 毎朝9時に当日期限のタスクをメール送信 function sendMorningTaskReport() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName('タスク一覧'); const data = sheet.getDataRange().getValues(); // 今日の日付(時刻なし) const today = new Date(); const todayStr = Utilities.formatDate( today, 'Asia/Tokyo', 'yyyy/MM/dd' ); // 当日が期限のタスクを抽出(1行目はヘッダーのためスキップ) const todayTasks = data.slice(1).filter(row => { const deadline = Utilities.formatDate( new Date(row[2]), 'Asia/Tokyo', 'yyyy/MM/dd' ); return deadline === todayStr && row[3] !== '完了'; }); // タスクがなければ送信しない if (todayTasks.length === 0) { Logger.log('本日のタスクなし'); return; } // メール本文を組み立て let body = `おはようございます。\n本日(${todayStr})のタスクです。\n\n`; todayTasks.forEach((row, i) => { body += `【${i + 1}】${row[0]}(担当:${row[1]})\n`; }); body += `\n本日もよろしくお願いします。`; const to = 'your-email@example.com'; const subject = `【本日のタスク】${todayStr} / ${todayTasks.length}件`; GmailApp.sendEmail(to, subject, body); Logger.log(`送信完了: ${todayTasks.length}件`); } // ※ トリガー設定:「時間ベース」→「日タイマー」→「午前9時〜10時」