Updated controls for the Events from email functionality in Office 365

///UPDATE: The *-TxpUserSettings cmdlets seem to have been removed from the service. The warning printed when you run the Get-MailboxCalendarConfiguration cmdlet suggests that you should be using Get-EventsFromEmailConfiguration instead, but such cmdlet doesn’t seem to be available yet. Stay tuned…

///UPDATE 2: Microsoft has finished the rollout of the new cmdlets, you can get the events from email configuration for a mailbox via the Get-EventsFromEmailConfiguration cmdlet now, and manage the settings via Set-EventsFromEmailConfiguration. The parameters remain as detailed in the article below. Here’s also link to the documentation.


Events from email have been around for a while in Office 365 now, and while the feature is a convenient one, some organizations immediately opted to disable it via the steps covered in our previous article. The process worked great and as new event types were added, some additional PowerShell parameters were introduced in order to control them.

With the advent of the new OWA UI, Microsoft started a process of migrating to a new implementation of the Events from email feature. This was reflected on the Roadmap under item #53580, “Outlook on the web – More controls for events from email”, with a simple description of “We are making available more end-user granular controls for events from email.” OWA is indeed the only client that currently supports those new settings, as depicted below:

Apart from introducing some new event types (Bills and Service registration), the updated settings UI features more options with regards of handling the events. For each event type, you can now choose between three options:

  • Don’t show event summaries in email or my calendar – use this if you want to completely turn off the feature for a given event type
  • Only show event summaries in email – use this if you still want to see the messages, but not have them added to your calendar
  • Show event summaries in email and on my calendar – the default setting, keep seeing events in both email and the calendar

Since the new OWA UI has had these settings for a while now, people naturally started asking whether we can control them via PowerShell, as the old method didn’t seem to reflect any of the changes made in the UI and vice versa. After checking with Microsoft, this is confirmed to be the expected behavior, since the feature is now powered by a new, RESTful API. Instead of using the *-MailboxCalendarConfiguration cmdlets, going forward one should use the *-TxpUserSettings set of cmdlets to manage the feature. Here’s how the cmdlets work.

To view the current settings for a given user, use the Get-TxpUserSettings cmdlet:

Get-TxpUserSettings -Identity user@domain.com

TxpDisableReason                 : None
CreateEventsFromEmailAsPrivate   : True
EntityTypeProcessorLevelSettings : {Invoice, RentalCarReservation, EventReservation, FoodEstablishmentReservation, FlightReservation, ServiceReservation, LodgingReservation, ParcelDelivery}

or to get the actual per-event settings:

(Get-TxpUserSettings -Identity user@domain.com).EntityTypeProcessorLevelSettings

Name                           Value
----                           -----
Invoice                        Disabled
RentalCarReservation           Calendar
EventReservation               Calendar
FoodEstablishmentReservation   Calendar
FlightReservation              Calendar
ServiceReservation             Email
LodgingReservation             Calendar
ParcelDelivery                 Calendar

To change the settings, use the Set-TxpUserSettings cmdlet, which features the following parameters:

  • CreateEventsFromEmailAsPrivate – toggle this flag to force any Events from email to be marked as private in your calendar
  • ResetSettings – use this parameter to reset the settings to their default values
  • EventReservationProcessingLevel – set the level for Event reservation events. Possible values are: Disabled, Email and Calendar, with the later corresponding to the “show event summaries in email and on my calendar” value from the UI
  • FlightReservationProcessingLevel – as above, for Flight reservation events
  • FoodEstablishmentReservationProcessingLevel – as above, for Dining reservation events
  • InvoiceProcessingLevel – as above, for Billing events
  • LodgingReservationProcessingLevel – as above, for Hotel reservation events
  • ParcelDeliveryProcessingLevel – as above, for Package delivery events
  • RentalCarReservationProcessingLevel – as above, for Rental car reservation events
  • ServiceReservationProcessingLevel – as above, for Service reservation events

As an example, here’s how to toggle the value for the Event reservation settings:

Set-TxpUserSettings -Identity user@domain.com -EventReservationProcessingLevel Email

(Get-TxpUserSettings -Identity user@domain.com).EntityTypeProcessorLevelSettings.EventReservation

In case you want to make the changes in bulk, you can still pipe or loop across all mailboxes as needed. Be careful though, as the new cmdlets only work with SMTP address values for the Identity parameter:

Any of the SMTP addresses assigned to a user would do, but not aliases, GUIDs, UPNs and such. And as with other REST-based APIs, you might run into issues with some special characters. Hopefully those will be addressed in the future.

This entry was posted in Exchange Online, Office 365, PowerShell. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.