Termine mit Outlook

Beachten Sie in dem Zusammenhang auch folgende Seiten

Outlook erlaubt ihnen, neben Nachrichten, Aufgaben, Kontakte und mehr auch Termine zu speichern. Besondere Ordner vom Typ "Kalender" in ihrem Postfach bzw. im Bereich der öffentlichen Ordner erlauben es ihnen, Zeiten und Tätigkeiten zu planen und aufzuzeichnen. Entsprechende Funktionen von Outlook erlauben es ihnen auch, Termine mit anderen Anwendern abzusprechen und zu planen. Auch Ressourcen (Projektor, Besprechungsraum etc.) sind Postfächer mit einem Kalender, welcher in eine Besprechung mit eingeladen werden.

Termine sind eine Leistung von Outlook, nicht des Exchange Servers. für den Exchange Server sind dies einfach weitere Objekte, die er speichern kann. Erst Outlook erzeugt daraus die entsprechenden Ansichten, Benachrichtigungen etc.

Ab und an ändern Länder die umschalttermine für Sommer- und Winterzeit
http://www.microsoft.com/windows/timezone/dst2007.mspx
http://support.microsoft.com/gp/dst_topissues/de

Sommerzeit, Winterzeit, Zeitzonen

Wenn Sie einen Termin in Outlook eintrage, dann speichert Outlook den Termin mit einer absoluten Uhrzeit. Dazu ermittelt Outlook aus ihrer angegeben Zeit und der eingestellten Zeitzone und Sommerzeiteinstellung die UTC-Zeit (Greenwich). Diese Zeit läuft immer linear weiter und springt nie. Das ist auch die systeminterne Uhrzeit ihres Betriebssystems.

Das gleiche Verfahren gilt für die Zeiten bei sonstigen Nachrichten. Alle Nachrichten im Internet werden mit einer Zeit versehen, welche auch die Zeitzone enthält. Das sieht im Header z.B. so aus

Received: from xx.xx.xx.xx by mail.netatwork.de;
  Sat, 29 Mar 2003 11:09:41 +0100
Date: Sat, 29 Mar 2003 11:09:27 +0100

Die "+0100" zeigt die Abweichung der Zeit von der Greenwich Normalzeit

Die interne Speicherung der Zeiten als uTC bewirkt nun auch, dass die angezeigten Terminzeiten sich verschieben, wenn sich die Zeitzone ändert. Wenn jemand in die USA fliegt und auf seinem Notebook die Zeitzone verändert, dann wird rein Termin, der um 16 uhr in Frankfurt abgehalten wird, in Seattle Ortszeit 9 Stunden früher (7 uhr morgens) angezeigt.

Nun kommt das Problem der Sommerzeit, bei der die Zeit um eine Stunde vorgestellt wird. Die ZeitUmstellung bewirkt eigentlich nur eine Änderung der Formel, um aus der UTC Zeit die lokale Zeit zu machen. Hierzu nutzt Windows seine interne Tabelle der umschaltzeiten und die Checkbox "Sommerzeitumschaltung" in der Systemsteuerung. Leider haben sich die Schaltzeitpunkte vor einigen Jahren verändert, so dass die Zeitumschaltung auf alten Systemen zur falschen Zeit passieren. Einige Administratoren sind nun dazu übergegangen und haben die automatisch SommerzeitUmstellung einfach abgeschaltet. Damit haben Sie aber nur eine sichtbare Lösung. Die uhrzeit in der Fußzeile wird richtig angezeigt, aber Windows beachtet bei der Umstellung nun nicht mehr die Sommerzeit. Als Folge werden nun alle Termine im Sommer um eine Stunde falsch in Outlook eingetragen.

Mit dem Exchange Server hat dies aber alles nichts zu tun, sondern das ist eine reine Outlook Funktionalität, die hier bei falscher Systemeinstellung auch falsch läuft. Sie müssen die Termine nun korrigieren, nachdem Sie die Systemeinstellungen richtig konfiguriert haben.

  • Verändern Sie zuerst ihre Zeiteinstellungen so, dass die Startzeit der Termine passen.
  • Exportieren Sie dann die Termine mit Outlook in eine Textdatei. Dabei werden die Termine nun mit der Lokalzeit gespeichert.
  • Nun müssen Sie die Windows Einstellungen "richtig" konfigurieren

    Stellen Sie ihre Zeitzone ein und AKTIVIEREN sie unten die automatische Umstellung . Erst dann errechnet Outlook anhand der Zeitzone und dem aktuellen Datum die "Greenwich-Zeit" und speichert die Termine richtig ab.
  • Zuletzt werden die Termine wieder importieret. Outlook richtig nun wieder die uTC Zeit und speichert diese ab.

