Wednesday, May 25, 2011

Inserting holidays into hosted Exchange without an Outlook client

Holidays.We've been doing them server-side for years now.
So extending Decaf to insert holiday files was not too much of a stretch.
Since we focus on migrating OCS to Exchange, we used the relevant parts of their ICS format for our template.
Create a text file using this template to insert holidays:

BEGIN:VCALENDAR
BEGIN:VEVENT
TRANSP:TRANSPARENT
SUMMARY:New Year’s Day
STATUS:CONFIRMED
LOCATION: Any time zone in your system
DESCRIPTION: No work day
DTSTART;VALUE=DATE:20120101
DTEND;VALUE=DATE:20120101
END:VEVENT
END:VCALENDAR
BEGIN:VCALENDAR
BEGIN:VEVENT
TRANSP:TRANSPARENT
SUMMARY:Holiday on the 14th
STATUS:CONFIRMED
LOCATION: Company-Wide
DESCRIPTION: Suppose Jan 14 was a holiday in your company
DTSTART;VALUE=DATE:20120114
DTEND;VALUE=DATE:20120114
END:VEVENT
END:VCALENDAR


This will insert server-side and happen on the given dates, regardless of time zone (!) So a user in the USA or Canada need only put one holiday file together and can use it for all users.

And you go here to insert it.  Our usual restrictions apply.  Of course UNDO works for this.

As always, any feedback is welcome.

We're debating whether to include an option to insert for all users on a domain -- which is certainly possible but we're a little leery if it's in demand.

Wednesday, May 18, 2011

Sumatra Decaf: Insert Oracle Calendar ICS into Hosted Exchange

We made our street cred on full-state migrations server-side to server-side.
But there have been folks who either want to try out just ONE user or go for a simpler migration that trades off full-state migration for something faster and simpler.
This is the reason we've done Sumatra Decaf which we're now happy to open for general inspection at http://www.sumatraresourcewatch.com/decaf
A few things to note:
  • This works only for hosted Exchange (e.g., Live at Edu, Office365, BPOS)
  • We keep track of the domains that insert and limit it to 5 accounts on that domain by default
  • We've geared this to the ICS exports from Oracle Calendar System. Others MIGHT work, but they are a lower priority to us. Each ICS upload is limited to 1 Mb and it inserts only from Today (i.e., the date you are inserting) forward.
  • In a few days we'll show you how to use this to insert holidays server-side.
  • Read the Help PDF at the site for more information.

Sunday, May 15, 2011

Silverlight web service times out after 60 seconds

For Silverlight apps with web services calls that time out after 60 seconds:

You've set httpRuntime executionTimeout and binding SendTimeout, but your app still times out after 60 seconds. The problem is the CLIENT, not the server, is timing out.

In your Silverlight app, set a timeout after you instantiate your service client. For example, set a 30 min timeout on your service called "mySvc:"

mySvc.ChannelFactory.Endpoint.Binding.SendTimeout = New TimeSpan(0, 30, 0)

Friday, May 13, 2011

Creating All Day Events with EWS in Office365

You might remember our recent post:




about the head trip that we went through with migrating all day events into Exchange using EWS and how weirdly the display was different between versions of Outlook and OWA.


Well we're adding this to tell you it's the same head trip in Office365 (no real surprise there but we just feel the need to document it).


Thursday, May 05, 2011

Web-Based, one-step Oracle Calendar to Hosted Exchange migration


This is an early look at something we call Sumatra Decaf and a call for informed consent volunteers.


We've built a really good business out of migrating calendars full-state into Exchange.


But some folks do not need the whole magilla and are just looking for the simplest way of getting data from your legacy system into Exchange in a "good enough" fashion. So we've done that as well.


So yea, we have server-side ICS insertions to Hosted Exchange.


Let's take a look at Puffy Amiumi's calendar in OCS (also in Japanese Standard Time)






Use UNIICAL to export it and then read it into our web-based application (shown here in Alpha):






and in Outlook Web Access on Live at Edu, the results look like this:




