In meinem letzten privaten Projekt habe ich als PoC einen Prototypen gebaut welcher den Windows Live (oder Outlook.com) Kalender mit Outlook 2013 synchronisiert. Dabei bin ich auf der Outlook 2013 Seite auf einige “Hindernisse” gestossen. Diese Hindernisse und natürlich wie sie zu überwinden sind, stelle ich in der “Outlook & C# Serie” vor.
Mit diesem Post wird erst einmal der Grundstein gelegt. Jeder Anfang ist schwer, deshalb ganz allgemein: Wie hole ich Daten aus meinem Outlook?
Es ist egal ob ein Add-in geplant ist oder ob von einer externen Applikation bsp. WPF auf Outlook Elemente zugegriffen werden soll, der Code ist derselbe. Dafür wird folgendes benötigt.
- VSTO (Visual Studio Tools for Office) Installieren:
http://www.microsoft.com/en-us/download/details.aspx?id=23656 - Referenz hinzufügen
Falls nun ein Add-in geschrieben werden soll, einfach ein Projekt des entsprechenden Typs erstellen. In diesem Fall soll jedoch eine externe Applikation entwickelt werden. Dafür wird ein neues Projekt erstellt und die folgende DLL referenziert:
C:Program Files (x86)Microsoft Visual Studio 12.0Visual Studio Tools for OfficePIAOffice15Microsoft.Office.Interop.Outlook.dll - Zugriff auf Outlook
Um Zugriff auf das Outlook Objekt modell zu erhalten wird eine neue Instanz der folgenden Klasse erstellt “Microsoft.Office.Interop.Outlook.Application”.
Outlook ist in Folder organisiert. Hier ein Beispiel wie der Kalender Folder geholt werden kann:
var appointmentsFolder = (Folder)outlook.Session.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
Eine Übersicht über das Objektmodell gibt es hier: http://msdn.microsoft.com/en-us/library/ms268893.aspx
Windows Live Kalender wird doch automatisch synchronisiert, oder verstehe ich da was falsch?
Richtig. Ich wollte jedoch nur meinen Geschäftskalender pflegen und die privaten Termine automatisch in den Windows Life bzw. Outlook.com Kalender übernehmen.