Leider ist das je Postfach durchzuführen, oder jemand bastelt ein Skript, welches das macht. Zeitsynchronisation im Netzwerk ist nicht trivial und nur weil es richtig "aussieht" ist es noch lange nicht korrekt. Weitere Informationen zum Thema gibt es unter Zeitsynchronisation im LAN.

Fatal dabei ist, dass Sie mehrere Systeme hier im Blick haben müssen, je nachdem wie der Anwender arbeitet, z.B.

  • Client mit Outlook lokal
    Wer mit Outlook Termine anlegt und Mails versendet, der nutzt die Zeitzoneneinstellungen auf dem lokalen Desktop
  • Client mit Outlook auf Terminalserver
    Hier kommen die Zeitzonen des Servers zum tragen
  • Client mit Browser und OWA
    Da hier die Mail durch den CAS-Server bzw. Exchange Server erstellt wird, ist die Zeitzoneneinstellung des Exchange Servers relevant
  • Blackberry Client
    Hierbei übergibt der Client die Termine in seiner Zeitzone an den Blackberry Enterprise Server, welcher dann per CDO den Termin in dem Exchange-Postfach anlegt. CDO selbst hat ebenfalls Einfluss auf die Zeitzonen.

Es kann also schon ganz schön knifflig sein, Probleme mit Terminen auf den Grund zu gehen und falsche Zeitzoneneinstellungen auf Computern zu finden und zu korrigieren. Zumal auch Länder ab und an ihre Zeitzoneneinstellungen verändern, so dass erst ein Windows Update hier im Betriebssystem die Werte neu setzen muss.

Von der Firma "Planet Software" gibt es mittlerweile ein Programm, welches durch alle Postfächer läuft und die Termin z.B.: um eine Stunde verschieben kann.

Feiertage

Outlook liefert eine Liste von vorgegebenen Feiertagen mit, welche beim Start einmalig angelegt werden. Leider haben gerade ältere Versionen nicht die aktuellen Feiertage. Dazu gibt es von Microsoft ein Update. (Siehe Link auf Outlook Client FAQ). Leider sind diese Termine von jedem Anwender selbst zu importieren.

Sie können auch eigene Termindateien erstellen und dem Benutzer zum Import anbieten. Kommerzielle Lösungen finden Sie auf Feiertags Add-on. Ein VBScript für eigene Anpassungen liegt auf Feiertage.

Offline

Je mehr Termine in ihrem Kalender liegen, desto langsamer wird Outlook und Exchange, denn um z.B. eine Monatsansicht mit 30 und mehr Terminen zu erzeugen, muss Outlook 30 Elemente öffnen um die Start und Endzeiten zu ermitteln und die Terminbeschreibung zu lesen. Dies ist eine beträchtliche Last, die gleichbedeutend ist, mit dem öffnen von ebenso vielen Mails im Posteingang. Daher hat Outlook 98 und nachfolgende automatisch eine "OST-Datei" angelegt. OST-Dateien sind eigentlich für die Arbeit "unterwegs" gedacht. Diese Datei enthält in diesem Fall aber nur die Termine als Replikation. Damit kann Outlook diese Daten von der lokalen Platte beziehen. Die Replikation sorgt dafür, dass die Daten mit dem Server synchron sind.

Diese Datei können Sie aber auch als vollwertige Offline-Funktion nutzen und damit ihre Kalender auch auf einem Notebook mitführen. Die Replikation auf PDAs erfolgt aber über andere Wege.

Einladung und Absprachen

Termine im eigenen Postfach sind nett, aber erst eine gemeinsame Planung und Einladung zu Terminen ist ein richtiger Gewinn. Sie können als Terminverantwortlicher jeden Empfänger mit einladen. An diese wird dann automatisch eine Nachricht mit den Daten gesendet. Wenn sie den Termin verändern, verschieben oder löschen, werden die eingeladenen Personen wieder rum benachrichtigt. Diese können ihrem Termin dann zusagen, vorbehaltlich zusagen oder ablehnen. Sie sehen bei ihrem Termin dann aktuell den Status der Personen.

Sie können auch über das Internet hinweg mit Einladungen arbeiten. "Nicht" Outlook Systeme können aber mit der Nachricht nicht so viel anfangen und sehen dann nur den Textbereich, der die Daten des Termins in lesbarer Form enthält. Wenn sie auch über Organisationsgrenzen hinaus zu Terminen einladen wollen, dann sollten Sie "RTF" als Nachrichtformat wählen, damit die Einladung auch so ankommt, dass das Outlook des Empfängers den Termin richtig anzeigt. Wichtig ist hier natürlich die korrekte Einstellung der Zeitzonen auf ihrem PC, damit die Zeiten auch wirklich stimmen.