Notice we're prefacing them with _TEST_ for the moment to make sure it does not get into the wild before we're ready.


The 5:00 PM Meeting at which Puffy is a guest looks like this in the agenda so that you know who's organized it and who else is supposed to be there.


Quick, simple, and executable without a lot of prep time.


Now our other option for a migration remains: longer, planned, and full-featured.
We're looking at how we want it to evolve and would welcome some input from you folks.


Thursday, April 28, 2011

Progress on migrations to Google Calendar

We're kind of psyched because we've made the first real progress on Oracle Calendar / Meeting Maker / Zimbra full-state migration to (*shudder*) Google Calendar.
Check out this screenshot from our latest tech:


The important thing is the yellow highlighting. Yep -- we got attendees in with their responses.
Now we're working on the mappings and recurrences. So those of you out there stay tuned -- there is light at the end of the tunnel

Monday, April 04, 2011

Creating a Room in Office 365 Beta

Working in Office 365 Beta we found it very simple to set up users but a little confusing to set up a Conference Room. So we're documenting the process here. First create the room as though it were a regular old user, like so (you could do all this through PowerShell but I like the simplicity of the Office 365 Admin interface): Now use PowerShell to set up your session: $LiveCred = Get-Credential This will prompt you for your admin credentials on Office 365. Follow this with the next two commands: $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic –AllowRedirection and Import-PSSession $Session You are now ready to rock and roll by changing your “room” into a ROOM. This PowerShell command will now transform the ID into a Room. Set-Mailbox room222 –Type Room Check this by trying to add it in Outlook: And we’re certain that it is now behaving like a room! Since you’re here you might as well also configure the room as you wish. My preference for daily use (though for a calendar migration you’d want to turn OFF AutoAccept): Set-CalendarProcessing -AutomateProcessing:AutoAccept -DeleteSubject:$FALSE -AddOrganizerToSubject:$TRUE -AllowConflicts:$TRUE -EnforceSchedulingHorizon:$FALSE Wash, rinse, and repeat for any other resources you need. When done, be a good doobie and disconnect PowerShell from Office365: Remove-PSSession $Session

Monday, March 28, 2011

Oracle Calendar Migrations and Long Resource Names

Kudos to the team at North Dakota State University for finding a bug!

