Frei/Belegt-Zeiten

Eine wesentliche Funktion von Outlook im  Netzwerk mit einem Exchange Server, ist die Vereinbarung von Terminen. Hierbei ist die Funktion besonders von Vorteil, dass auch ohne besondere Berechtigungen ein Anwender ersehen kann, ob der Partner im fraglichen Zeitraum überhaupt frei ist. Wie macht Outlook und Exchange das ?

Free/Busy von Exchange 5.0 bis Exchange 2003

Die technische Umsetzung der Terminübersichten in Outlook ist relative einfach gelöst

Free/Busy Prinzip

Als Besonderheit ist hier einfach zu beachten, dass es je Exchange Site bzw. administrativer Gruppe einen eigenen Systemordner in Exchange gibt. Beim der Einladung von Personen aus anderen Standorten muss Outlook daher den entfernten Ordner oder ein Replikat der Daten befragen. Als Administrator sollten Sie daher prüfen, ob die Anwender auf die entfernten Ordner zugreifen können (Namensauflösung, IP-Routing, Firewall) oder ob ein Replikat (Achtung: Latenzzeit) hier eine bessere Alternative ist.

Sogar ein Arbeiten über Organisationsgrenzen hinaus ist damit möglich, da auch Kontakte mit Frei/Belegt-Zeiten versehen werden können.

Free/Busy ab Exchange 2007 / Outlook 2007

Die großen Einschränkung dieser alten Lösung sind natürlich, dass ein Zeitverzug zwischen Termineintragung beim Anwender, der Aktualisierung im Free/Busy-Ordner, etwaiger Replikation und dann der Anzeige beim Anwender bedeutet. Mit Exchange 2007 bietet der Exchange Server einen "Webservice" an, den Outlook 2007 befragen kann. Die Anfrage von Outlook per HTTP wird vom Server derart gelöst, dass der Exchange Server direkt in das Postfach hinein schaut, die Frei/Belegt-Zeiten dynamisch generiert und an den Client liefert. Damit sind diese hoch aktuell, auch wenn der Mitarbeiter z.B. mobil mit einem PDA arbeitet

Dabei nutzt der Outlook 2007 Client den die Exchange 2007 CAS-Rolle, um die Daten zu erfragen, welcher dann den Postfachserver des Anwenders (Exchange 2007) oder per OWA die Frei/Belegt-Zeiten eines Exchange 2003 Empfängers über den öffentlichen Ordner befragt.

E2007 freeBusy

Die Outlok2003 Clients nutzen natürlich weiterhin ihre klassischen öffentlichen Systemordner.

Exchange 2007 "Add-AvailabilitySpace"

Outlook 2003 und älter hat per Default immer die öffentlichen Ordner für die Ablage und Auswertung von Frei/Belegt-Zeiten heran gezogen. Sobald Outlook 2007 aber als Server einen Exchange 2007 Server erkennt, nutzt Outlook die Exchange Web Services und fragt die Daten per HTTPS vom Exchange CAS-Server ab. Wenn Outlook nun anhand der SMTP-Adresse eines Kontakts nach Frei/Belegt-Zeiten sucht, dann wird der CAS-Server diese versuchen aufzulösen. Aber eben über "Autodiscover" gegen die CAS-Server der anderen Domäne.

Über das Comandlet "Add-AvailabilitySpace" kann der CAS-Server angewiesen werden, für bestimmte Domänen doch die "öffentlichen Ordner" zu befragen.

Wichtig ist dieses Commandlet auch, wenn sie auch mit Exchange 2003 eine Verbindung über Organisationen hinweg einrichten und mit dem InterOrg Replication Tool die Frei/Belegt-Zeiten der anderen Organisation in ihre Organisation übertragen. Hier sollten Sie per "Add-AvailabilitySpace" dem CAS dann den Hinweis geben, dass er für diese Organisation die Daten nicht per Webservice erfragen sondern in den eigenen lokalen öffentlichen Ordnern nachschauen soll.