Um die Frei/Belegt Zeiten der anderen Anwender anzuzeigen, muss Outlook auf diese Informationen zugreifen  können. Details dazu finden Sie auf Frei/Belegt Zeiten. Frei/Belegt-Zeiten funktionieren NUR mit dem primären Kalender des Postfachs eines Benutzers. Nicht eingebunden werden können weitere Kalender im Postfach oder in öffentlichen Ordnern.

Interessant ist hier vielleicht auch die Seite TerminFAQ.

Geburtstage

Vielleicht haben Sie sich schon gewundert, dass in ihrem Kalender auch "Geburtstage" als Serientermin erscheinen, obwohl sie diese sicher nicht eingetragen haben. Die Funktion ist in Outlook versteckt, denn immer dann, wenn Sie bei einem Kontakt einen Geburtstag hinterlegen, addiert Outlook diesen auch als Termin in den Kalender.

Sie können sogar den Geburtstag "korrigieren", und Outlook verändert auch den dazu gehörigen Termineintrag.

Nur wenn Sie den Kontakt direkt löschen, kommt die Logik hinter dem Kontaktformular nicht mehr zum Start und sie behalten sogar

Fehler bei gemeinsamen Terminen

Wenn Sie einen Termin nicht nur in ihrem eigenen Kalender, sondern auch mit anderen Personen vereinbaren, so sendet Outlook im Hintergrund immer Aktualisierungen zu den anderen Teilnehmern. Wenn Sie also einen Termin verschieben oder löschen, dann erhalten die Teilnehmer eine Änderungsmitteilung, die diese entsprechend übernehmen können. Hierbei kann es jedoch zu Störungen kommen, die nicht so einfach zu ermitteln sind.

  • Eingriff in die Systemmeldungen
    Gerade wenn Sie mit Outlook "offline" unterwegs sind, können Sie Termine verändern und danach die von Outlook generierte Nachricht im Postausgang herausfischen.
  • Löschen oder ändern ohne Outlook
    Wenn Sie andere Wege nutzen, um Termine zu löschen oder zu ändern (z.B. Blackberry, PocketPC, Palm, Mobiltelefon) dann kann es sein, dass Sie so einen Termin verschieden oder löschen, ohne dass Outlook dies mit bekommt. Auch dann werden keine "Updates" versendet.

Es gibt noch einige weitere Fallstricke. Achten Sie daher darauf, dass Sie "Grundregeln für die Arbeit mit Terminen" (Siehe weiter unten) berücksichtigen.

Zugriffs auf andere Terminkalender

Neben der Ansicht der Frei/Belegt Zeiten eines Anwender können Sie auch anderen Personen das Recht geben, ihren Kalender "anzusehen". Dann kann der Stellvertreter über Outlook ihren Terminkalender mit öffnen, solange er den den Exchange Server mit ihrem Postfach zugreifen kann. Diese Stellvertreterfunktion ist nicht auf einen Exchange Standort beschränkt, sondern gilt organisationsweit. Allerdings muss dazu der Client sich am Exchange Server mit dem Zielpostfach anmelden können, d.h. Namensauflösung, Windows Vertrauensstellungen und das Recht zur Anmeldung über das Netzwerk muss gewährt sein. Dann reicht es in Exchange, wenn der Anwender seinen Stellvertreter einfach einträgt.

Übrigens: Termine, in denen die Option "Privat" angekreuzt ist, kann niemand außer der Postfachbesitzer selbst lesen. Auch wenn der Stellvertreter alle Rechte hat. ABER die ist eine Limitierung von Outlook. per MAPI kann auch en Stellvertreter diese Elemente lesen, da Exchange nicht die Inhalte der Termine selbst kennt und Sicherheit auf einzelne Objekte oder Felder erst mit Exchange 2000 möglich werden.

Erinnerung an Termine

Termine sollten eingehalten werden und daher ist es nützlich, wenn der PC den Anwender davon unterrichtet, dass ein Termin fällig ist. Der Exchange Server selbst kann aber überhaupt nicht alarmieren, da er die Inhalte nicht kennt. Es ist Outlook, der den Terminkalender der Person überwacht und dann "Piep". Und Outlook überwacht nur den eigenen Terminkalender. Daher sind von Hause aus keine Alarme auf öffentliche Ordner möglich.