If your Oracle Calendar resource name is longer than 32 characters (and those 32 characters were the same as some OTHER resource's) we weren't handling the error condition gracefully.

That is fixed in version 5.1.01 of xCalReader.

This is probably not an issue for most teams in migration but if you do not have the latest version and want it just contact us.

Friday, March 25, 2011

Outlook Live URL changes

Quoting from an email Microsoft sent, we want to remind you about upcoming URL requirements for accessing Outlook Live. Due date: June 30, 2011. It's already been extended so now is a good time to get it all done.


URL Changes

URLs that go directly to Outlook Web App, such as http://outlook.com or http://outlook.com/owa should be changed to go to http://outlook.com/ - for example, http://outlook.com/contoso.edu. To prepare for URL changes:

  • Inform your users of the change so that they can update any bookmarks they may have
  • Inform your support desk of the upcoming changes and how to help users use the new URL
  • Update any related links on Web pages and in documentation

If you are using the URL http://outlook.com/ecp to access the Exchange control panel management interface, you will also want to modify that URL to look like this: http://outlook.com/ecp/?realm=contoso.edu.

Single Sign-On Changes

Single sign-on solutions using the Live@edu SSO toolkit must make the following changes:

  • Update the Outlook URL in the web.config file as follows:
    • Change: https://outlook.com/owa”>
    • To: https://outlook.com/edu”>
  • Custom solutions have to make this change also, though the location will vary.
  • In addition, we have seen some cases where Live ID removes URL parameters, resulting in undesired behavior. To mitigate this issue, we advise that all single-sign-on solutions add the parameter exsvurl=1 as a setting in the URL. This setting will force the URL parameters to be preserved. Typically, the setting is appended to the end of the redirection URL and preceded with an ampersand, like this: https://outlook.com/edu&exsvurl=1.


Monday, March 07, 2011

Oracle Calendar / Outlook Free Busy Interchange

Free/Busy Lookups from MS Outlook into Oracle Calendar Server
Congratulations – you are dropping Oracle Calendar for Exchange. One problem: you need to stage it and you need some kind of connectivity between the two systems. This outlines how you can get Free/Busy lookups in Outlook / Exchange from OCS.
Outlook lets you have Internet Free Busy for Contacts:

SO: If we can produce IFBs for your OCS users (sorry about all the TLAs here), you can get Free-Busy lookups automatically working for your Outlook users into OCS.
One problem: The Oracle Calendar interface specifically does not create the IFB format known as VFREEBUSY:

Probably Oracle wanted to avoid exactly what we want in this case.
Not a problem. We can create VFREEBUSY from off the shelf tools in the OCS environment. In particular we will use the utility UNIICAL.
The solution works as follows:
· Select the OCS users you want to have Free-Busy available for in Outlook.
· Set up an internal share that is available to your OCS environment (you will be publishing to it) and your Exchange environment (you will be reading from it)
· One directory call “/…/EXPORT”
· Another directory call “/…/CURRENT”
· A third directory call “/…/IFB”
We’re going to take you through the process for one specific user, who we call Jimi.Hendrix
Create a batch file something like the following:

Uniical –export –u “S=Hendrix/G=Jimi” –f /…/EXPORT/jimi.hendrix.ics -n 1 –end 12/31/2011 –start 10/31/2011 –p PASSWORD
So we’re going to publish an ICS file into the /EXPORT directory.
Notes to this point: The above batch file hardcodes two dates. Obviously we want to make it general to start from TODAY and end at (TODAY + Default F/B Horizon). But let’s start with small ambitions and grow from there.

On a separate computer, we set up a process which interrogates the EXPORT ICS, compares it to the CURRENT ICS (say by comparing the MAX (CREATED) to see if it needs to parse or not), and if so moves it into the CURRENT and parses into an IFB. Practically any scripting language of your choice will work.
So what does ICS look like and what schematic takes it into IFB?

OCS ICS example
An OCS ICS file has a simple structure with a three-line preface before VEVENTS begin.
<><>
<><>For a one-time appointments we need only look at the DTSTART and the DTEND (they are in Zulu time, which is a godsend for IFB). These need to get converted into VFREEBUSY format:
FREEBUSY:DTSTART/DTEND map to:
FREEBUSY: 20110210T140000Z/20110210T150000Z
For recurring, we need to worry about RDATE and RRULE. First RDATE (because from OCS I have not yet found an RRULE in version 9.0.4, but they DO exist in version 10.x)
In this case this maps to:
FREEBUSY:DTSTART/DTEND
FREEBUSY:RDATE(1)/RDATE(1)+(DTEND-DTSTART)
FREEBUSY:RDATE(2)/RDATE(2)+(DTEND-DTSTART)
FREEBUSY:RDATE(3)/RDATE(3)+(DTEND-DTSTART)
Etc.
NOTES TO THIS POINT: IFB so far does not appear to need to be in chrono order to function properly. Of course a maintenance release could change that in a moment.
Optimization issue: IF MAX(CREATED ) in an ICS < export =""> is there no need to parse?
OUR END POINT NEEDS TO LOOK LIKE THIS:
Microsoft Free/Busy .vfb Format – External file
-----------------------------------------------------------------
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VFREEBUSY
ORGANIZER:/o=First Organization/ou=First Administrative
Group/cn=Recipients/cn=jimi.hendrix
DTSTAMP:20070223T145148Z ; Time of FB File gene
DTSTART:20070201T050000Z ; Start of period NB:
DTEND:20070401T040000Z ; End of period
FREEBUSY:20070205T140000Z/20070205T143000Z ; Begin events
FREEBUSY:20070222T140000Z/20070222T143000Z
FREEBUSY:20070222T160000Z/20070222T163000Z
FREEBUSY:20070223T130000Z/20070223T133000Z ; Busy -- 1/2 hr mtg starting at 8AM
FREEBUSY:20070223T150000Z/20070223T153000Z ; EST = 1PM Zulu
FREEBUSY:20070224T130000Z/20070224T133000Z
FREEBUSY:20070226T140000Z/20070226T143000Z
FREEBUSY:20070228T150000Z/20070228T153000Z
FREEBUSY:20070319T140000Z/20070319T143000Z
FREEBUSY:20070319T180000Z/20070319T183000Z
FREEBUSY:20070320T160000Z/20070320T163000Z
FREEBUSY:20070321T140000Z/20070321T143000Z
FREEBUSY:20070323T140000Z/20070323T143000Z
FREEBUSY:20070326T140000Z/20070326T143000Z
FREEBUSY:20070328T140000Z/20070328T143000Z
END:VFREEBUSY
END:VCALENDAR
NOTES:
· When Outlook says “Publish 2 months” it means from the START of the current month to the end of the next month. It doesn’t roll with the day of the month.
· TIME SEQUENCE does not appear to be significant. I can move the VFREEBUSY entries around and they are still interpreted correctly for a reasonable (2 month-3 month) FB window.
What is the User Experience?
A user needs to create a Contact in Outlook
REQUIREMENTS: The contact must be in the CONTACTS folder. NOT a sub-folder, or any other folder.
Note that the email address does not need to match the IFB name.
They can then add that contact to their meeting list and see their Free/Busy just as if they were native on the Exchange server. (caveat: the timeliness of the information depends on how often you set your processes to export ICS files on the OCS side and how often you interrogate for parsing)
Do we recommend this long-term?
Heck no. But as a short-term-help-you-over-the-hump to get OUT of OCS it’s more useful in integrating the remaining OCS users into your growing Exchange environment than anything else, and it is workable with minimal effort (and real-time OCS-Exchange calendar sync is just one of those things you should cringe at).
References:
How to use the Internet Free/Busy Feature in Outlook
Using Free/Busy without Exchange Server (can be very helpful)

WARNING: Experimental evidence has shown that for this to work a contact with Internet Free Busy MUST be in your Contacts folder, not a subfolder, or a folder with any other name.

Friday, March 04, 2011

New xCalReader for using ICS format to migrate Oracle Calendar

Our latest xCalReader now reads .ics files from Oracle Calendar Server for an Exchange migration:

NB: This is because we've been picking up increasing reports of weirdness with the UNICPOUTU format. We've applied all our usual expertise to the iCal exports: including converting RDATE arrays to real recurrence patterns using RTYPE in Outlook / Exchange.
Also this includes support for Zimbra 6 migration.

Tuesday, March 01, 2011

New Mantra

Kudos to Russ for our newest mantra:

Hear it once, it's a trick.
Twice it's a special project.
Three times it's a new Sumatra product.

So the topic on the table here is Meeting Maker to Google Calendar migration (with link preservation).
We've had two requests in the last week. Is there anyone else out there?

Sunday, February 20, 2011

More Zimbra 6 to Exchange 2010 / Cloud

So I promised you could see the before and after of contacts and tasks. Here they are.

Migrates to Exchange like this:
Tasks come over with very few problems. What in Zimbra looks like this
Becomes this in Live @ Edu. It could just as easily be in Outlook -- but we're grooving on someone else keeping an Exchange server running for a change.
One thing to keep in mind: Migrating to Live @ Edu is slower than migrating into on-premises Exchange (by a factor of about 7). We're pretty sure it's going to be that way for the foreseeable future.





Friday, February 18, 2011

Zimbra 6 to Exchange 2010 calendar migration

It's been a year since Yahoo sold Zimbra to VMware (which reminded me of some of the scenes from prison movies involving cigarettes).

And now is when people are starting to contact us en masse asking if we can move their calendars from Zimbra 6 to Exchange 2010.

Yes, we can.

The way we do it is really convenient. We open the mySQL database and read all the calendar, contact, and task data directly and insert it into Exchange using our usual, field-proven process.
You heard that right: NO user intervention, one spot for an Admin to pull the data and insert the data.
So let's take a look at the BEFORE and AFTER.
Jimi Hendrix's calendar on Zimbra 6.0.7 looks like this:

After extraction and insertion into Live @ Edu it looks as we would expect:

Note, the tentative meeting is tentative, the accepted is accepted, and the declined doesn't appear because that's the way Exchange works. We keep all recurrences and the meetings are completely LIVE on live @ Edu.
But wait -- there's more.
Contacts and Tasks come along for the ride too.
But we'll show you those in a separate posting.

Friday, January 28, 2011

Color-coding your inserted calendar data

Something our QA department has been doing for almost a year now has suddenly struck me as a really really good idea suitable for blogging.
Did you know it's possible to color-code your inserted calendar data?
What amazes me is how simple it is.
In the following example we've inserted several times (with a minimal data set) adding additional digits to our usual Category string:

All you need do on an individual basis is Manage the categories (seen here in OWA our client of choice on the Cloud).

You can also use Group Policy to propagate this for everyone if that helps you out. See Configure Categories in Outlook 2007.

Wednesday, January 19, 2011

More on Live @ Edu vs. On-Premises Exchange Speed Differential

Live@EDU

On-Premises

Object Count

7675

7585

Total Time (seconds)

4193.25

597.01

Total Time (minutes)

69.89

9.95

Average Insertion time

0.55

0.08

Mode

0.41

0.05

Median

0.44

0.05

Max

9.29

3.5

Min

0.10

0.03


So our latest tests on inserting calendar items into Live@Edu vs. inserting into on-premises Exchange gives us a 7:1 time ratio.
That is: it is currently about seven times faster to migrate calendar data into your own Exchange server than it is to migrate it to Live@Edu. We've seen the same data set go far longer, but this is a good estimate to use in your planning purposes. Also yesterday another real-world site reported a figure similar to the one we found.
Just so you know.

Friday, January 07, 2011

Oracle Calendar to Exchange using UNIICAL / ICS formats

Yep. We have a version in-house we're using now -- so if any of you out there want to use ICS files to migrate to Exchange and are willing to be informed consent test sites drop us a line.
Oh yeah, same deal: we re-create meetings with responses and have put in tech to turn RDATE strings into real recurrence patterns (your Outlook client will thank you for that).

Sunday, January 02, 2011

iPhone Alarm Glitch Greets New Year

The title says it all, though the New York Times has some more information.
Apple of course offers no explanation because as all Apple employees know, Apple can do no possible wrong.

Monday, December 27, 2010

Oracle Calendar / Exchange Free/Busy

An odd combination today here in the Boston-Cambridge area. A request last week for Free/Busy interchange between OCS and Exchange, and a blizzard put one of us into the Zen-like frame of mind to come up with solutions that do not involve lots of custom programming.

If any sites currently in an OCS to Exchange migration with us want to try out Outlook based Free/Busy queries into Oracle Calendar, please drop your Sumatra contact a line.

We are looking for "informed consent experimental subjects."

Monday, December 20, 2010

Quotas and Live @ Edu Migrations

The calendar elves were busy this weekend migrating TWO former Oracle Calendar Server sites into Exchange in this Cloud thing.


One went into BPOS (one of the dumbest acronyms EVER!) which is in reality Exchange 2007, which does NOT have submission quotas. (So now you know where this is heading)


The other site went into Live @ Edu which, despite their having had their submission quotas removed for purposes of migration, found the quotas very much in place.


So this is about what you'll see if one of your users hits submission quota in a migration.


In this example we kept inserting meetings until we hit quota. So one went in fine (you see the guest list and responses) and one did NOT (it says "Invitations haven't been sent for this meeting").

Once your submission quota rolls over (and when is that exactly?) you can send this and it'll go out like a regular meeting invitation. Not fatal in a migration, but we agree, it is darned annoying.