icalendarモジュールを使う

PythonでiCalendar形式を扱いたくて、PyPIにあったicalendarモジュールを使ってみたメモ。
icalendar 3.10 : Python Package Index
Python2.5, 2.7で確認。
日本語はunicodeで渡せばutf-8エンコードしてくれる。
内部コードを見ると拡張性のある構造になっているので、まあ便利に使えると思う。

test_ical.py

# coding: utf-8
from icalendar import Calendar, Event
from datetime import datetime

def main():
    ical = Calendar()
    event = Event()
    event.add('summary', u'テスト')
    event.add('location', u'場所')
    event.add('dtstart', datetime(2011, 4, 1)) # 日付はdatetimeを使える
    event.add('dtend', datetime(2011, 4, 3))
    ical.add_component(event)
    ical.add('version', '2.0')
    ical.add('prodid', '-//test//hoge//EN')
    print ical

if __name__ == '__main__':
    main()

実行結果

$ python test_ical.py
BEGIN:VCALENDAR
PRODID:-//test//hoge//EN
VERSION:2.0
BEGIN:VEVENT
DTEND;VALUE=DATE:20110403T000000
DTSTART;VALUE=DATE:20110401T000000
LOCATION:場所
SUMMARY:テスト
END:VEVENT
END:VCALENDAR