PythonでGoogleカレンダーのデータを読み書きするサンプルスクリプト
■ 検証環境
・Ubuntu 12.04.4 LTS
■ ライブラリのインストール
Google Data APIs - Client Libraries から、gdata-python-client のパッケージをダウンロードし、root権限でインストール作業を行う
# wget http://code.google.com/p/gdata-python-client/downloads/detail?name=gdata-2.0.18.tar.gz # tar xvf gdata-2.0.18.tar.gz # cd gdata-2.0.18 # python setup.py install
予定表イベントの読み出し
■ gdata.calendar.client を用いる方法 (読み取り)
Googleのgdataパッケージに添付されているサンプルプログラムを流用する方法
#!/usr/bin/env python # -*- coding: utf-8 -*- import gdata.calendar.client def print_event(): login_email = 'username@gmail.com' login_password = 'password' calendar_service = gdata.calendar.client.CalendarClient() calendar_service.ssl = True calendar_service.ClientLogin(login_email, login_password, "test python script"); query = gdata.calendar.client.CalendarEventQuery(start_min='2013-12-01', start_max='2013-12-31', max_results='5', orderby='starttime', sortorder='ascending') feed = calendar_service.GetCalendarEventFeed(q=query) for i,ev in enumerate(feed.entry): print "%s, %s (updated %s)" % (i, ev.title.text, ev.updated.text) for e in ev.when: print " from %s to %s" % (e.start, e.end) print "Read from Google Calendar" print_event()
■ gdata.calendar.service を使う方法 (読み取り)
Google検索で他の人のサンプルプログラムを検索したところ、このクラスを使っても出来るようだ
#!/usr/bin/env python # -*- coding: utf-8 -*- import gdata.calendar.service def print_event(): login_email = 'username@gmail.com' login_password = 'password' calendar_service = gdata.calendar.service.CalendarService() calendar_service.ssl = True calendar_service.ClientLogin(login_email, login_password); query = gdata.calendar.service.CalendarEventQuery() query.start_min = '2013-12-01T00:00:00' query.start_max = '2013-12-30T23:59:59' query.orderby='starttime' query.sortorder='ascending' #繰り返しイベントを別のイベントとして取得 query.singleevents = 'true' query.max_results = 5 feed = calendar_service.CalendarQuery(query) for i,ev in enumerate(feed.entry): print "%s, %s (updated %s)" % (i, ev.title.text, ev.updated.text) for e in ev.when: print ' from %s to %s' % (e.start_time, e.end_time) print "Read from Google Calendar" print_event()
予定表イベントの書き込み
#!/usr/bin/env python # -*- coding: utf-8 -*- import gdata.calendar.client def insert_event(): login_email = 'username@gmail.com' login_password = 'password' calendar_service = gdata.calendar.client.CalendarClient() calendar_service.ssl = True calendar_service.ClientLogin(login_user, login_password, "test python script"); event = gdata.calendar.data.CalendarEventEntry() event.title = atom.data.Title(text="テスト イベント") event.content = atom.data.Content(text="内容") start_time = '2013-12-15' event.when.append(gdata.data.When(start=start_time, end=start_time)) calendar_service.InsertEvent(event) print "Insert Event into Google Calendar" insert_event()