Mailadresse von Bookings Kalender ändern

Ein neu erstellter Bookings Kalender erstellt eine neue Mailbox im Format <BookingsCalenderTitle@TenantDefaultDomain>. Die Standard-Domain wird im M365 Admin Center definiert. Seit Dezember 2022 ermöglicht Bookings über eine Exchange OWA-Policy eine alternative @Domain.

💡 Nachlesen:  Microsoft Bookings mit Custom Domain Support

In meinem Fall gab es während der Erstellung einen Typo im Namen des Kalenders. Nun wurde die Mailbox [email protected] erzeugt. Die Url für den Bookings Kalender lautet demnach https://outlook.office365.com/owa/calendar/[email protected]/bookings. Ähnliches tritt bei Sonderzeichen, Umlauten und anderen speziellen Zeichen im Namen des Bookings Kalenders auf.

Den Anzeigenamen können Administratoren eines Kalenders einfach in den Einstellungen des Bookings Kalenders richtigstellen. Die Mailbox und URL wird nicht angepasst. Im Folgenden beschreibe ich wie du es über Exchange PowerShell und Microsoft Graph ändern kannst.


Anpassung über Exchange PowerShell

Im Exchange Admin Center findest du die Mailbox nicht. Eine über Bookings erstellte Mailbox wird in Exchange als SchedulingMailbox erfasst. Den Typ zeigt das Exchange Admin Center nicht an. Über PowerShell ist es einfach alle Bookings Mailboxen aufzulisten.

PowerShell
Connect-ExchangeOnline
Get-Mailbox -RecipientTypeDetails SchedulingMailbox -ResultSize unlimited
$Mailbox = Get-Mailbox -Identity <MailboxAlias>


Die Auswertung zeigt wissenwerte Details für die Richtigstellung der Mailadresse.

PowerShell

Die Richtigstellung unterscheidet sich bei einer SchedulingMailbox nicht von einer anderen Mailbox. Du kannst über PowerShell die Mailadresse anpassen.

Beachte, du solltest die Mailadresse nicht mehr anpassen, wenn bereits Termine gebucht wurden. Nach der Anpassung können deine Kunden bestehende Termine nicht mehr selbst stornieren oder umbuchen. Für Kunden inkludiert der gebuchte Termin in der Bestätigung die Mailadresse des Booking Kalenders. Wird die Mailadresse nachträglich verändert ist es ein toter Link. An gebuchten Terminen ändert sich aber nichts. Die Termine sind weiterhin im Bookings Kalender. Kann ein Kunde die Mailadresse manuell richtigstellen funktioniert der Link wieder.

Beispiel von einem Link:
https://outlook.office365.com/owa/calendar/[email protected]/bookings/02hrC_t3NU6p-GAln3kODA2

PowerShell
Set-Mailbox -Identity $Mailbox -EmailAddresses <NewEmailAddress>

PowerShell

PowerShell warnt über eine nicht angepasste WindowsLiveId. Die WindowsLiveId ist mit dem UserPrincipalName des Mailbox Kontos verbunden. In Entra ID hat das Konto weiterhin den Typo im UserPrincipalName.

Entra ID Konto
Entra ID Konto

Für das eigentliche Problem der falschen URL des Bookings Kalender hat ein Typo im UserPrincipalName keine Auswirkung. Du kannst den UserPrincipalName anpassen, musst es für die Lösung des Problems aber nicht.
Zur Lösung des Problems musst du deinen Bookings Kalender neu publizieren oder in der Booking Page eine beliebige Veränderung vornehmen. Zur Aktualisierung der Mailadresse in einer öffentlichen Bookings URL musst du die Booking Page nur einmal neu speichern.

Für die Publizierung öffnest du deinen Bookings Kalender und wählst die Option Booking Page im Navigationsmenü. Deaktiviere die Booking Page und speichere die Änderung.

Bookings Page deaktivieren und erneut publizieren
Bookings Page deaktivieren und erneut publizieren

Aktiviere die Booking Page wieder, die Mailadresse wurde aktualisiert.

Aktualisierte URL im Bookings Kalender
Aktualisierte URL im Bookings Kalender

Anpassung über Microsoft Graph

Die für Exchange PowerShell beschriebenen Änderungen sind alle über Microsoft Graph möglich. Mit Exchange PowerShell bist du eventuell schneller, mit Graph hast du andere Vorteile.
Du kannst den Bookings Kalender über eine API deaktivieren und erneut publizieren. Für die Änderung musst du den Bookings Kalender als Administrator kein einziges Mal öffnen und benötigst keine Unterstützung durch andere Mitarbeitende.

Folgende Daten solltest du kennen:

  • Den aktuellen Namen des Bookings Kalenders
  • Die neue Mailadresse des Bookings Kalenders
  • Optional, den korrekten Anzeigename des Kalenders (Administratoren des Bookings Kalenders könnten den Namen selbstständig richtigstellen)

Für die nachfolgenden Schritte benötigst du…

  • Das PowerShell Modul Microsoft.Graph.Authentication.
  • In Microsoft Graph den Scope Bookings.Manage.All, für die Anpassungen im Bookings Kalender.
  • In Microsoft Graph den Scope User.ReadWrite.All, für die Anpassung der Mailadresse (und optional den UserPrincipalName).

In meinem GitHub Repository findest du das Beispiel zusammengefasst.

  1. Zuerst definierst du die Werte über aktuellen Namen und neue Mailadresse, und optional den neuen Namen des Kalenders.
  2. Du verbindest du dich über den Scope Bookings.Manage.All, User.ReadWrite.All mit Microsoft Graph und suchst den betroffenen Kalender. Das Ergebnis zeigt die aktuell (fehlerhafte) Mailadresse des Bookings Kalenders. Die Mailadresse ist die primäre ID für einen Bookings Kalender.
