はじめに
私の所属する研究室のカレンダーには,当然自分以外の予定が大量に混在しています.
そのため,自分の参加する予定のみを抽出して,毎日通知してくれるシステムを作りたいと思ったことがきっかけです.
また,研究室のカレンダー以外にも,自分だけの予定を管理しているカレンダーもありました.
別々のカレンダーを統合して,自身に関係のある予定のみを抽出して,毎日決まった時刻に通知してくれるシステムを作成してみました.
全体概要図
使用技術
- AWS(Amazon Web Services)
- Python
- Google Calendar
- LINE Notify
- Koyeb
※AWSでは,Event Bridge,Lambdaの二つのサービスを利用
アルゴリズム
- 6:00にAWS Event BridgeからLambdaにトリガーを発生させる
- Lambdaは,KoyebにデプロイしてあるAPIを実行する
- APIは,icalリンクから各カレンダーの直近2日分の予定を取得して返す
- Lambdaは,API実行後,LINE Notifyを用いて取得した予定を整形し,通知する
- 1~4を毎日繰り返す
動作例
ちゃんと,6:00に直近2日分の予定が送られていることが確認できました!
この日は,2つだけですが,研究室のカレンダーと個人のカレンダーで別々に管理している予定が統合され,研究室カレンダーから自分が参加する予定だけを抽出できています.