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スプレッドシートを使った時にはアレッと思うことが結構あるものです。そういう方々向けの企画です。


2 件のコメント:

  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

    返信削除
  2. Casino in Atlantic City, NJ | Mapyro
    Casino in Atlantic City, 문경 출장샵 NJ offers over 6,000 slots, poker, live dealer games, 안동 출장샵 bingo, 보령 출장안마 and live 공주 출장마사지 entertainment. Find your perfect spot for any occasion. 구미 출장샵

    返信削除