スプレッドシートやエクセルで管理しているスケジュールをGoogleカレンダーに一気に転記してしまうガジェットです。ものの数秒あれば転記完了です。一気に入力されるのでムッチャ気持ち良いです。
例えばこんな状況で
今回のガジェットはこういう声に対応
「ニュースあぷりなどはいろんな情報が溢れすぎていてついつい余計なものまで見てしまい、元々知りたかった情報がなんだっけってなります。自分の好きな情報だけまとめれるようになるといいなと」
このガジェットでできることはこちら
- 今回のプログラムはエクセルで管理しているスケジューラーをグーグルカレンダーに転記します。
- ものの数秒で転記終了します。
注意点はこちら
- 今回の設定ではエクセル管理のシートで時間までは管理していなかったので時間は全て全て9:00で設定しました。
- エクセルで時間まで管理している場合は少しコードを変えれば対応可能です。
評価(自己)
役立ち度 ★★★★★(最高)
効率化 ★★★★(良し)
ミス防止 ★★★★(良し)
楽しさ ★★★★★(最高)
操作 ★★★★(良し)
実行環境
使用環境 Google Calender api
使用言語 python
使用ライブラリ datetime、googleapiclient.discovery、google.auth、json、pandas
コード
import datetime
import googleapiclient.discovery
import google.auth
import json
import pandas as pd
def main():
SCOPES = ['https://www.googleapis.com/auth/calendar']
creds = google.auth.load_credentials_from_file('secret.json', SCOPES)[0]
service = googleapiclient.discovery.build('calendar', 'v3', credentials=creds)
with open('info.json', 'r') as f:
info = json.load(f)
calender_id = info['calender_id']
df = pd.read_excel('スケジュール.xlsx')
df = df.dropna(axis=0).reset_index(drop=True)
for i in range(len(df)):
date = df['日'][i]
detail = df['予定'][i]
begin = datetime.datetime(date.year, date.month, date.day, 9)
end = begin + datetime.timedelta(minutes=5)
body = {
'summary': f'{detail}',
'start': {
'dateTime': begin.isoformat(),
'timeZone': 'Japan'
},
'end': {
'dateTime': end.isoformat(),
'timeZone': 'Japan'
}
}
event = service.events().insert(calendarId=calender_id, body=body).execute()
if __name__ == '__main__':
main()