PythonでGoogleカレンダーを操作する
2008/10/23 11:22 | 0 Comments
RubyでGoogleカレンダーを操作するというエントリがあったので、Python版も書いてみた。準備としては
・ここからgdataのライブラリをダウンロードしてインストール
・easy_installで「easy_install ElementTree」をインストール
あと、日付のパース用に「dateutil」もあった方がいい。これもeasy_installで取れる。
コードはこんなの。
# -*- coding: utf-8 -*-
from xml.etree import ElementTree
import gdata.calendar.service
import gdata.service
import atom.service
import gdata.calendar
import getopt,sys,string,time,atom
#日付のパース用
from dateutil import parser
email = 'foobar'
password = 'hogehoge'
#初期化とログイン
calendar_service = gdata.calendar.service.CalendarService()
calendar_service.email = email
calendar_service.password = password
calendar_service.source = 'Google-Calendar_Python_Sample-1.0'
calendar_service.ProgrammaticLogin()
feed = calendar_service.GetCalendarEventFeed()
print 'メインのカレンダー: %s' % (feed.title.text,)
for an_event in feed.entry:
print "%s~%s:%s" %(
#日付はパースして表示
parser.parse(an_event.when[0].start_time).strftime("%Y/%m/%d %H:%M"),
parser.parse(an_event.when[0].end_time).strftime("%Y/%m/%d %H:%M"),
an_event.title.text
#winのコマンドプロント(cp932)でそのまま出すなら
#an_event.title.text.decode("utf8").encode("cp932")
)
from xml.etree import ElementTree
import gdata.calendar.service
import gdata.service
import atom.service
import gdata.calendar
import getopt,sys,string,time,atom
#日付のパース用
from dateutil import parser
email = 'foobar'
password = 'hogehoge'
#初期化とログイン
calendar_service = gdata.calendar.service.CalendarService()
calendar_service.email = email
calendar_service.password = password
calendar_service.source = 'Google-Calendar_Python_Sample-1.0'
calendar_service.ProgrammaticLogin()
feed = calendar_service.GetCalendarEventFeed()
print 'メインのカレンダー: %s' % (feed.title.text,)
for an_event in feed.entry:
print "%s~%s:%s" %(
#日付はパースして表示
parser.parse(an_event.when[0].start_time).strftime("%Y/%m/%d %H:%M"),
parser.parse(an_event.when[0].end_time).strftime("%Y/%m/%d %H:%M"),
an_event.title.text
#winのコマンドプロント(cp932)でそのまま出すなら
#an_event.title.text.decode("utf8").encode("cp932")
)
ちなみに更新だとイベントのインスタンスを操作した後に更新のメソッドを呼ぶ。
calendar_service.UpdateEvent(an_event.GetEditLink().href, an_event)
ほとんど同じ感じで作成とか削除もできる。詳しいことは公式ドキュメント読んでくださいってことで。
ちなみに今はOutlook 2007+Google Calendarを使ってる。ただ、Google Calendarって携帯からあんまり使えないんだよなあ。たまにゲートウェイのサービスがあるけどいろいろ制限あったりするし。自分で作れってことなんかしら。
Category:
Python

