とうとうGASデビュー:スプレッドシートからカレンダーへ予定を登録

Google Apps Script(略してGASというらしい)の情報はこれまでもインターネット上で見る機会があったのだけど、Googleは検索エンジンとメールしか使っておらず、しかもメールに関してはサブもサブのメールアドレスといった位置づけ。Googleのアプリにお世話になることはきっとないだろう、と思っていた。

だけど最近、会社でGoogleアプリを使うことが禁止されていない、ということを知って、活用方法を考え始めている。 まずは、会社用のgmailアドレスの登録して比較的簡単なことから始める。

  • GoogleMapsによく使うレストランなどを登録。
  • GooglePhotosに写真をバックアップ1

ここまでは設定の問題なので、敷居が低い。次のステップは、Google Apps Scriptを用いて自分専用の便利機能を作る

多くの人たちが取り組んでいるのが、Spreadsheetで作成した予定一覧をCalendarへ一括登録する、というもの。確かに便利そうである。便利そうであるが、私、仕事で使ってるのは、Outlookなんだよなー。ということで、Google Calendarへ登録後は、Outlook CalendarへのSyncの設定も必要そうである。

初心者の私にも理解できたGAS解説サイト

Google Apps Scriptの基本も分からない私が参考にしたのは次のサイト。非常にわかりやすい。

OYAKUDACHI.xyz

特に参考にした記事

上記の最後「【コピペでOK!】スプレッドシートとカレンダーを連携してイベントを一括登録する方法」に載っているコードで私がやりたいことの95%は達成。

事前準備

デフォルトのカレンダーではなく予定のカテゴリー登録したいと考えていたので、Google・Outlookいずれでも新たにカレンダーを作成した。(今回作ったのは《OOO》2というカレンダー。ミーティングで聞いた上司や同僚たちの出張・休暇日程を登録しておこうかな、と。)

全日・時間指定のイベントどちらも同じシートから一括登録

モノグサな私が必要としているのは、ひとつのシートで、全日イベントと時間指定のイベントの両方を登録すること。なので、データテーブルを以下のようにして、紹介されているコードをほんの少し変更してみた。

Push to Calendar Table

全日の予定の場合には、【All Day Event】列に《y》と入力。時間(【Start Time】・【End Time】)は入力しない。

もっと上手な書き方あるのだろうけど、とりあえずこれで私のやりたかったことは出来たので、現状は良し。

コード修正

2018.06.22)コードを書き換えた。こっちの方がスッキリ。

(2018.07.30) 更に修正。

Outlookへ登録:SyncじゃなくてFlowを使ってみた

Google CalendarとOutlookの連携方法もいくつか方法があるようだ。

 

Office 365を使っているなら、上記【Google Calendarを購読する】の方法とほぼ同じことがMS Flowを使っても出来る。

 

MS Flowを使って特定の添付書類をSharePointに格納するなど、Flowがお気にいりなので後者の方法でOutlookへ登録することにした。この方法だとクライアント変えても大丈夫なはず、多分。

今後の課題

同じシートで、編集や削除も出来たらいいかも、と思う。でも、それよりも盛り込みたいのは、同僚の名前や不在の種類(出張か休暇か)の列を作って、イベントタイトルの頭にその情報を付けることかも。 最終的には、《Google Spreadsheet》を使っている部分を《SharePointリスト》にしてGoogleを介さずに完結出来たら良いのだけど、現時点の私のスキルでは難しい。


  1. iCloud追加ストレージ問題も解消されるかもしれません(2018年2月現在、50GBで月額130円)。私はそれほど写真撮らないけど。 ↩︎
  2. 「Out of Office(不在)」カレンダー ↩︎
Advertisements