Allerdings können Sie hier bei einer "Single-Server-Umgebung" auf das Problem stoßen, dass der AvailabilityService per Default per HTTP auf den "/Public"-Zweig des IIS zugreift. Wenn Sie aber aus Sicherheitsaspekten den Zugriff nur verschlüsselt über HTTPS zulassen, dann wird das nicht funktionieren. Zum Glück weist sie eine deutliche Meldung im Eventlog darauf hin:

Event Type:     Error 
Event Source:   MSExchange Availability 
Event Category: Availability Service 
Event ID:       4003 
Description: 
Process 1204[w3wp.exe:/LM/W3SVC/1/ROOT/EWS-1-1286353920]:
Microsoft.Exchange.InfoWorker.Common.Availability.PublicFolderRequest failed.
The exception returned is Microsoft.Exchange.InfoWorker.Common.Availability.
PublicFolderRequestProcessingException: The remote server returned an error:
(403) Forbidden.. The request information is http://srv01.msxfaq.local/
public/?Cmd=freebusy&start=2009-08-02T12:00:00Z&end=2009-09-02T12:00:00Z&
interval=30&u=user.name@kunde.local.. The Availability service could not 
successfully retrieve Schedule+ free/busy data for one or more legacy 
Exchange mailboxes. To find the root cause of this error, increase the diagnostic 
logging level of the MSExchange Availability service.

Sie können in der Situation sich eine Lösung aussuchen:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\Options\Calendar]
"UseLegacyFB"=dword:1

Mehr Details dazu finden Sie auch auf dem Exchange Team Blog:

Outlook veröffentlicht Free/Busy Zeiten

Damit sie nun Termine mit anderen Personen planen können, ist es hilfreich zu wissen, wann die anderen Personen "Zeit" haben. Dazu gibt es die Frei/Belegt-Zeiten. Dies ist ein Systemorder von Exchange, der je Exchange 5.5. Standort genau einmal existiert. In diesem Ordner legen die Outlook Clients je Benutzer eine einzelne Nachricht ab, in der die Belegung hinterlegt ist. Diese Funktion ist daher eine Funktion von Outlook und hat nichts direkt mit dem Exchange Server zu tun. Exchange stellt nur den Speicherplatz bereit. 

Outlook erstellt alle 15 Minuten eine Liste der Frei/Belegt-Zeiten des Anwenders und veröffentlicht diese als einzelnes Mailelement in dem Systemorder. Damit die Datenmenge begrenzt bleibt, beschränkt sich Outlook auf die Termine für zwei Monate, d.h. bis zum Ende des darauf folgendes Monats. Wenn wir also heute im Februar sind, dann werden die Termine des Februar und März zusammengefasst und veröffentlicht. Diese Parameter sind einstellbar:

Outlook FB Einstellungen 

Diese Daten werden von Outlook in einem normalerweise verborgenen Systemordner abgelegt.

Übrigens sehen Sie auch die Option, dass man die Frei/Belegt-Zeiten auch im "Internet" veröffentlichen kann. Man kann hier eine URL hinterlegen, auf die Outlook dann als Client eine vfb-Datei ablegt, die andere Personen außerhalb der Organisation z.B.: per HTTP abrufen könnten. Der Inhalt sieht z.B.: wie folgt aus:

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VFREEBUSY
ORGANIZER:/o=Net at Work GmbH/ou=Paderborn/cn=Recipients/cn=fcarius
DTSTAMP:20071129T142141Z
DTSTART:20071031T230000Z
DTEND:20071231T230000Z
FREEBUSY:20071105T170000Z/20071105T210000Z
FREEBUSY:20071111T104900Z/20071111T141600Z
FREEBUSY:20071111T163000Z/20071111T182500Z
FREEBUSY:20071111T230000Z/20071117T230000Z
FEEBUSY:20071202T230000Z/20071207T230000Z
FREEBUSY:20071209T230000Z/20071213T230000Z
END:VFREEBUSY
END:VCALENDAR

Letztlich werden hier nur die Belegt-Zeiten ohne weitere Informationen eingetragen. Eine URL könnte z.B.: wie folgt aussehen:

