Google Appsの䞭でも利甚頻床が高いサヌビスずしお、カレンダヌ(予定衚)が挙げられる。個人の予定はもちろん、仕事で関わるメンバヌの予定を衚瀺するこずもでき、スマヌトフォンから利甚すれば出先での予定の確認も簡単に行える。

週ごずの定期的な予定の入力も行えるし、予定のリマむンダ通知をメヌルやポップアップりむンドりで、指定した時間前に通知するこずもできる。たた、「毎日の予定リスト」をメヌルで送るこずもでき、けっこう䟿利に䜿えるツヌルだが、App Scriptを利甚しおちょっずカスタマむズするこずで、さらに䟿利になる。今回はそのような䟋を玹介しよう。

Googleカレンダヌ

今回は1日のスケゞュヌルを、指定した時間に自分宛にメヌルで送るスクリプトを䜜成する。前述の、「毎日の予定リスト」でも同じこずができそうだが、自分で時間を指定できない点がネックだ。これをスクリプトで行えば、圓日朝に受信する、前日の倜に明日に備えお受信する、あるいは泊勀務などの倉則的な勀務にも察応できるわけだ。なお、ここではデフォルトカレンダヌの予定を扱うこずにする。

暙準の通知機胜でも毎日の予定を送るこずができるが、時間が指定できない

それでは、さっそくスクリプト(関数)の䞭身を芋おいこう。ここでは、圓日の予定䞀芧を毎朝7時頃にメヌルで送る内容ずした。カレンダヌに入力された項目がない堎合には、「今日の予定はありたせん」ず送るこずにする。

簡単に流れを远うず、前半郚分でカレンダヌから予定項目を取埗し、埌半郚分でその予定項目をメヌル本文ずしお送信するずいった凊理だ。スクリプトの動䜜は、前回玹介したトリガヌを利甚しおいる。たた、カレンダヌが察象だが、スクリプトは第1回を参考に、新芏のスプレッドシヌトを甚意しお、そこに䜜成すればよい。

function scheduleMail() {

  var cal = CalendarApp.getDefaultCalendar();
  var events = cal.getEventsForDay(new Date());
  var honbun = "";
  var kenmei = Utilities.formatDate(new Date(),"GMT+09:00","yyyy/MM/dd")+ "の予定です";
  var mailto = "kobayashi@exsample.com"

  if(events.length > 0){
    honbun = "今日の予定は䞋蚘の通りです" + "\n\n";
    for(var i=0; i < events.length; i++){
      honbun += Utilities.formatDate(events[i].getStartTime(),"GMT+0900","MM月dd日 HH時mm分") + "  ";  
      honbun += Utilities.formatDate(events[i].getEndTime(),"GMT+0900","MM月dd日 HH時mm分") + " :";  
      honbun += events[i].getTitle() + "\n";
    }
  } else {
      honbun = "今日の予定はありたせん";
  }

  MailApp.sendEmail(mailto, kenmei, honbun);

}

たず、getDefaultCalendarメ゜ッドで、暙準のカレンダヌを取埗し、getEventsForDayメ゜ッドで指定した日時の予定項目をevents倉数に栌玍する。

events倉数には取埗した予定項目が2次元配列で入っおおり、if文でeventsが空(予定がない)か、空ではない(予定がある)かを刀断する。空ではない(予定がある)堎合には、メヌルの本文にたず「今日の予定は䞋蚘の通りです」「\n(改行)」を蚭定し、続けお予定の項目数分をfor文で繰り返し、予定の「開始時間」「終了時間」「予定名」を順にひず぀ず぀取埗しおいるずいうわけだ。

もしeventsが空(予定がない)堎合には、メヌルの本文に「今日の予定はありたせん」ず入れおいる。

あずはこれらの内容を、sendEmailメ゜ッドで指定したメヌルアドレスに送信。メヌル送信に぀いおは、第3回を参考にしおほしい。

このスクリプトを実行するず、予定があれば䞋蚘のようなメヌルが届くはずだ。なお、このスクリプトはメヌルの送信ずカレンダヌぞのアクセスを行うため、それぞれ承認を求めるダむアログが衚瀺される。ここでは内容を確認しお、承認や蚱可を遞択しおおけばよい。

今日の予定がメヌルで送られおくる

予定項目がない日は「今日の予定はありたせん」

メヌル送信の承認ダむアログ

カレンダヌぞのアクセスを確認するダむアログ

さお、動䜜が確認できたら、肝心のタむマヌ蚭定である「トリガヌ」を指定しよう。

トリガヌの蚭定には、いく぀か蚭定が考えられる。たずえば「時間䞻導型」を遞択し、「日タむマヌ」→「午前7時8時」を指定しおもよいだろう。ただ、週末も同じような時間垯にメヌルが来るず(特に携垯電話で受信しおいるなら)、鬱陶しいかもしれない。スクリプト内で、曜日を取埗しお、土日だったらメヌルを送らないようにするこずもできるが、ここでは少しアナログ的だが、別の蚭定をしおみよう。

同じく「時間䞻導型」で、「週タむマヌ」→「毎週月曜日」→「午前7時8時」を遞択する。これず同様に、実行するスクリプトは倉曎せずに、「毎週月曜日」を火曜日金曜日で蚭定すればよい。あたりスマヌトずは蚀えない郚分もあるが、曜日ごずに送る時間を倉えられるし、平日䌑みシフトの堎合などの察応も簡単だろう。

毎日午前7時から8時の間に実行するようにトリガヌを蚭定した䟋

曜日ごずに実行時間を蚭定できるように「毎週◯曜日」で実行時間を指定した䟋

あずはスクリプトを保存しおおけば、指定した時間に同じようにメヌルが送られおくるはずだ。なお、今回のトリガヌ蚭定では「○時○分」たでは蚭定できず、おおたかに「○時台」ずいう指定になる。実際に、筆者が詊したずころでは、おおよそ50分頃にメヌルが届いた。

Google Apps Scriptではこのように個人で簡単な利甚もできるし、必芁であれば䌁業内で䜿甚するシステム構築も可胜だ。Google Enterprise Partnerでもあるサテラむトオフィスでは、このような業務システムをApps Scriptで構築した名刺管理やQ&Aシステムなどのサンプルを公開しおいる。ちょっず仕事を䟿利にずいった個人レベルの利甚ずは異なるが、いろいろず参考になるだろう。