Es ist Urlaubszeit. Sie haben einige freie Tage vor sich, und wollen deshalb im Kalender von Outlook die von Ihnen angesetzten oder akzeptierten Besprechungen absagen.
Das dauert, selbst wenn Sie flink an der Tastatur sind, weil Sie für jeden Termin ein paar mal klicken und die Absagenachricht eintragen müssen. Die Abhilfe schafft ein VBA-Skript, das diese lästige Aufgabe übernimmt.
Da für einen Urlaub pro Woche ganz gern mal ein, zwei dutzend Termine und mehr anfallen, spart mir dieses Skript seit langem viel Zeit und Mühen und Fehler.
Dieser Artikel ist auch auf Englisch verfügbar: Vacation Time ‒ Quickly Delete Multiple Appointments in Outlook. Das Skript ist sprachunabhängig, wenngleich die Meldungen alle auf Englisch programmiert sind.
Schritte, Outlook-Termine abzusagen
Wollen Sie mehrere Termine in Outlook absagen, führen Sie üblicherweise die folgenden Schritte händisch für jeden Termin durch:
- Sie markieren im Kalender alle Termine, die Sie absagen möchten, egal ob Sie derjenige sind, der eingeladen hat, oder ob Sie ein Teilnehmer daran sind.
- Dann löschen Sie mit der Entfernen-Taste, woraufhin ein Fenstergewitter ausbricht.
- Für alle Termine fragt Outlook, ob Sie nur diesen Termin oder die ganze Serie absagen wollen.
- Für alle eigenen Termine öffnet Outlook daraufhin den Kalendereintrag. Hier tragen Sie die Nachricht zur Absage ein und drücken dann auf „Senden“. Für jeden Termin mindestens drei Klicks und vier Tastenanschläge. Wenn Sie gut sind.
- Für alle angenommenen Termine fragt Outlook, ob Sie mit Nachricht absagen wollen. Wenn Sie nett zu Ihren Kollegen sind, tun Sie dies, und befüllen das neue Nachrichtenfenster.
Für jeden Termin macht das mindestens vier Klicks und vier Tastenanschläge. Wenn Sie geübt sind. Mal zwanzig Termine sind Sie da schon einige Zeit beschäftigt, und das vermutlich an ihrem letzten Arbeitstag vor dem Urlaub, wo sich sowieso schon mehr Arbeit anhäuft, weil so noch vieles vor Ihrer Abwesenheit erledigten wollen. Selbiges gilt freilich auch vor Dienstreisen; jegliche Abwesenheit zieht nicht nur die Administration derselbigen, sondern auch die Umorganisation der Arbeit mit sich, und aufgrund der „normalen“ Arbeit, die ja nicht einfach verschwindet, auch den Wunsch oder die Notwendigkeit, vieles halt eben noch zu erledigen. Genau aus dieser Erfahrung heraus entstand mein Wunsch, das ganze nicht mehr manuell machen zu müssen, egal ob Urlaub oder Dienstreise, und egal ob ich die Termine erst am letzten Tag vor der Abwesenheit absage, oder schon einige Tage früher, wie sich das eigentlich gehört.
Einfacher per Automatisierung
Das ganze lässt sich zumindest auf der Terminseite auch einfacher erledigen, indem Sie die Fähigkeit des Computers nutzen, Dinge eben automatisch zu erledigen.
Meist wollen Sie allen dieselbe Nachricht schicken und nur den jeweiligen Termin absagen, nicht jedoch die Terminserie.
Das heißt Sie entscheiden gar nicht für jeden Termin neu, und formulieren auch nicht neu, müssen aber trotzdem immer neu Klicken und kopieren und einfügen.
Dafür hat uns die Informatik Skriptsprachen gegeben. Und im konkreten Fall heißt mein Visual Basic-Skript BulkDeleteAppointments.bas. Das übernimmt genau diese Aufgaben für Sie.
- Sie wählen in Outlook entweder einen Datumsbereich in der Kalenderansicht aus oder mehrere Termine.
- Sie haben im fraglichen Zeitraum lauter interne Termine, die alle dieselbe Nachricht bekommen sollen? Dann wählen Sie einen Datumsbereich aus.
- Sie möchten mehrere Termine mit derselben Absage versehen, aber andere stehen lassen? Dann wählen Sie mit der Strg- oder Umschalten-Taste mehrere Termine aus.
- Mit Alt-F8 öffnen Sie das Makro-Fenster und wählen das Makro BulkDeleteAppointments. Dieses fragt Sie nach einer einzeiligen Nachricht, die verschickt werden soll, bevor es dann die Absagen erstellt und die Termine löscht. Fertig.
Vorsicht und Umsicht ist geboten, denn das Skript fragt nicht nochmal nach.
Wenn Sie dem Skript oder mir noch nicht ganz trauen, dann versetzen Sie Outlook einfach vorher in den Offline-Modus und führen BulkDeleteAppointments dann aus. Manchmal bringt das Skript einen Fehler, der auf noch unberücksichtigte Eigenschaften mancher Termine zurückgeht. Dank mehrere Aktualisierungen in den letzten Jahren dürften dies nicht mehr viele sein, jedoch kann ich nicht ausschließen, dass es dennoch auftritt. In diesem Fall markieren Sie bitte die verbleibenden Termine und führen das Skript nochmal aus.
Auch klar ist: Bevor ich das Skript auf alle möglichen Termine laufen lasse, überlege ich, welche Termine eine Sonderbehandlung, also einen extra Absagetext benötigen, und sage diese manuell wie bisher auch ab. Oder aber ich lasse das Skript mehrfach laufen und schreibe jeweils einen anderen Absagetext in die Dialogbox zur Abfrage hinein. Denn eine Automatisierung soll ja das Arbeitsleben professioneller machen, nicht schludriger!
Einrichten
Damit Sie das Skript nutzen können, müssen Sie es in Ihr Outlook integrieren. Dazu importieren Sie es zunächst in den Makro-Editor und signieren es dann digital, damit Outlook sich sicher genug fühlt. Sollten Sie schon bei Durchsicht der folgenden Aufzählung nur Bahnhof verstehen, dann könnte es sein, dass ein Skript in Outlook noch nichts für Sie ist. Das ist dann auch gar nicht schlimm, doch ist jegliche Skriptlösung eher für technikaffine Menschen geeignet, die nicht bei jedem Schritt Sorge haben, etwas kaputt zu machen.
- Gehen Sie zu BulkDeleteAppointments.bas und laden dort die Datei in der Raw-Ansicht herunter.
- Öffnen Sie in Ihrem Outlook den Makro-Editor mit Alt-F11.
- Wählen Sie im Menü Datei den Eintrag „Datei importieren“.
- Wählen Sie das heruntergeladene Skript BulkDeleteAppointments.bas.
- Erstellen Sie eine Signatur, in dem Sie C:\Program Files\Microsoft Office\root\Office16\selfcert.EXE aufrufen. Statt Office16 kann das Verzeichnis bei Ihnen auch anders heißen. Geben Sie dem Zertifikat einen Namen und bestätigen Sie.
- Signieren Sie im Makroeditor, indem Sie im Menü Tools/Werkzeuge den Eintrag Digitale Signatur klicken und dort Ihr neu erstelltes Zertifikat suchen.
Fertig.
Das Skript können Sie auch auf Github einsehen und selbst anpassen, dazu gibt’s weiter unten in diesem Artikel noch Anmerkungen.
Fehler und deren Behebung
Zwei übliche Fehlermeldungen möchte ich Ihnen nicht vorenthalten:
- Fehlermeldung „Statement too complex“/ „Anweisung zu komplex“: Sie haben nicht die Quellcode-Datei heruntergeladen, sondern die ganze Webseite gespeichert. Gehe exakt so vor wie im Abschnitt „Einrichten“ beschrieben.
- Fehlermeldung „Die Makros in diesem Projekt sind deaktiviert. Informationen zum Aktivieren der Makros finden Sie in der Online Hilfe oder der Dokumentation der Host-Anwendung.“: Genau dies. Speichern kann schon helfen, und nochmal genau die Anleitung oben befolgen.
Wenn Sie mit einer anderen Fehlermeldung konfrontiert sind, lesen und befolgen Sie nochmal genau die Anleitung zum Einrichten von oben. Wenn’s dann immer noch nicht geht, befragen Sie eine Suchmaschine Ihrer Wahl mit der genauen Fehlermeldung.
Genereller Hinweis zu VBA-Skripten
Wieso biete ich das nicht als fertiges Plugin für Outlook an? Weil ich dazu deutlich mehr Test- und Verifikationsaufwand treiben müsste, und permanent Signaturen und Integration mit allen möglichen Outlook-Versionen pflegen müsste. Einfacher für mich ist es so.
Das heißt aber auch: Sie laden hier ein VisualBasic-Skript aus dem Internet herunter und fügen es Ihrem Outlook hinzu, und geben ihm damit Zugriff auf ihren gesamten Kalender. Das kann je nach IT-Umgebung erlaubt sein oder auch nicht, es kann nicht wirklich gewünscht sein oder tatsächlich verboten, egal ob durch Maßnahmen unterbunden oder nur durch irgendeine IT-Richtlinie. Wenn Sie es ganz genau wissen wollen, dann schauen Sie zuerst bei sich intern nach im Intranet nach. Eventuell findet Ihre IT-Abteilung das Urlaubs-Skript ja so nützlich, dass sie es zentral übernehmen und einbinden, dann haben Sie lokal gar nichts mit der Installation zu tun.
Und dann bleibt immer noch das Restrisiko, dass die Funktion bei Ihnen nicht so tut, wie sie soll. Klar habe ich getestet, seit Jahren, doch immer nur auf der Version von Outlook, die ich eben gerade im Einsatz habe. Seit einiger Zeit bin ich beruflich auf Microsoft 365 und habe daher stets die neueste Version von Outlook, jedoch natürlich in genau der Implementierung in der Firmenumgebung, in der das bei uns eben läuft. Ob im Einzelfall die Eigenschaften der Umgebung so anders sein können, dass das Skript bei Ihnen nicht läuft, kann ich von hier aus nicht genau einschätzen. Die einzelnen Schritte der Funktion sind relativ einfach, Sie werden keine komplexen Programmierschnittstellen vorfinden, die bedient werden, keine besonderen Voraussetzungen, keine komplizierten Algorithmen, das Vorgehen ist ziemlich schlicht und geradeaus. Wenn Sie also schonmal eine Programmiersprache benutzt haben oder zumindest keine Berührungsängste damit haben, dann werden Sie problemlos verstehen können, was in dem Code an welcher Stelle vor sich geht.
Ich verwende diese Programmiersprache, Automatisierung und Outlook nun schon seit mehreren Jahrzehnten, und doch ist dieses Skript genau das: ein Skript. Etwas, das ich für mich selbst geschrieben habe, und das ich Ihnen zur Verfügung stellen möchte, damit auch Sie davon profitieren können.
Sollte an irgendeiner Stelle mal etwas nicht so klappen wie gedacht, können Sie dies beheben oder verbessern, so wie es schon manche Anwender dieses Skripts getan haben. Nutzen Sie dafür die entsprechende Funktion von Github, also Herunterladen des Quellcodes mit Git, Arbeit am Programmcode, und dann erstellen Sie einen sogenannten Pull Request, also direkt via Github einen Vorschlag, den ich dann bekomme und nach Prüfung in den Hauptzweig des Programms übernehmen kann. Das funktioniert tadellos und beißt nicht, Sie brauchen nur einen Github-Account dafür, und idealerweise einen Git Client.
Und was automatisieren Sie?
Was automatisieren Sie sonst noch in Outlook?
Wenn Ihnen das Skript hilft, oder Sie weitere konkrete Ideen haben, dann kommentieren Sie und tragen Sie sich unten für den Newsletter ein. Auf diese Weise verpassen Sie nicht, wenn es was neues dazu gibt.
Photo: Joachim Schlosser, License Creative Commons Attribution Share-Alike
Schreiben Sie einen Kommentar