🗓️

【AWS】EventBridgeを使って,組織用・個人用のGoogleカレンダーを統合した予定通知を行いたい

2024/09/30に公開

はじめに

私の所属する研究室のカレンダーには,当然自分以外の予定が大量に混在しています.
そのため,自分の参加する予定のみを抽出して,毎日通知してくれるシステムを作りたいと思ったことがきっかけです.
また,研究室のカレンダー以外にも,自分だけの予定を管理しているカレンダーもありました.
別々のカレンダーを統合して,自身に関係のある予定のみを抽出して,毎日決まった時刻に通知してくれるシステムを作成してみました.

https://github.com/haradakaito/schedule_management

全体概要図

全体概要図.png

使用技術

  • AWS(Amazon Web Services)
  • Python
  • Google Calendar
  • LINE Notify
  • Koyeb

※AWSでは,Event Bridge,Lambdaの二つのサービスを利用

アルゴリズム

  1. 6:00にAWS Event BridgeからLambdaにトリガーを発生させる
  2. Lambdaは,KoyebにデプロイしてあるAPIを実行する
  3. APIは,icalリンクから各カレンダーの直近2日分の予定を取得して返す
  4. Lambdaは,API実行後,LINE Notifyを用いて取得した予定を整形し,通知する
  5. 1~4を毎日繰り返す

動作例

動作例.png

ちゃんと,6:00に直近2日分の予定が送られていることが確認できました!
この日は,2つだけですが,研究室のカレンダーと個人のカレンダーで別々に管理している予定が統合され,研究室カレンダーから自分が参加する予定だけを抽出できています.

Discussion