ich möchte mit einem Python-Programm Termine aus einem Outlook-Kalender auslesen um damit Statistiken zu erstellen. Zugriff auf den Kalender und das Auslesen klappt schon, nur mit dem Filtern habe ich noch ein Problem. Mehrtägige Termine, die vor dem Filterzeitraum beginnen oder nach dem Filterzeitraum enden, werden nicht beachtet.
Als Beispiel habe ich folgende Termine:
20.02.2009 12:00 - 27.02.2009 12:00 Termin1
27.02.2009 12:00 - 28.02.2009 12:00 Termin2
28.02.2009 - 29.02.2009 (Ganztägig) Termin3
Wenn ich jetzt vom 21.02.2009 00:00 bis 28.02.2009 23:59 Filter, wird nur Termin2 ausgegeben.
Ich möchte aber auch die Termine Termin1 und Termin3 mit gelistet bekommen, da sie ja zumindest Teilweise in diesen Zeitraum fallen.
Kann mir bei diesem Problem jemand weiterhelfen?
Und hier noch mein Testcode:
Code: Alles auswählen
import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application")
mbx = outlook.Session.Folders.item("Outlook")
fldrs = mbx.Folders
fldr = fldrs.GetFirst()
while fldr.Name <> "Kalender":
fldr = fldrs.GetNext()
ns = outlook.GetNamespace("MAPI")
appts = ns.GetFolderFromID(fldr.EntryID).Items
appts.Sort("[Start]")
appts.IncludeRecurrences = True
rule = '[Start] >= "21.02.2009 00:00" AND [End] <= "28.02.2009 23:59"'
appts = appts.Restrict(rule)
appt = appts.GetFirst()
while appt <> None:
s = appt.Subject
l = appt.Location
print appt.Start, appt.End, s.encode("cp850"),"(",l.encode("cp850"),")"
appt = appts.GetNext()