PowerShell
$CurrentBookingsCalenderName = "Topedia Blookings"
$NewBookingsCalenderName = "Topedia Bookings"
$NewBookingsMailAddress = "[email protected]"

Connect-MgGraph -Scopes Bookings.Manage.All,User.ReadWrite.All
$Url = "https://graph.microsoft.com/v1.0/solutions/bookingBusinesses?query=$CurrentBookingsCalenderName"
$Result = Invoke-MgGraphRequest -Method GET -Uri $Url -ContentType "application/json" 
$Result.value

$BookingsCalendarID = $Result.value.id

PowerShell
  1. Optional, ich passe über die ID den Namen des Kalenders an.
PowerShell
$Body = 
@"
{ "displayName": "$NewBookingsCalenderName" }
"@

$Url = "https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/$BookingsCalendarID"
Invoke-MgGraphRequest -Method PATCH -Uri $Url -Body $Body -ContentType "application/json" 

  1. Da die ID des Kalenders bekannt ist lade ich zur Kontrolle den gesamten Kalender.
PowerShell
$Url = "https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/$BookingsCalendarID"
$BookingsCalendar = Invoke-MgGraphRequest -Method GET -Uri $Url -ContentType "application/json" 
$BookingsCalendar
PowerShell
  1. Im nächsten Schritt versuche ich das Entra ID Konto des Kalenders zu finden. Ähnlich zur Mailadresse sollte der UPN dieselbe fehlerhafte Bezeichnung nutzen.
PowerShell
$Url = "https://graph.microsoft.com/v1.0/users/$BookingsCalendarID"
$BookingsUserAccount = Invoke-MgGraphRequest -Method GET -Uri $Url -ContentType "application/json" 
$BookingsUserAccount | select userPrincipalName,mail,id | fl

PowerShell
  1. In der Dokumentation über Update User ist vermerkt eine Aktualisierung des Mail-Properties aktualisiert das Property proxyAddresses. Dadurch kann ich den UserPrincipalName und die Mailadresse in einem Schritt richtigstellen.

Beachte, du solltest die Mailadresse nicht mehr anpassen, wenn bereits Termine gebucht wurden. Nach der Anpassung können deine Kunden bestehende Termine nicht mehr selbst stornieren oder umbuchen. Für Kunden inkludiert der gebuchte Termin in der Bestätigung die Mailadresse des Booking Kalenders. Wird die Mailadresse nachträglich verändert ist es ein toter Link. An gebuchten Terminen ändert sich aber nichts. Die Termine sind weiterhin im Bookings Kalender. Kann ein Kunde die Mailadresse manuell richtigstellen funktioniert der Link wieder.

Beispiel von einem Link:
https://outlook.office365.com/owa/calendar/[email protected]/bookings/02hrC_t3NU6p-GAln3kODA2

PowerShell
$Body = 
@"
{ "userPrincipalName": "$NewBookingsMailAddress",
  "mail": "$NewBookingsMailAddress"
}
"@

$Url = ("https://graph.microsoft.com/v1.0/users/" + $BookingsUserAccount.id)
Invoke-MgGraphRequest -Method PATCH -Uri $Url -Body $Body -ContentType "application/json" 

  1. Eine Kontrolle des Bookings Kalenders zeigt die fehlerhaften Daten sind richtiggestellt. Nun sind die Daten wie es sein soll.
PowerShell
$Url = "https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/$NewBookingsMailAddress"
$BookingsCalendar = Invoke-MgGraphRequest -Method GET -Uri $Url -ContentType "application/json" 
$BookingsCalendar.GetEnumerator() | ?{$_.name -eq "displayName" -or $_.Name -eq "id" }

PowerShell
  1. Jetzt ist es notwendig den Kalender neu zu veröffentlichen. Für Bookings stellt Microsoft die APIs für Publish und Unpublish bereit. Microsoft beschreibt in der Dokumentation nicht mit welcher Freigabestufe der Kalender bei Publish publiziert wird. Es ist “Available to people in your organization”.
PowerShell
$Url = "https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/$NewBookingsMailAddress/unpublish"
Invoke-MgGraphRequest -Method POST -Uri $Url -ContentType "application/json" 

$Url = "https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/$NewBookingsMailAddress/publish"
Invoke-MgGraphRequest -Method POST -Uri $Url -ContentType "application/json" 

  1. Über das Property publicUrl wird die URL des Bookings Kalenders ausgegeben. Die URL inkludiert die angepasste Mailadresse. Die Anpassung wurde erfolgreich umgesetzt.
PowerShell
$BookingsCalendar.publicUrl

PowerShell
Share
Avatar-Foto

Tobias Asböck

Tobias ist ein Senior System Engineer mit rund 10 Jahren Berufserfahrung für Microsoft 365 Produkte wie SharePoint Online, OneDrive for Business, Teams Collaboration, Entra ID, Information Protection, Universal Print und Microsoft 365 Lizenzierung. Aus der Vergangenheit kennt er über einen Zeitraum von 15+ Jahren die Planung, Administration und den Betrieb von SharePoint Server Umgebungen. Tobias ist ein PowerShell Scripter mit Zertifizierungen für Microsoft 365 Produkte. In seiner Freizeit beschäftigt sich Tobias mit Aktualisierungen in der M365-Welt, ist mit seinem Rennvelo unterwegs und anderen sportlichen Aktivitäten beschäftigt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert