Tutorial: Outlook mit dem Google-Kalender synchronisieren – API-Programmierung mit Visual Basic Teil III

In meinem letzten Beitrag (dem zweiten Teil dieses Tutorials) hatte ich bereits den Zugriff via API auf den Goolgle Calender erklärt – um ein eigenes Sync-Tool zwischen Outlook und Google Calendar zu erstellen fehlt nun noch die Info, wie man via Visual Basic auf Outlook zugreifen kann.

Im Folgenden verwende ich Visual Basic 2010 Express, jedoch ist das mit älteren oder neueren Versionen (oder C#) nahezu identisch.

Schritt 1:

Das Projekt vom letzten Tutorial laden (oder ein neues VB-Projekt anlegen), dann unter Projekt: Verweise hinzufügen … wählen und unter „COM“ die „Microsoft Office Objekt Library“ und „Microsoft Outlook Objekt Library“ hinzufügen (Version abhängig vom Installierten Outlook/Office; Details siehe Screenshot).

screenshot

Schritt 2:

Ein einfaches Formular basteln – im meinem Beispiel ein Button sowie ein Textfeld (Multiline=True, Scrollbars=Vertical) zur Test-Ausgabe:

screenshot3

Schritt 3:

So sieht der Code aus – zuerst werden alle Termine des aktuellen Outlook-Kalenders gezählt, dann im Zeitraum von 1.4.2014 bis 5.4.2014 und diese dann ausgegeben:

Dim myOutlook As New Microsoft.Office.Interop.Outlook.Application
  Dim objKalender As Microsoft.Office.Interop.Outlook.MAPIFolder
  Dim objTermine As Microsoft.Office.Interop.Outlook.Items
  Dim objTerminGruppe As Microsoft.Office.Interop.Outlook.Items
  Dim objTermin As Microsoft.Office.Interop.Outlook.AppointmentItem

    'Outlook öffnen
    objKalender = myOutlook.Application.GetNamespace("MAPI").
     GetDefaultFolder(Microsoft.Office.Interop.Outlook.
     OlDefaultFolders.olFolderCalendar)
    objTermine = objKalender.Items

    ' Beispiel 1: Anzahl der Termine ausgeben
    Dim AnzahlTermine As Integer
    AnzahlTermine = objKalender.Items.Count
    MsgBox(AnzahlTermine.ToString & " Termine gefunden.")

    ' Beispiel 2: Zeitraum auswählen und hier Termine zählen
    Dim myStartTermin As String = "01.04.2014 00:00"
    Dim myEndTermin As String = "05.04.2014 00:00"


    objTerminGruppe = _
            objTermine.Restrict("[Start] >= '" & _
                                myStartTermin & "'" & _
                                " AND [Start] <= '" & _
                                myEndTermin & "'" & _
                                " AND [IsRecurring]=False")
    ' (auch Recurring-Termine ausschließen, die sind 
    ' gesondert zu behandeln)

     AnzahlTermine = objTerminGruppe.Count
     MsgBox("Termine in Zeitraum von " & _
             myStartTermin & " bis " & _
             myEndTermin & ": " & _
             AnzahlTermine)

     'Beispiel 3: Termine in zeitraum ausgebe
     objTerminGruppe.Sort("Start") ' Sortieren

     For Each objTermin In objTerminGruppe
            ' einige Beispiele von wichtigen Eigenschaften:
            TextBox1.Text &= "Subject: " & _
                objTermin.Subject.ToString & vbCrLf
            'TextBox1.Text &= "EntryID: " & _
            '    objTermin.EntryID.ToString & vbCrLf
            TextBox1.Text &= "Start: " & _
                objTermin.Start.ToString & vbCrLf
            TextBox1.Text &= "End: " & _
                objTermin.End.ToString & vbCrLf
            TextBox1.Text &= "CreationTime: " & _
                objTermin.CreationTime.ToString & vbCrLf
            TextBox1.Text &= "IsRecurring: " & _
                objTermin.IsRecurring.ToString & vbCrLf
            TextBox1.Text &= "LastModificationTime: " & _
                objTermin.LastModificationTime.ToString & vbCrLf

            'Einige Eigenschaften sind u. U. null - deshalb
            'vorher prüfen um Exception zu vermeiden:
            If Not IsNothing(objTermin.Body) Then
                TextBox1.Text &= "Body: " & _
                    objTermin.Body.ToString & vbCrLf
            End If

            TextBox1.Text &= "---------------------" & vbCrLf

        Next

Das war der letzte Teil meines dreiteiligen Tutorials – damit müssten nun alle Grundlagen erklärt sein, die es ermöglichen, ein eigenes Synchronisations-Tool zwischen Outlook und Google Calendar mit Visual Basic zu basteln.

P.S.

Probleme? Fragen? Anregungen? Ich helfe jederzeit und gerne  – einfach einen Kommentar oder Mail schreiben, die Antwort kommt schnellstmöglich. Unternehmen, die Unterstützung, Beratung oder Schulung bei der API- oder Webprogrammierung, der Social-Media-Entwicklung oder dem Social-Media-Management benötigen finden zudem entsprechende Angebote meiner Firma auf der Website www.Frank-IT-Beratung.de

Dieser Beitrag wurde unter API, C#, Google API, Programmierung, Visual Basic veröffentlicht. Setze ein Lesezeichen auf den Permalink.

4 Kommentare zu Tutorial: Outlook mit dem Google-Kalender synchronisieren – API-Programmierung mit Visual Basic Teil III

  1. Niklas Hofmann sagt:

    Hallo,
    du könntest mal den EVO Collaborator probieren. Mit diesem tool kannst du bist zu 100 Profile erstellen und separate Kalender führen. Das sollte euch zufrieden stellen.
    Checkt doch mal folgenden Link:
    http://synchronisiere.blogspot.de/

  2. Simon A. Frank sagt:

    Hallo Herr Küster,

    vielen Dank für Ihre Mail und Ihr Feedback 🙂

    Ich habe leider keinen Exchange-Server, auf dem ich das testen kann, aber es müsste ungefähr so lauten:

    GetDefaultFolder(Outlook.OlDefaultFolders.olPublicFoldersAllPublicFolders)

    Ich hoffe, das hilft weiter?

    Schöne Grüße,

    Simon A. Frank

  3. R.Küster sagt:

    Sehr geehrter Herr Frank.
    Ich habe diese Anleitung gefunden und die funktioniert „Super“. Ich habe nur ein Problem.
    Wie kann ich den einen „Öffentlichen Kalender“ ansprechen bei einem Exchange Server.

    Gruß R.Küster

Kommentar verfassen