Aber Exchange wäre nicht Exchange, wenn nicht auch andere Elemente z.B. in öffentlichen Ordnern überwacht werden könnten. Aber eben nicht mit eingebauten Mitteln. Da ist dann etwas "Skripting" angesagt:

Auf Ordner können Skripte gebunden werden, welche bei Änderungen oder periodisch laufen. Hier ist es nun möglich, dass ein Skript z.B. alle halbe Stunde die Kalendereinträge liest und dann eine entsprechende Aktion (z.B. NET SEND) auslöst oder eine "Erinnerung" an die Teilnehmer oder wie auch immer sendet"

Alternative 2: Ein anderes Programm, das als Client alle Kalender überwacht und bei Bedarf aktiv wird. Dazu ist die Programmierung z.B. mit MAPI notwendig und das Programm muss ausreichende Rechte haben. Diesen Weg beschreiten auch diverse Virenscanner, die auf MAPI-Ebene Postfächer und Ordner nach Viren durchsuchen. Allerdings ist hier ein sauberes Design zu beachten (Speicherloch) als auch die Systemlast zu beachten. Sicher eignet sich dieses Verfahren nicht dazu, jede Minute Hunderte von Ordnern zu zu prüfen.

Fertige Programme gibt es aber weder für den einen noch den anderen Fall, zumindest kenne ich keine, so dass einige Hilfsmittel bei Net at Work für Kunden entwickelt wurden.

Drittanwendungen mit anderen "Ansichten" der Termine

Nun haben wir einen Exchange Server und alle Personen pflegen ihre Termine, Abwesenheiten etc. in ihren privaten Kalendern aber doch fehlt uns eine geeignete Übersicht. Outlook bietet hier nur die Option an, bei einer Einladung die anderen Personen mit auszuwählen und zeigt dann die freien und belegten Zeiten an. Sofern ich die Rechte habe, die jeweiligen Kalender zu lesen, kann ich mir auch Details dazu anzeigen lassen. Aber immer einen Termin vereinbaren um zu sehen, wer grade da ist ?.

Besonderer Fall sind z.B. Sekretariate oder Telefonzentralen, die sehr schnell wissen müssen, wer gerade "belegt" ist oder wer z.B.: auf Dienstreise oder Urlaub ist. Der Exchange Server hält die Daten ja schon bereit, es fehlt nur an einem geeigneten Programm zur Anzeige der Informationen. Die meisten Programme haben aber einen Nachteil: Wenn mehr Informationen als "Frei/Belegt" angezeigt werden müssen, müssen die Programme alle betroffenen Kalender einsehen müssen (Rechte !!) und das öffnen und lesen so vieler Kalender kostet Rechenleistung und damit Zeit. Daher können Sie solche Programme generell in zwei Sparten unterteilen:

  • Zugriff per MAPI
    Die einen greifen per Outlook und MAPI auf die Kalender im laufenden Betrieb zu. Dies liefert zwar aktuelle Daten, aber kostet Zeit bzw. ist einfach langsam und bremst den Server auch etwas aus.
  • Zugriff per Metadatenbank
    Andere Programme exportieren einfach zu bestimmten Zeiten die Kalender in eine eigene Datenbank und nutzen dann diese zur Ansicht. Die Belastung des Exchange Server ist niedriger, der Zugriff meist viel schneller und unabhängig von Outlook. Aber die Daten sind nicht sehr aktuell und ein Serverprozess muss den Export durchführen.

Sie müssen sich zudem noch entscheiden, welche "Art" von Programm sie haben möchten:

  • eigenständige Programm
    Eigenständig, d.h. auch ohne Outlook aufrufbar aber je nach Implementation ist zumindest ein MAPI-Profil notwendig.
  • Outlook "integriertes Modul
    Outlook kann um weitere Menüs erweitert werden. Wenn ihre Anwender sowieso in Outlook arbeiten, dann ist eine Integration vielleicht der bessere Weg an die Daten zu kommen.
  • Webanwendung
    Einige Anwendungen nutzen HTTP und einen Webbrowser als Technik. Somit können solche Aufgaben mit einem Browser oder eingebettet (Outlook Heute) genutzt werden.

Hier nun einige Links ohne Wertung. Die meisten Programme sind als Trialversion aus dem Internet verfügbar. Wundern Sie sich aber nicht, denn einige "Preise" sind schon fast unverschämt, aber auch hier herrscht Marktwirtschaft.

Achtung Caching !!