file:///C:/Inetpub/wwwroot/www.msxfaq.de/fc.vfb

Das ist aber nur ein Muster. Auf der MSXFAQ finden Sie natürlich keinen vfb-Datei von meinem Outlook :-)

Veröffentlichungszeiten per Gruppenrichtlinie pflegen.

Firmen mit Gruppenrichtlinien können über dieses Instrument zentral steuern, wie lange in die Zukunft die Anwender ihre Zeiten veröffentlichen. Als Firma kann ich diese Zeit zentral vorgeben und sogar Änderungen durch den Anwender unterbinden.

GPO zu Free/Busy

Die entsprechende ADM-Vorlagen finden Sie bei Microsoft zum Download

Das entbindet aber nicht das Outlook des Users, diese Zeiten auch zu veröffentlichen. Wenn ein Anwender also einige Wochen in Urlaub ist, dann ist die hier eingestellte Mindestzeit natürlich nicht zu halten.

Speicherplatz für Free/Busy-Zeiten

Diese Systemordner können Sie z.B.: mit dem Exchange System Manager sehen. Nach Aktivierung der Option "Systemordner Anzeigen" im Kontextmenü finden Sie einen Hauptordner "Schedule+ FREE BUSY" und darunter für jede Administrative Gruppe einen weiteren Ordner. Der Name des Ordner entspricht dem LegacyExchangeDN der Administrativen Gruppe.

In diesem Ordner finden sich dann je Anwender genau eine Nachricht, die dessen Frei/Belegt-Zeiten der nächsten Zeit anzeigen. Hierbei ist der Betreff der Nachricht zugleich der LegacyExchangeDN des Benutzers.

Free/Busy Ansicht beschränken

Nun gibt es Umgebungen, in denen es vielleicht nicht gewünscht ist, dass Personen schon die veröffentlichten "Frei/Belegt-Zeiten" einsehen können. Mit Exchange 2007 und Outlook 2007 wird eh wieder alles anders aber bei Exchange 2003 gab es nur wenige Optionen:

Mit Exchange 2007 und Outlook 2007 kommen die Exchange Availibility Services zum tragen. Outlook 2007 fragt den Exchange 2007 Server per Webservice (HTTPS) und Exchange schaut in die jeweiligen Postfächer, um die Daten in Echtzeit zu liefern. Dabei berücksichtigt Exchange die Berechtigungen auf dem Kalender des jeweiligen Postfachs. Wenn Sie dazu mal die Rechte auf dem Outlook 2007 Kalender anzeigen lassen, dann erkennen Sie schon, dass hier für Frei/Belegt-Zeiten mehr Optionen möglich sind:

Der Exchange 2007 Availibility Service nutzt also einfach die Ordnerrechte des Kalenders. Zusätzlich scheint aber auch Outook 2007 die erweiterten Berechtigungen in Verbindung mit einem Exchange 2007 zu speichern aber zudem auch abhängig davon die Frei/Belegt-Zeiten in den öffentlichen Ordner zu schreiben. Legt man hier "Standard = Keine" fest, dann kommt eine Warnung, dass auch Outlook 2003 und älter keine Daten mehr lesen können.

Der Anwender kann also selbst entscheiden, wer wie viele Details sieht. Das funktioniert aber erst in einer reinen Exchange 2007/Outlook 2007 wirken diese Rechte. Im Mischbetrieb sehen Clients die Frei/Belegt-Zeiten anhand der Einstellung von "Standard".

Wenn wir mit MFCMAPI hinter die Kulissen schauen, dann sind die ACLs des Kalenders wichtig. Sobald ein Exchange 2007 Server das Postfach betreibt, kommt beim öffnen erst mal folgende Meldung: 

Welche Ansicht nun die "richtige" ist, hängt eben von dem Client ab. MFCMAPI kann beide Optionen anzeigen. Voraussetzung ist aber eine aktuelle MAPI darunter. Wenn Sie einen Fehler wegen einem "Ungültigen MAPI Property" bekommen, dann verwenden Sie vermutlich noch Outlook 2003. Wenn Sie den gleichen Ordner anzeigen lassen, sehen Sie folgende Rechte.

