We built this into SuUNDO, one of our flexible utilities for modifying Exchange calendars (usually to clear stuff out).
You're going to need to do be issuing commands from PowerShell. There is of course installation and configuration, which in the interests of brevity we cut out here. The great thing about PowerShell is its scripting flexibility.
Let's take a look at a sample Lync meeting in Office 365.
If we just wanted to find out how many current meetings are in Zyg's calendar we could just do this:
get-StringsinNotes @LyncCmds -NewPrimarySMTPAddress: "email@example.com"
Output to the screen generates this (telling us this user has one current Lync meeting)
This is recorded in a log file as well.
So far so good -- this can tell us the extent of the number of online meetings that would need to change for all users.
Now, let's take the next step and update them.
Let's say this was an on-premises Exchange installation (it's not, but one of the Cloud's best attributes is as a test system) and we needed to modify just the domain names for these users, from "lync.com" to "sumatra.onmicrosoft.com"
This command will do it:
set-StringsinNotes @LyncCmds -NewPrimarySMTPAddress: "firstname.lastname@example.org" -OldPrimarySMTPAddress: "email@example.com" -OldSIPAddress: "lync.com" -NewSIPAddress: "sumatra.onmicrosoft.com"
And we see the results in the original calendar here:
And now for the magic part, it has been automatically updated in the ATTENDEES' calendars as well!
Of course, you could also use this for updating when users change SMTP addresses only (or both together!),