Outlook 98 hat eine Änderung erfahren, wie der Zugriff auf Termine realisiert wird. erinnern wir uns, dass jeder Termin ein eigenständiges Objekt im Ordner "Kalender" ist. Um nun eine Terminansicht aufzubauen, muss Outlook alle Termine im betreffenden Zeitraum öffnen. Und sie wissen, wie lange es dauern kann, mehrere Elemente zu öffnen. Diese Belastung von Server und Netzwerk muss nicht sein. Daher nutzt Outlook 98 und neuer einen lokalen Cache.

Mit der gleichen Technik, mit der auch ganze Ordner und Postfächer "offline" verfügbar gemacht werden können (Siehe unterwegs mit Outlook: Offline und Replikation) konfiguriert Outlook auf jedem PC einen Offline Ordner für den Kalender. Damit werden die Kalenderdaten immer offline repliziert, auch wenn der Anwender gar keinen Offline Betrieb konfiguriert hat.

In der Folge kann Outlook aber sehr schnell auf die lokale Datei zugreifen und die Ansicht auf Termine sehr stark beschleunigen. Lokales Caching hat aber auch Nachteile. Speziell wenn Stellvertreter ebenso den Terminkalender bearbeiten, dann merken die Outlooks erst nach einiger Zeit, dass neue Termine hinzugekommen sind. Nämlich immer erst dann, wenn eine Replikation stattgefunden hat. Weiterhin bremst die Replikation im Hintergrund manchmal Outlook etwas aus. Speziell beim Arbeiten "online" über langsamer Verbindungen wird auch der Start von Outlook verzögert. Siehe auch

  • Q192980 OL2000: (CW) Outlook Slow to Start While Downloading Calendar
  • Q196993 OL20: (CW) Outlook Speed Enhancement to Calendar Folder
  • Q182112 OL98: Additional Command-Line Switches

Das Cachen von Outlook ist im Hinblick auf die Netzwerk und Serverbelastung eine gute Idee und beschleunigt auch den Zugriff für den Anwender. Aber auf der anderen Seite sollten Sie diese Funktion können, um auch die Probleme (z.B. Verspätete Updates etc.) zu können. Manchmal funktioniert diese Outlookfunktion nicht fehlerfrei, so dass sich manuell nachhelfen müssen, z.B.: über die Kommandozeilenoption "/cleanreminders".

Termine für Entwickler - Serientermine-Hell

Besonders knifflig stellen sich die Termine für Entwickler und Programmierer dar. Einen normalen Termin kann man sich ja noch vorstellen und kann per VBScript über CDO und MAPI auch drauf zugreifen. Interessant wird es aber nun bei Serienterminen. Diese "erkennt" man daran, dass das Attribut "IsRecurring" auf WAHR gesetzt ist. Nur dann darf man über die Methode "GetRecurrencePattern" ein Objekt holen, in dem die Wiederholungseinstellung abgespeichert ist. Greift man direkt auf das Objekt zu, dann wird es ein wiedergehrender Termin, auch wenn es vorher keiner war. Als Entwickler bekommt man also bei einer "For-Schleife" durch den Kalender nicht die Liste der Termine, sondern muss selbst dafür sorgen, dass man Serientermine selbst berücksichtigt. Outlook macht das auch so.

Die zweite Steigerung besteht nun darin, dass Serientermine ja auch nachträglich geändert oder gelöscht werden können. Wenn Sie eine Terminserie mit 10 Terminen eingetragen haben, dann finden Sie per CDO genau ein Terminobjekt mit einem Wiederholungsobjekt. Wenn Sie nun aber in Outlook einen Termin der Serie (nicht die Serie selbst) ändern, dann kann man programmtechnisch sehen, dass dieses eine Objekt eine Anlage bekommt. In der ist der abweichende Termin wohl gespeichert. Leider weiß ich nicht, was Outlook da nun wie macht. (kann hier jemand mithelfen ?)

Wenn ich einen Termin der Serie lösche, so wird auch das irgendwo gespeichert. Eine Anlage kommt auf jeden Fall nicht dazu. Auch hier finde ich keine Information, wie man dies per CDO auslesen kann.

Interessant ist, dass bei einem Zugriff per WebDAV der Store anscheinend die Terminserie in Einzelelemente auffächert. Vieleicht is WebDav doch das bessere Protokoll für TerminÄnderungen ?

Parallels und Mac

Durch einen Kundenkontakt habe ich auch erfahren, dass andere Produkte manchmal Probleme machen können. Wer mit einem MAC arbeitet, kann z.B. über Parallels (http://www.parallels.com/de/) in einer virtuellen Maschine auch Windows und damit auch Outlook installieren. Und auch hier kann es durchaus sein, dass die Virtualisierungslösung an der "Zeit" des Gasts rumschraubt.

Weitere Links