プログラミング 情報システム・IT

Googleカレンダー終日予定をスプレッドシートへ表示する

  1. HOME >
  2. プログラミング >

Googleカレンダー終日予定をスプレッドシートへ表示する

らいちょうさん

新しいことにチャレンジするのが大好きな2児の親。 あなたは悪くない。日本にいるだけで不利な状況。少しでも役に立つ情報発信ができたらいいな。

この記事を読むとよい人

  • GoogleAppsScriptでカレンダーの終日予定を取得してみたい
  • Googleカレンダーの終日予定をスプレッドシートに反映したい
  • Googleカレンダーを元に1週間、1か月の予定表を表示したい

はじめに

業務改善においては、既存のシステムをどれだけ利用するかも大切な観点ですよね。

今回は、Googleカレンダーに終日の休みの予定を入れてもらうことで、関係者の休みの状況をスプレッドシートで可視化するGoogleAppsScriptで作成しました。

ネットで検索しても、完成されたものが見つからず、複数のサイトを見ながら自作するということになりました。

コード掲載いたしますが、以下のリンクをクリックすると、即時利用可能で実用性の高いスプレッドシートをコピーし、以下のいくつかの簡単な手順に沿っていただくだけで、利用可能となっています。

細かい仕様や自分でカスタマイズしたい場合には、ダウンロード後にこの記事をよく読んでいただき、自分に合ったカスタマイズをしてみてください。

手順

らいちょうさん

ダウンロードURLクリックして、ファイルコピーを作成をクリック。

らいちょうさん

ドキュメントをコピーで、任意の名前フォルダを指定してをOK押します。

※今回は、規定で表示された名前とフォルダをそのままでOKを選択しています。

らいちょうさん

拡張機能AppsScript

らいちょうさん

「appsscript.json」マニフェスト ファイルをエディタで表示する にチェックを入れる有効にする。

カレンダーの様に国や地域によって時刻に影響がでるスクリプトを実行するときは、タイムゾーンを正しく指定しておかないと想定と異なる結果になります。スクリプトを実行する環境を日本時間にしておく必要があります。

また、カレンダーについてもどこのタイムゾーンを利用しているかで結果変わったはずですので、確認しておきましょう。

らいちょうさん

マニフェストファイルが有効になっているか確認します。エディタをクリックします。

らいちょうさん

マニフェストファイル「appsscript.json」が表示されますのでクリックして、timezoneを確認し、"Asia/Tokyo"になっていなければ以下のコードをコピペして上書きしてください。

※日本でなければ、いらっしゃる地域にしてください。

らいちょうさん

timezoneの変更が発生した方は、フロッピーディスクのマークをクリックして、保存してださい。

らいちょうさん

一旦、スクリプトと紐づいているスプレッドシートをF5もしくは更新マークで、リロードしてください。

らいちょうさん

リロードしたら、利用できるようにするため、一度GetGoogleCalメニューのgoogleCal To Sp thisをクリックして実行します。

※この時点では、スクリプトはまだ実行されません。スクリプトを実行するための承認作業が完了してから機能するようになります。

らいちょうさん

スクリプトを実行すると、承認が必要と表示されるので、続行をクリック。

らいちょうさん

以下のように表示されますので、ご自身のGoogleアカウントをクリック(どのアカウントで実行するのか)

そのあとに、許可をクリックして準備完了です。

仕様

  • 前提
    • このスクリプトを実行するGoogleアカウントに対してカレンダーの閲覧権限を与えられている、かつ他のカレンダーに表示されている必要があります。なお、カレンダー上に表示をするためのチェックボックスはチェックが入っていなくてもよいです。
    • listのシートのメールアドレスは、閲覧権限のあるアカウントにしてください。初期のメールアドレスは利用できませんので、削除してください。
  • シート
    • def
      • start day
        • カレンダーの始まりの日を指定できます。25日締めであれば26を入力するとカレンダーに反映されます。
    • list
      • このシートにカレンダーに反映させるGoogleアカウントの一覧を追加しておきます。
    • last
      • 先月のカレンダー表示
    • this
      • 今月のカレンダー表示
    • next
      • 来月のカレンダー表示
    • exp(Last/This/Next)
      • メニューで対応するスクリプト実行すると、listシートにカレンダー表示したいGoogleアカウントを登録しておく必要があります。
  • メニューのGetGoogleCal
    • googleCal To Sp (last/this/next)
      • last=先月 、this=今月 、next=来月 のカレンダーを取得して反映させることができます。
    • targetGoogleCalAddOtherCal
      • 実行者のアカウントのGoogleカレンダーにlistシートに追加したGoogleアカウントを他のカレンダーに追加します。
      • これを最初に実行しておかないとgoogleCal To Sp (last/this/next)を実行しても、他のカレンダーに追加されていない人をスプレッドシートに反映することができません。
  • AppsScript内ファイル
    • cfg.gs
      • この中の設定をかえると、カスタマイズできます。

コード

最後に

email@を基準にしてシートをクリアしているので、この仕様を理解していただければ、左列、上行追加してもらって、名前を入れたりして利用も可能です。

また、自動実行のトリガーを設定しておくと、めちゃくちゃ便利に利用できます。

あと、雑なコードになっていますが、ご了承ください。

人気記事ベスト5

妊娠中と出産後に必ず食べたいおすすめの食べ物

  • この記事を書いた人

らいちょうさん

新しいことにチャレンジするのが大好きな2児の親。 あなたは悪くない。日本にいるだけで不利な状況。少しでも役に立つ情報発信ができたらいいな。

-プログラミング, 情報システム・IT
-, , ,