Outlook Termine anzeigen.

Hallo Leute,

an die „Access-Variante“ hatte ich auch schon gedacht, befürchte aber dass man schnell an die Grenzen des Machbaren stößt…
Ob Access dabei direkt auf die outlook.pst zugreift? Das wäre vielleicht ein Vorteil. Ein VB-App würde wahrscheinlich „nur“ auf Outlook zurückgreifen. Oder liege ich da falsch?
Wie auch immer, das Thema scheint noch andere Interessenten zu haben…:wink:

Joachim

access greift über eine schnittstelle (frag mich nicht welche) lesend und schreibend direkt auf die pst zu. der exchange/oulook-import-assi stellt dir dabei die verbindung her.

Hallo alle zusammen,

könnte man nicht über die COM-Schnittstelle Outlook auffordern einen Export zu machen?

Ich habe leider kein Outlook sonst könnte ich das mal probieren.

Ich selber nutze die Ferengie-Master Terminverwaltung mit Sunbird im ICalender Format. Klappt super.

Bis dann

Martin

PS: Schönes Thema für das IPS-Treffen in Köln.

Hallo Martin,

wie schon weiter ober erwähnt, wird es sicher möglich sein, das über eine kleine VB.net-App und die VB.net<->Soap-Schnittstelle die Daten ins IPS zu bekommen. Leider habe bei der Umsetzung so meine Probleme…:frowning:
Vielleicht ist ja an anderer Stelle jemand dort besser bewandert?:wink:

Joachim

Hallo Chris ,

in Outlook gibt es nicht die Möglichkeit Makros aufzunehmen.

Gruß Uwe

Hallo Joachim,

ich hatte mehr an eine PHP Lösung gedacht.

Kleines Beispiel -> Termine aus Outlook auslesen per PHP:

Die Verbindung wird über die COM-Klasse hergestellt.


$outlook = new COM("outlook.application") or die("Konnte Outlook nicht instantiieren");
print "Outlook Version {$outlook->Version}, Product-Code {$outlook->ProductCode}";
$myNameSpace = $outlook->GetNamespace("MAPI");
$myNameSpace->Logon('Outlook'); // Standardanmeldung für die normale .pst-File
$myFolder = $myNameSpace->GetDefaultFolder(9)->Folders["my"]; // zweiter Kalender :)
$colItems = $myFolder->Items;
foreach($colItems as $item) {
  $data['Von']         =$item->Start;
  $data['Bis']         =$item->End;
  $data['Ort']         =$item->Location;
  $data['Betreffzeile']=$item->Subject;
  $data['Privat']      =$item->Sensitivity;
  $data['body']        =$item->Body;
  $data['LastChange']  =$item->LastModificationTime;
  var_dump($data);  // oder irgendwas anderes schlaues
  }

Ich kann das aber nicht ausprobieren. Hab ja kein Outlook.

Was mir in dem Beispiel fehlt ist das Lösen der Instancen.
Schau dir mal bitte mein Beispiel lesen/schreiben nach Excel an.

Bis dann

Martin

Hi Martin,

das Skript hatte ich auch schon gefunden, aber auf dem IPS Rechner läuft nicht mein Outlook.

Gruß Uwe

Hallo Martin,

das ist genau auch bei mir die Herausforderung…
Outlook läuft auch bei mir auf einem anderen Rechner.

Joachim

Das habe ich leider eben auch gesehen. Dachte MS hätte das einheitlich in allen Office Produkten.

Outlook to iCal Export Utility

Hier gibt es auch ein Makro, vielleicht könnte man das umbauen!?
Dann würde es auch nichts ausmachen wenn Outlook auf einem anderen Rechner läuft. Im oben genannten Link werden die iCal Dateien via FTP veröffentlicht.

Viele Grüße
Chris

Hallo,

kann man PHP auf einem Rechner laufen lassen wo Outlook drauf ist, aber kein IPS, und dann da die Termin.TXT generieren. ?

Gruß Uwe

Man kann auch die PST auf ein Netzlaufwerk legen. Wird zwar von MS nicht supportet, aber es geht.
D.h. es könnten theoretisch zwei Outlook Installation mit ein und derselben PST arbeiten. Gleichzeitige Zugriffe würde ich vermeiden. D.h. IPS sollte die Termine dann nur Nachts aus der PST holen wenn das andere Outlook sicher geschlossen ist.

Viele Grüße
Chris

Dann muß IPS aber direkt aus der .PST lesen können. Geht das?

Hallo alle zusammen,

auch wenn ich nerve, ich würde mir doch noch mal das COM-Interface anschauen.

In der Beschreibung zu COM steht:

COM::COM ( string $module_name [, mixed $server_name [, int $codepage [, string $typelib ]]] )

COM-Klassenkonstruktor. Die Parameter haben die folgende Bedeutung:

module_name

