Googleカレンダーに登録しているイベント数の集計をとりたくなり、APIで取れそうだったためやってみる。
やること
Google Cloud
プロジェクトのGoogle Calendar APIを有効化する。
OAuthの初期設定をする。サービス名やメールアドレスを入力する。
認証情報からAPIキーを作成する。
公開されているカレンダーの情報を取得するのはAPIキーだけあればできる。
Pythonでプログラミング
リクエストを送るとイベント数が返ってくる。次のページがある場合は次のページ分も繰り返し取得する。
import requests
def fetch_all_events(url):
events = []
page_token = None
while True:
params = {'pageToken': page_token} if page_token else {}
response = requests.get(url, params=params)
data = response.json()
events.extend(data.get('items', []))
page_token = data.get('nextPageToken')
if not page_token:
break
return events
if __name__ == '__main__':
api_key = 'YOUR_API_KEY'
calendar_id = 'en.usa#holiday@group.v.calendar.google.com' # TODO: 取得したいカレンダーIDにする
url = f'https://www.googleapis.com/calendar/v3/calendars/{calendar_id}/events?key={api_key}'
events = fetch_all_events(url)
print(f'総イベント数: {len(events)}')
グラフにもできるようにしたのでこちらを参考にして欲しい: memo2/python/google/calendar_api.py at main · st34-satoshi/memo2

参考サイト
終わりに
APIキーを取得できればあとは簡単にカレンダーに登録されているイベントを取得することができた!プログラミングはほぼAIにやってもらって簡単だった!
コメント