以下の記事の続きです。
Googleカレンダーに対して外部プログラムからスケジュールを追加する準備ができたので、実際にpythonコードを動かしてスケジュールを追加していきたいと思います。
ライブラリのインストール
まずはコードで使用するGoogleAPI関連のライブラリをpipでインストールします。
ターミナルを開いて以下を実行します。
$pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
コードの作成
ライブラリを使用できるようにしたらプログラミングしていきます。
import datetime, re
import googleapiclient.discovery
import google.auth
# 編集スコープの設定(今回は読み書き両方OKの設定)
SCOPES = ['https://www.googleapis.com/auth/calendar']
# カレンダーIDの設定(基本的には自身のgmailのアドレス)
calendar_id = 'xxxx@gmail.com'
# 認証ファイルを使用して認証用オブジェクトを作成
gapi_creds = google.auth.load_credentials_from_file('credentials.json', SCOPES)[0]
# 認証用オブジェクトを使用してAPIを呼び出すためのオブジェクト作成
service = googleapiclient.discovery.build('calendar', 'v3', credentials=gapi_creds)
# 追加するスケジュールの情報を設定
event= {
# 予定のタイトル
'summary': 'テスト!',
# 予定の開始時刻(ISOフォーマットで指定)
'start': {
'dateTime': datetime.datetime(2021, 8, 2, 0, 00).isoformat(),
'timeZone': 'Japan'
},
# 予定の終了時刻(ISOフォーマットで指定)
'end': {
'dateTime': datetime.datetime(2021, 8, 2, 17, 59).isoformat(),
'timeZone': 'Japan'
},
}
# 予定を追加する
event = service.events().insert(calendarId = calendar_id, body = event).execute()
なお、 認証用オブジェクトを作成するところで指定しているjsonファイルはサービスアカウントのキーの生成でダウンロードされたjsonファイルです。
“credentials.json”にリネームして同じフォルダに入れておいてください。
プログラムを実行
プログラムが完成したら早速実行してみましょう。
このプログラムを実行した結果は以下の通りです。
無事にスケジュールが追加されました。
今回はスクリプトをベタ書きにしましたが、タイトルと開始終了時間を引数として受け取るように関数化してやると使い勝手が向上しそうです。
スケジュールに設定できるパラメーター
上記のサンプルプログラムでは開始時間、終了時間、タイトルだけをスケジュールに設定しましたが、その他にも設定することが可能です。
- location・・・開催場所
- description・・・イベントの説明
- colorId・・・色の設定
︙
等々、自由に色々と設定することができます。
詳細は以下の公式リファレンスを参照してください。英語ですが(´・ω・`)
Events: insert | Google Calendar | Google for Developers
コメント
[…] nikawa-niwaka.net【サンプルコードあり】PythonでGoogleカレンダーに予定を追加するhttps://nikawa-niwaka.net/entry/1546以下の記事の続きです。Googleカレンダーに対して外部プログラムからスケジュー […]