spreadsheetからcalendarに予定を作成する + slackに自動投稿する

spreadsheetに書き込んだ内容をcalendarに自動で追加するGoogle Apps Script(gas)

を参考に, gasで試してみました.

作成

カレンダーIDを取得

  • google calendarを開く
  • 書き込みたいカレンダーのオーバーフローメニューをクリックし, 設定と共有を開く スクリーンショット 2018-08-22 19.20.21.png
  • カレンダーの統合カレンダーIDを以下のcode内で使用する スクリーンショット 2018-08-22 19.20.41.png

Google Apps Scriptでcodeを書く

  • speadsheetを開く

  • Tools, Script editorでgasの編集画面を開く スクリーンショット 2018-08-22 18.59.48.png

  • codeを書いて保存.

    • XXXXXXXXXXXXXXXXXXXXX@group.calendar.google.comは書き込み先のカレンダーID. 自分のものに書き換える.

スクリーンショット 2018-08-22 19.04.12.png

  • triggerを設定する

    • Time-driven, From spreadshhetなどでtriggerを追加
    • Edit, Currentproject's triggersを選択

スクリーンショット 2018-08-22 19.07.05.png スクリーンショット 2018-08-22 19.07.20.png

 

予定を書く

  • speadsheetに戻る
  • A - H列に下記フォーマットで予定を書き込む.
カレンダー登録状況開始日終了日イベントの名前場所URL開始時刻終了時刻

スクリーンショット 2018-08-22 18.47.34.png (予定内容は例です)

  • カレンダー登録状況

    • 未選択 (何も書き込んでいない際に指定)
    • 登録する (予定についての情報を書き終えて, カレンダーに登録したいと思った際に指定)
    • 登録完了 (書き込まれるとこのように変化) の3種類にした.
  • 開始時刻, 終了時刻を指定していない場合は終日の予定として登録される.

  • 右にある登録するボタンは手動用のボタン. デバックの時に便利というだけで作成しなくても良い.

    • 図形を作成して, Assign script...で, function名(addEventsToCalendar)を指定すれば作成できる

スクリーンショット 2018-08-22 19.11.06.png スクリーンショット 2018-08-22 19.15.20.png

実行

  • Time-drivenで指定していれば, 指定時間間隔で実行されてgoogle calendarに追加される.
  • ボタンを作成していた場合は, ボタンをクリックすれば追加される.
  • カレンダー登録状況登録するにしている行のみ, 実行時にカレンダーに追加される(codeでそう設定しているだけ)

追記: slackにも書き込む (2018/09/15)

下記のようにgasを書き換えればslackにも自動投稿できるようになります