Exchange 2000/2003 Ansicht

Exchange 2007 Ansicht
Exchange 2007 FB Rechte

Das zweite Bild (mit dem "(w/FB)" im Titel zeigt die erweiterten Exchange 2007 Berechtigungen. Tut man so, als würde man einen neuen Eintrag addieren, dann sieht man auch schön die möglichen Berechtigungen. 

Die effektiven Berechtigungen sind also eine Addition der verschiedenen Bits.

Einladung und Absprachen

Bei der Nutzung von Besprechungsanfragen kann der Anwender weitere Personen einladen und in der Terminübersicht deren freie und belegte Zeiten einsehen. Outlook nutzt dazu folgende Ansicht:

Nur wenn Sie auch Zugriff auf den Kalender des eingeladenen haben (Berechtigungen, WAN-Verbindung zum Homeserver), dann können Sie sogar die Details sehen. Diese Frei/Belegt-Zeiten funktionieren allerdings nur mit dem primären Kalender des Postfachs eines Benutzers.

Für Zeiträume, die weiter in der Zukunft liegen, zeigt Outlook 2000 und neuer korrekt einen schraffierten Balken an, während Outlook 97/98 hier fehlerhaft "Frei" anzeigt. Outlook 97/98 zeigt nur dann einen schraffierten Balken, wenn überhaupt keine Frei/Belegt-Zeiten der anderen Person erreichbar sind. Ist daher eine Terminplanung in weiter Zukunft erforderlich, dann muss jeder Anwender selbst diese Daten entsprechend ändern. Beachten Sie dabei, dass kürzere Intervalle als auch längere Zeiten mehr Netzwerklast und höheren Speicherbedarf bedeuten. Dies gilt insbesondere,  wenn die Frei/Belegt-Zeiten noch zwischen Standorten repliziert werden

Pfiffige Administratoren ändern die Einstellung zentral, z.B.: über REGEDIT, Richtlinien und andere Skripte zur Anpassung der Registrierung oder beim Anlegen des Profils mittels NEWPROF. Notwendig ist aber dazu eine angepasste Änderung, das das MAPI-Profil bei den Benutzern nicht immer gleich heißen muss. Siehe dazu auch

Replikation und Fernzugriff

Solange die Anwender nur innerhalb des eigenen Standorts die Frei/Belegt-Zeiten anderer Anwender benötigen, müssen Sie nichts unternehmen. Der Zugriff von Outlook auf diesen Systemordner erfolgt wie jeder Zugriff von Anwendern auf normale öffentliche Ordner.

Im Standort

Der Frei/Belegt-Zeitenordner ist pro Standort einmal vorhanden. Sie sollten als Administrator prüfen, dass der Ordner existiert und z.B. auf die gewünschten Server repliziert ist. Oftmals wird bei einer Migration dieser Ordner vergessen, wenn der erste Server einer Site entfernt wurde, so dass nach der Abschaltung des ersten Servers keine Funktion mehr gegeben ist. Auch eine saubere Namensauflösung und Verbindung ist hilfreich, diesen Ordner für den Client sicher erreichbar zu machen. Ansonsten erhalten die Clients die Meldung, dass die Frei/Belegt-Zeiten nicht aktualisiert werden können. Manchmal ist aber auch eine Korruption der Datei der Fall. dann hilft der Start von Outlook mit der Option /ResetFreeBusy, um die eigenen Zeitpläne wieder neu aufzubauen.

Über Standorte hinweg

Innerhalb eines Standorts ist die Übersicht über die freien Zeiten noch recht einfach möglich, aber auch in einer Exchange Organisation wird oft die Anforderung gestellt, dass bei der Terminplanung auch Mitarbeiter auf anderen Servern gesehen werden können. Auch dies ist möglich, allerdings muss der Administrator des anderen Standorts einstellen, dass der Systemorder auf den Server im eigenen Standort repliziert wird. Auch hier ist zwischen Aktualität und Netzwerklast abzuwägen. Eine Site mit 100 Anwendern, bei denen Outlook alle 15 Minuten die Zeiten aktualisiert ist eine beachtliche Datenmenge, die repliziert werden muss. !!

Daher ist zu prüfen, ob die Inhalte wirklich repliziert werden sollen oder die Anwender in entfernten Standorten nicht direkt über die WAN-Verbindung das Original nachladen. Das dauert zwar etwas länger aber ist auf jeden Fall aktueller.

Zwischen Organisationen

Öffentliche Ordner können nur innerhalb einer Organisation repliziert werden. Für die Verbindung zwischen Organisationen gibt es aber auch Hilfsmittel. (Siehe Verbinden von Organisationen). Über das Programm InterOrg Replication Tool ist es möglich, den Inhalt von öffentlichen Ordnern einer Organisation in eine andere Organisation zu replizieren. Das funktioniert auch mit Frei/Belegt-Zeiten. Der Trick daran ist, dass Outlook bei der Einladung eines Kontakts ebenfalls in dem Systemordner des eigenen Standorts nach einen Frei/Belegt-Datensatz sucht. Allerdings nutzt Outlook hierzu nicht den LegacyExchangeDN, sondern einfach die SMTP-Adresse. Sobald also ein Elemente im Ordner liegt, dessen Betreff der SMTP-Adresse entspricht, versucht Outlook diese Informationen in einer Terminvereinbarung mit anzuzeigen.

Seit Exchange 2007 werden die Frei/Belegt-Zeiten ja nicht mehr per Default über öffentliche Ordner bereit gestellt, sondern über den Availability-Webservice der CAS-Rolle Wer also einen Mitarbeiter einer andere Domäne einlädt, fordert vom CAS-Server die Brei/Belegt-Zeiten an. Wenn der Administrator die Konfiguration entsprechend angepasst hat, fragt dieser CAS dann über Autodiscover nach dem CAS-Server der anderen Domäne und fordert dort die Daten an.

Im Internet

Sollen Termine und freie Zeiten auch Organisationsübergreifen bereitgestellt werden, dann geht dies aktuell sinnvoll nur über eine Webseite. Dazu kann Outlook 2000 und höher regelmäßig eine HTML-Datei schreiben, welche die freien und belegten Zeiten enthält. Diese könnte dann z.B. über eine Webseite veröffentlicht werden. Dies ist aber nicht mehr im Themenbereich der Ordner für Frei/Belegt-Zeiten

Wer schreibt die Free/Busy Daten ?

Dass die Frei/Belegt Zeiten ein wichtiges Instrument zur Terminplanung sind, werden ihre Anwender sehr schnell erkennen. Als Administrator sollten Sie wissen, welche Prozess für die Pflege dieser Daten zuständig sind. Hierzu gibt es nämlich aktuell zwei Prozesse, die die Frei/Belegt Daten aktualisieren

Zukünftig ist zu erwarten, dass diese Funktion der Exchange Server oder ein Agent auf Exchange übernehmen wird. Wenn Ihr Outlook sowieso schon die Termine über das Netzwerk auf Exchange abspeichert, dann könnte der Exchange Server diese Blöcke ja selbständig und schnell in die Frei/Belegt-Zeiten pflegen.

Free/Busy in der Anwendung.

Ein Beispiel, was Outlook mit Frei/Belegt-Zeiten macht. Gegeben sind folgende drei Postfächer:

Beachten Sie dabei, wie Sie der Terminplan eines anderen Postfachs geöffnet wird. Dies kann auf zwei Arten geschehen

Folgende Tätigkeiten mit Outlook 2002/XP wurden durchgeführt

Vorgang Ergebnis
Einladender lädt Leitung zu einem Termin/Serientermin ein. Postfach der Leitung ist von niemandem geöffnet
  • Die Nachricht landen in seinem Postfach und abhängig von den Auto Accept Einstellung wird der Termin in den Kalender übernommen.
  • Die Frei/Belegt-Zeiten werden nicht aktualisiert
Einladender lädt Leitung zu einem Termin/Serientermin ein. Postfach der Leitung ist von dem Sekretariat geöffnet
  • Die Nachricht landen in seinem Postfach und abhängig von den Auto Accept Einstellung wird der Termin in den Kalender übernommen.
  • Die Frei/Belegt-Zeiten werden durch das Outlook des Sekretariat aktualisiert
Sekretariat trägt einen Termin/Serientermin bei der Leitung (zusätzlich geöffnetes Postfach) ein
  • Termin wird eingetragen.
  • Die Frei/Belegt-Zeiten werden durch das Outlook des Sekretariat aktualisiert
Sekretariat trägt einen Termin/Serientermin bei der Leitung über den geöffneten Kalender ein
  • Termin wird eingetragen
  • Frei/Belegt-Zeiten werden NICHT aktualisiert
Leitung trägt Termin per OWA ein.
  • Der Termin wird eingetragen
  • Frei/Belegt-Zeiten werden etwas später durch die Systemaufsicht aktualisiert
  • Frei/Belegt-Zeiten können auch durch einen Stellvertreter  aktualisiert werden

Generell sollten Sie beachten, dass Outlook die Frei/Belegt-Zeiten nicht sofort, sondern erst nach einiger Zeit aktualisiert. Auch die Anwender, die dann diese Informationen verwenden, erhalten eventuell etwas veraltete Daten, wenn diese auf andere Instanzen auf andere Server (über die öffentliche Ordner Replikation) zugreifen oder der lokale Outlook Cache ältere Daten enthält. Es kann daher immer wieder passieren, dass ein Mitarbeiter einen anderen Kollegen einlädt, wo dieser schon einen Termin hat.

Free/Busy per OWA kontrollieren

Eine nette und hilfreiche Funktion zur Kontrolle der aktuellen Free/Busy Einträge bietet auch OWA. Über die besondere URL http://servername/public/non_ipm_subtree/ ist es möglich, in die Systemordner zu schauen. Ein Blick auf Free/Busy Ordner zeigt dann folgendes Bild:

So kann man auch schnell mal nachsehen, welche Benutzer ihre Frei/Belegt Zeiten auf dem Server ablegen und welche nicht. Auch die Replikation von anderen Standorten ist so überprüfbar.

Der Zugriff per OWA ist unter Exchange 2007/2010 nicht mehr möglich. Nutzen Sie dazu MFCMAPI

Free/Busy und Fremdsprachen

Was viele nicht wissen, ist die Erfordernis von Zeichensätzen für fremde Sprachen und Kulturen. Eigentlich könnten wir ja alle davon ausgehen, dass die Frei/Belegt-Zeiten nur eine Angelegenheit des Clients sind. Outlook legt entsprechend vorbereitete Elemente in einen Systemordner aber und da es nicht weiß, wer in welcher Sprache diese Informationen noch liest, müssen die Zeichen und die Zeiten fest vorgegeben sein.

Fakt ist aber, dass die Frei-/Belegt-Zeiten z.B. in Verbindung mit fernöstlichen Clients dann doch nicht sauber funktionieren, wenn die entsprechenden Zeichensätze noch installiert sind. Eine genauere Erklärung kann ich dazu erst auch mal nicht liefern.

Wenn Sie daher als multinationales Unternehmen z.B. überall nur englische Server installieren aber die Mitarbeiter auf ihrem PC durchaus z.B. ein japanisches Outlook (oder MUI) nutzen, dann sollten Sie auch auf dem Exchange Server die entsprechenden Zeichensätze installieren.

Das gleiche gilt übrigens auch für Domaincontroller. Wenn Outlook 2003 ein Adressbuch anzeigt, so bekommt es die Daten vom DC und dieser sollte die Sortierung natürlich in der der Weise liefern, wie die Anwender damit zu arbeiten gewohnt sind. Siehe auch Exchange und das Active Directory Überschrift "GC und Fremdsprachen")

Weitere Links

Keywords:Frei/Belegt-Zeiten Free/Busy Öffentliche_Ordner Interorg