Top.Mail.Ru
? ?

Jun. 21st, 2006

kot

Скрипт для экспорта в гугль

Вот программа для экспорта календаря из Outlook в Google Calendar:

повторяющиеся события пока не обрабатываются.

#!/usr/bin/python
# -*- encoding: cp1251 -*-

import win32com.client
import datetime,time

ns=win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
appointments = ns.GetDefaultFolder(9).Items

appointments.Sort("[Start]")
#appointments.IncludeRecurrences = "True"

ical_start="""BEGIN:VCALENDAR
PRODID:outlook_conv.py
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:Konstantin Dudkov
BEGIN:VTIMEZONE
TZID:Europe/Moscow
X-LIC-LOCATION:Europe/Moscow
BEGIN:DAYLIGHT
TZOFFSETFROM:+0300
TZOFFSETTO:+0400
TZNAME:MSD
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0400
TZOFFSETTO:+0300
TZNAME:MSK
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
"""

classes={0:"DEFAULT",1:"PRIVATE",2:"PRIVATE",3:"PRIVATE"}

def ansi_date(a,i=0):
	if i==0:
		return "%.4i%.2i%.2iT%.2i%.2i%.2i" % (a.year,a.month,a.day,a.hour,a.minute,a.second)
	else:
		return "%.4i%.2i%.2i" % (a.year,a.month,a.day)

print "%i appointments found\n" % len(appointments)


f=open('outlook.ics','w')
f.write(ical_start)

for item in appointments:
	if item.IsRecurring: continue
	f.write("BEGIN:VEVENT\n")
	f.write("UID:%s\n" % item.EntryID)
	if item.AllDayEvent: i=1
	else: i=0
	f.write("DTSTART;TZID=Europe/Moscow:%s\n" % ansi_date(item.Start,i))
	f.write("DTEND;TZID=Europe/Moscow:%s\n" % ansi_date(item.End,i))
	f.write("SUMMARY:%s\n" % item.Subject.encode('utf8'))
	f.write("LOCATION:%s\n" % item.Location.encode('utf8'))
	f.write("CLASS:%s\n" % classes[item.Sensitivity])
	f.write("END:VEVENT\n")
	pass
f.write('END:VCALENDAR')
f.close
Tags: ,

Apr. 24th, 2006

kot

Google Calendar

Написал программу на питоне для импорта календаря из Outlook в Google. Пока не обрабатываются повторяющиеся события и явно будут проблемы с летним/зимним временем, но это уже что-то. Скорей бы гугль еще прикрутил SyncML и адресную книгу. Вот тогда аутлук кончится как класс.
Tags: ,

Apr. 20th, 2006

kot

XMLTV

Написал на питоне библиотеку, умеющую брать телевизионную программу с описаниями фильмов с rambler.ru и сохранять в формате xmltv. Проверено с tvguide, tvtime и прочими смотрелками.
Tags:
kot

August 2008

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      

Syndicate

RSS Atom
Powered by LiveJournal.com
Image