Kann eine ProgID, Klassen-ID oder der Moniker der zu ladenden Komponente sein. Eine ProgID ist typischerweise der Applikations- oder DLL-Name, gefolgt von einem Punkt, gefolgt vom Objektnamen, z.B. Word.Application Eine Klassen-ID ist die UUID, die eineindeutig eine bestimmte Klasse identifiziert. Ein Moniker ist eine spezielle Form der Benennung, konzeptähnlich dem URL-Schema, das eine Ressource identifiziert und angibt, wie sie geladen werden soll. Beispielsweise könnten Sie Word laden und ein Objekt erzeugen, das ein Worddokument repräsentiert, indem Sie den vollständigen Pfad zum Worddokument als Modulnamen angeben, oder Sie können LDAP: als einen Moniker verwenden, um das ADSI-Interface zu LDAP zu nutzen.

server_name

Name des DCOM-Servers, auf dem die Komponente geladen und ausgeführt werden soll. Ist NULL angegeben, wird das Objekt auf dem Standardwert dieser Applikation ausgeführt. Der Standardwert ist typischerweise die Ausführung auf der lokalen Maschine, obwohl der Administrator die Applikation so konfiguriert haben kann, dass sie auf einer anderen Maschine startet. Wenn Sie einen Nicht-NULL-Wert für den Server angeben, wird PHP das Laden des Objekts zurückweisen, wenn nicht auch die Konfigurationsoption auf TRUE gesetzt ist.

Mir ist nicht ganz klar was mit dem Servernamen gemeint ist. Eventuell kann man ja doch Outlook auf einem anderen PC damit steuern.

Ich würde da auf jeden Fall mal mit spielen.

Hallo zusammen,

vieleicht hilft dies ja jemandem.

Ich habe auf meinem PC „Google Calendar Sync“ am laufen Getting started with Google Calendar Sync - Google Calendar Help , damit Sync’e ich den Outlook Kalender mit dem „Google Kalender“.

Den „Google Kalender“ kann ich mittels Script von Paresy http://www.ip-symcon.de/forum/f53/google-kalender-termine-webfront-anzeigen-8822/ im Webfront anzeigen.

Und auf dem iPhone habe ich „Saizuke“ am laufen, mit dem ich ebenfalls Termine eingeben und „iPhone > GoogleCalendar > IPS“ sync’en kann. Gibt es vielleicht auch für andere Handy’s.

Vielleicht hilft das ja weiter.

Gruß Michael

Hallo Michael ,

dann werde meine Termin doch ins Internet gesendet oder? Das will ich aber nicht.

Gruß Uwe

Hallo UH368,

also, nicht öffentlich zugänglich aber „Internet“ ja!

Geht ja dann auch nicht anders wenn man auch das Handy Sync’en und Termine dort eingeben will wie ich das z.zT mache.

Gruß Michael

Habe ich mal probiert, komme da aber nicht weiter.

Ich habe mir ein VB Marko, zusammen gebaut. Es muß in Outlook als Makro eingegeben werde.


Sub Termine_expotieren()

Dim objApp As Application
Dim objNS As NameSpace
Dim objCalendar As MAPIFolder
Dim objItem As AppointmentItem
Dim strSubject As String
Dim ObjRecipient As Recipient
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objCalendar = objNS.GetDefaultFolder(olFolderCalendar)
Open "C:\Temp\Termine.txt" For Output As #1                         'Export Datei öffnen
For Each objItem In objCalendar.Items
    With objItem

        Betreff = .Subject
        Datum_Start = Left(.Start, 10)
        Datum_Ende = Left(.End, 10)
        Zeit_Start = Mid(.Start, 12)
        Zeit_Ende = Mid(.End, 12)
        Dauer = IIf(.Duration = 1440, "Ganztägig", .Duration & " Minuten")
        Serie = IIf(.IsRecurring = True, "Serie", "")
        
        If Serie = "Serie" Then                                 ' Überwachen ob Serie
            Datum_Start = Left(.Start, 6) + Mid(Now, 7, 4)
            Datum_Ende = ""
            If DateValue(Datum_Start) < Now Then
                 Datum_Start = Left(.Start, 6) + Mid(Now + 360, 7, 4)
            End If
        End If
        If Dauer = "Ganztägig" Then                             ' Überwachen ob Ganztäglich
            Datum_Ende = ""
        End If
        
        If (DateValue(Datum_Start) >= Now And DateValue(Datum_Start) < Now + 360) Then
           Print #1, "" & Betreff & "," & Datum_Start & "," & Zeit_Start & "," & Datum_Ende & "," & Zeit_Ende & "," & Dauer & "," & Serie & vbCrLf
        End If
   
    End With
Next
Close #1
' MsgBox "Termine exportiert"
End Sub


Ist natürlich erst der Anfang, mal sehen was ich daraus noch machen kann.

Gruß Uwe

Kannst du mal posten wie du das mit Exchange gelöst hast? Würde gerne wissen ob ich das für mich anpassen könnte?!

Hallo hofimax,

Die Suchfunktion hätte Dir weitergeholfen.

Habe ich auch nutzen müssen :smiley:

Siehst du, so gut versteckt war das, ich habs samt Suchfunktion nicht gefunden :smiley: dank dir :wink: