Ein Leser meiner Seite hat mich gefragt ob es eine Möglichkeit gibt, eine Übersicht eines Kalenders per E-Mail zu erhalten. Der Hintergrund war, dass innerhalb der Abteilung eins Urlaubskalender gepflegt wurde, dabei handelte es sich um ein Exchange Ressourcenpostfach, in der jedes Teammitglied seinen Urlaub einträgt. Die Anforderung war nun eine Übersicht dieses Kalenders für die nächsten 4 Wochen per Mail zu erhalten.
Zu dieser kleinen Anforderung habe ich ein PowerShell Script erstellt, welches die Exchange EWS API benutzt und den Kalender ausliest und die Einträge als Tabelle in einer Mail verschickt. So sieht dann eine Mail aus:
Das Script wird nun einfach jeden Montag Morgen per geplanten Task gestartet und verschickt dann die Mail. Falls jemand ähnliche Anforderungen umzusetzen hat, kann das Script entsprechend angepasst werden. Der Download Link findet sich am Ende des Artikels.
Voraussetzung ist die EWS API 2.2 welche hier runtergeladen werden kann:
Das Script kann hier runtergeladen werden:
Urlaubskalender Script
Das Script muss noch etwas an die eigene Umgebung angepasst werden, aber ich denke dies ist selbsterklärend. In der Regel wird es wohl ausreichen die ersten 9 Zeilen im Script anzupassen. Falls einer längerer Zeitraum gewünscht ist (Standard 28 Tage), kann dies in Zeile 38 angepasst werden. Maximal werden 200 Einträge in der Übersicht aufgelistet (Zeile 40).
Das Script kann dann via Aufgabenplanung zu einem gewählten Zeitpunkt gestartet werden:
Fragen oder Verbesserungsvorschläge gerne per Mail.
In unserer Exchange 2016 Umgebung bekomme ich die Meldung „The Autodiscover service couldn’t be located.“
Ist das Skript nur für Ex2010 geeignet?
Da keine Antwort auf das o.g. Problem kam, auch nochmal die FRage von mir: Ich bekomme die gleiche Meldung. „The Autodiscover service couldn’t be located.“ Wir haben einen Exchange 2019 CU9 installiert.
Top, Mathias, danke!
@Bernhard Diener:
@{N=’Betreff‘;E={$_.Subject}}
Ich habe das Script bereits auf meine Bedürnisse angepasst, sharing is caring:
#HTML Table für die Mail vorbereiten
$htmltable = $results | select -property @{N=’Termin‘;E={$_.Subject}}, @{N=’Ort‘;E={$_.Location}}, @{N=’Kategorien‘;E={$_.Categories}}, @{N=’Start‘;E={get-date $_.Start -format ‚dd.MM.yyyy HH:mm‘}}, @{N=’Ende‘;E={get-date $_.End -format ‚dd.MM.yyyy HH:mm‘}} | convertto-html -Head $CSS -Title $Title -body $Body
Zeigt Betreff, Ort, Kategorien, Start und Ende an.
Nutze es für einen gemeinsamen Kalender, wo mit den Outlook Kategorien gearbeitet wird.
Super Sache.
Kann man auch eine Spalte mit dem Betreff anzeigen lassen? Wenn ja, wie?
Z.B. „Urlaub auf Malle“ ;-)
Wäre das auch mit Kalendern aus Öffentlichen Ordnern möglich da Wir „leider“ dort die meisten Gruppenkalender gespeichert haben?
Hallo Paul,
grundsätzlich kannst du auch per EWS auf Kalender in öffentlichen Ordnern zugreifen. Du musst nur das Script leicht abwandeln, dann funktioniert es auch mit Öffentlichen Ordern.
Gruß,
Frank
Feine Sache – bei uns haben viele Kunden genauso einen Urlaubskalender oder anderen Planer (z.B. Werkstattplaner für KFZ Fuhrpark o.ä.) im Exchange. Ich denke da gibt es bestimmt noch Nutznießer.
Super Frank :).
Ich liebe deine Artikel!