2011年9月30日金曜日

【業務で使える】今日の予定通知ツール(4)スクリプトの改良


残念ながら、昨日の終日イベントも入ってしまう事が判明しました。

よって、終日イベントに関しては (終了時刻の日付>今日) になっているモノのみ対象とする判定ロジックを入れ、以下のように改良しました。

function mySendEventsToday() {
  var cal = CalendarApp.getDefaultCalendar();
  var ev = cal.getEventsForDay(new Date()); // 残念ながら昨日の終日イベントも入ってしまう
  var mail_to = "zzz@xxxx.xx.xx";
  var today = Utilities.formatDate(new Date(), "JST", "yyyy/MM/dd");
  var subject ="【今日の予定:" + today + "】";
  var body = subject + "\n";
  body = body + "◆終日イベント\n";
  for (var i = 0; i < ev.length; i++) {
    // 終日イベントは (終了時刻の日付 > 今日) になっているモノのみ対象
    if (ev[i].isAllDayEvent() && (Utilities.formatDate(ev[i].getEndTime(), "JST", "yyyy/MM/dd") > today)) {
      body = body + "・";
      body = body + ev[i].getTitle();
      body = body + "\n";
    }
  }
  body = body + "◆時間イベント\n";
  for (var i = 0; i < ev.length; i++) {
    // 終日イベントでないもの(時間イベント)は全て対象
    if (!ev[i].isAllDayEvent()) {
      body = body + "・";
      body = body + Utilities.formatDate(ev[i].getStartTime(), "JST", "HH:mm");
      body = body + " - ";
      body = body + Utilities.formatDate(ev[i].getEndTime(), "JST", "HH:mm");
      body = body + " ";
      body = body + ev[i].getTitle();
      body = body + "\n";
    }
  }
  MailApp.sendEmail(mail_to, subject, body);
}

以上です。



【おまけ】新ブログを開設しました。
『ExcelユーザーのためのGoogleスプレッドシート入門』
Excelはフツーに使えるよという方でも、Googleスプレッドシートを使った時にはアレッと思うことが結構あるものです。そういう方々向けの企画です。


1 件のコメント:

  1. Arie,

    Can you please describe a little more as to what this script does? The Google Translation for this page is not so good.

    Thanks,
    Saqib

    返信削除