Featured Post

Customizing the Sumatra Double Booking cmdlet

There are a simple ways to customize the Sumatra Double Booking cmdlet, and most of them involve a text editor. Let's look at the mess...

Tuesday, May 23, 2017

Customizing the Sumatra Double Booking cmdlet

There are a simple ways to customize the Sumatra Double Booking cmdlet, and most of them involve a text editor.

Let's look at the messages.txt file to see what we can modify there.


The entire point is to separate out the text sent to meeting organizers to inform them of conflicts.

Separating this from the application gives you the ability to easily customize it for your workplace social environment or to translate it into a different language.

Any text editor will do, and note that there are specified place holders, such as "(1)" for Conference Room Name that are reserved for the cmdlet.

The text in comments tells you the circumstances that generate the message.  For example:

#Message to notify One organizer (the one that came in after the booking was made  -or- trumped by a VIP)

The vips.txt file is the list of the primary SMTP addresses of VIPs who get automatic preference when you invoke the VIPsGetBookingPreference flag.


As you can see from this example, Janis Joplin will get preference over all other users in that scenario.

Finally there is license.txt, the domain-specific license that allows you to execute the cmdlet in your environment.  Copy the license key you got from Sumatra into this file:


Tuesday, May 16, 2017

Speeding your Oracle to Exchange calendar migration

Migrations are time-consuming and resource-intensive.

If you did not know this before, welcome to being woke.

The way we do them is of course even MORE time-consuming and resource-intensive because we re-create connections to attendees in meetings.  Because of the way EWS works this means more time and effort.

UNLESS... you consider that historical events do not really need to be fully-recreated.

Oh... please tell me more!

YES!  If you (say) do a full-state migration take data from (say) a month back and into the future as full-state.  

The key is the Calendar Selection Dates in your Configuration.



Your usual insertion settings for live meetings is this:  Do that for say (Today-30 days) into the Future at 2039.


For an archive / historical insertion:  Do this for (Whenever your earliest necessary date is) to (Today-30) Date.

Big warnings:
Make sure you use a different  in the _Config.xml for the historical insertion and the current insertion.  Reason: If your historical needs to be rolled back you do not want it to also remove your current data.  That's what we call a resume-generating process.

Monday, May 08, 2017

Multiple Conflicts and the Sumatra Double-Booked cmdlet

Sure -- you think USUALLY there's only going to be TWO meetings in conflict.

Our data says otherwise.

So let's look at this tortured yet realistic example:

Get-suDoubleBookedMeetings -ExchangeVersion 2013 `
-EWSurl "https://outlook.office365.com/EWS/Exchange.ASMX" `
-PrimarySMTPAddress "room222@sumatra.onmicrosoft.com" `
-DeclineConflicts `
-VIPfile "c:\users\Zyg\Desktop\suDoubleBook\vips.txt" `
-VIPsGetBookingPreference `
-ImpersonationAccount "zyg-furmaniuk@sumatra.onmicrosoft.com" `
-Credential $LiveCred `
-bw 180 `
-licensefile "c:\users\Zyg\Desktop\suDoubleBook\license.txt"

Will result in this:

We've set Janis as the VIP who gets SOLE access to the resource during the time.

Note that in this scenario the cmdlet also removed a direct-booked appointment some resource calendar human delegate put in there.


Tuesday, May 02, 2017

Oracle Communications Calendar Server to Microsoft Exchange Migration

We've been doing Oracle Calendar Server and Oracle Beehive for a while now.  The old Sun Java calendar was something we experimented with a while ago but didn't see much market for.

Then a 3000 seat migration came in for Oracle Communications Convergence Calendar Server (née iPlanet, then Sun Java calendar, etc.).

So we wrote it and added it to the regular Oracle Calendar Server migration code, running to migrate server-side into Microsoft Exchange.

As usual, we have a couple of advantages over client-side methods:


  • Meetings are meetings with guest lists and responses.
  • Recurrence patterns come over
  • Room and resource bookings are recreated
  • To-dos come over
  • We have an UNDO capability to selectively remove only the data we inserted if necessary.
  • Users and resources can be mapped to new IDs
Of course for email use imapsync.  Look through our blog for more info on how to use it and why it is the optimal solution for pretty much every situation you could be in migrating email.