Thursday, October 24, 2019

SOGo calendar and contact migration into Office 365

We have migration from SOGo calendar and contacts to Office 365 working in  our lab.

As usual, drop us a line if you're interested.

Tuesday, September 10, 2019

MIT Media Lab investigation uses calendar info

I read MIT Will Investigate Media Lab's Ties to Jeffrey Epstein Following Director's Resignation as just another "yeah, people will do just about anything for money" article until I came to this part:

On Ito’s calendar, which typically listed the full names of participants in meetings, Epstein was identified only by his initials. Epstein’s direct contributions to the lab were recorded as anonymous.
(underlining mine)

THIS is really interesting!

If you want to know how to do stuff like this forensically (or even proactively) in Exchange or Office 365 let us know -- our wheels are already turning on this and a few other things.  

Tuesday, June 18, 2019

Google Calendar Outages

Because this is a calendaring blog and we should be keeping track of stuff like this:

Google Calendar Dies One Hour After Google Tweets About How Great It Is [Update]

The most interesting thing in this article was the  link to the G Suite status dashboard which, frankly, I have difficulty finding off the main G Suite "Give us your money NOW" site.

Tuesday, May 07, 2019

Office 365 and Your Work-Life Calendar Dichotomy

One of our spouses took a job that requires a lot of travel.  This exacerbated the already delicate? Tenuous? Intricate? Complicated? Spouse work-life schedule negotiation. Ironically, this is the same poorly-addressed issue that we’ve seen in enterprise calendaring since the 1990s.

Our real-world scenario: We use Exchange / Office 365 at work and need to coordinate home life / spouse / children / significant others in on various events.  You know what we’re talking about: airport drop-off/pick-ups, dentist appointments, visits, children performances, mother-in-law prescriptions, that kind of thing.

To date, we’ve found two options:
  • Sharing calendars.  This can be an entire calendar, or a partial calendar.
  • Forwarding / copying individual events or create a meeting and invite the spouse

Each option has pros and cons.   But none feel exactly right for the majority of situations we’ve encountered without a lot of pain on someone’s side.  

It’s too darned complicated and doesn’t work well in real life.

Roh-Roh George

The two options are, at best, half-baked partial solutions.  This is our efforts to work through our thinking, in the troll-defying pages of our calendar nerd blog, in hopes of soliciting your feedback, comment, diatribes, or even constructive ideas.  We have our own ideas as you’ll see near the conclusion.  We’re going to walk through the various ways we’ve tried to synchronize with the spouse:

  • Shared Calendars (Shared vs exports)
  • Meetings
  • Create a separate “Google Calendar” and share it
  • Forward/Copy
For example: We have a corporate person (let’s call her Judy) and her work-at-home husband (let’s call him Zyg) trying to navigate the work-life problem.

Share your entire calendar
Sharing / publishing one calendar is well-documented and akin to making someone a delegate. 

Although sharing/publishing one’s calendar is well documented, it depends upon if you are connected to Office 365 (or not).  Here are the choices: If you are an Office 365 user, right-click on the calendar and select share: 

If you the at-home outlook user, pick share from the “Home” tab in Outlook calendar:

But in a corporate environment sharing your calendar with someone Judy of the organization is never going to fly.  Security concerns alone keep knowledge workers like Judy from putting their work calendar on-line.  (We agree!) 

Zyg may be able to put his life online, and Judy can (usually? Sometimes?) subscribe to it.  But the downside is that she views that calendar as a separate entity.  She may need to copy events to her calendar.  Well and good, except then these events are copies which are NOT updated if Zyg makes changes.  

Still it’s better than nothing.

Where this works well is for public events that are informational with schedules published well in advance (rather than mission-critical or last-minute), e.g.:  sports schedules, concert tour dates, corporate training.  Note also that these events WANT to be widely-known as opposed to the security attached to corporate or private calendars.

When Zyg got an email announcing a videogame stream, he had the option of putting it into his calendar.  Rather than a single event, Gearbox Software subscribed him to an entire calendar.  
Marketing over-kill if ever there was, but it solved one of the key problems of this in the Outlook interface: the multi-step process of clicking on a link for an ICS and then having to save and import the ICS.

Share a part of your calendar

There is another option to publishing your entire calendar, sending a partial calendar.  Outlook makes this easy, visually pleasing, and security-conscious.  Who’d have thunk it?
Zyg gets something that looks like this from Judy as he tries to work out what’s available for date-night options or in-law visits.
But again, this is a one-off as opposed to a real-time shared “calendar” solution.  It also doesn’t say if she’s in town, or in Charlotte, Chattanooga, Charleston, or Columbus

Make it a meeting

Yes, if Judy needs coverage during a dental procedure, she can simply propose a meeting to Zyg.  It shows up in his calendar (regardless of the client or back-end he’s viewing it on) and it’s updated when Judy updates it.  But is this can be informational.  So why does it show up as Busy, blocking Zyg's availability? Or does Judy really need Zyg to pick her up from the dentist?  Still, a viable solution as long as it’s between small numbers of people for a specific purpose. (And Zyg can always change that meeting on his calendar to free…..)
But sometimes Judy’s workday extends into the evening.  It would be nice to let Zyg know she’s going to be late so the kids don’t die of hunger or dinner burned beyond recognition. For example, the quarterly shareholders call runs from 4 PM to 7 PM. Judy wants Zyg to know.  She cannot add him to the Attendee List.  Let’s face it, that’s weird and nobody on either end wants that.

Separate “Google Calendar” and shared Between Zyg and Judy

Yes, Judy can copy her key items to a Google calendar, and share it with Zyg.  But keeping that current is never going to happen, particularly if Judy doesn’t manage her schedule. Although it’s conceptually a good idea, it falls apart in reality.

Copying an event

Judy has three choices:

  1. She could forward Zyg a copy of the meeting (but again, he gets a guest list, which is weird and dangerous).
  2. She could create a new event to let Zyg know / email it.  Which is never going to happen unless her admin does it and that’s now straining the system. 
  3. She could text Zyg at 7:30 from the parking garage saying she’s going to be late for dinner. (This, of course, is the one typically does.)
Getting creative with Resource Designations

One of our teammates suggested Judy get really clever and add Zyg to the meeting as a resource.  This effectively bcc:'s Zyg to the calendar event .  This works only if: Judy is the organizer, and Judy’s Admin remembers to do it.   This had several benefits:

  • Zyg did NOT show up on the meeting list of attendees (!)
  • Zyg DID get updates to the meeting status

  • Zyg really doesn’t need (or want!) to see the details
  • This breaks if there is no location (and Zyg shows up in the location!)  This could be an abuse of the system and would get Judy in trouble with corporate Security.
Then of course we discovered this is mentioned in a Microsoft article.

Consider this last situation

When you think about it this last situation solves a lot of the work-life calendar cross-over issue from the security-conscious enterprise and the starving spouse perspectives.  Judy gets to clue Zyg in where and when they need it, but it does not mess up the enterprise.

And, as though by magic, this situation was solved starting in the 1990s by some legacy calendar systems.  Dare we say it?  We dare.  Meeting Maker was one of them.

The solution is simple:  

bcc: and cc: for calendar items.

These have the advantage of allowing a corporate user to keep family members in the loops they need to be in, just as it does corporate users internally, without disrupting corporate security or adding new layers of security.

Note that these features are also incredibly useful internally.

What do you think?

As we said before, we're looking for feedback and comments.  

We'll tell you what we're thinking of doing to solve this in our next post.

Tuesday, March 05, 2019

Zimbra to Office 365 Calendar Migrator trial download

We went ahead and made the trial for our $499/server 30-day activation Zimbra to Office 365 calendar and contacts migration software available on line and via online download syndication.

You can download the trial software here.

You can see the PAD file here.

And on this very blog there are a variety of other posts about the product as well as the current state of Microsoft Graph (spoiler alert: functional but incomplete) upon which we built this.

Tuesday, February 26, 2019

Microsoft Graph Permissions for Zimbra to Office 365 Calendar Migration

This application uses Microsoft Graph, and follows its permissions reference so that this application can obtain access without a user
There are THREE STEPS you must follow
1.       Find your Office 365 Tenant ID
2.       Create a new App Registration for the Z2O365 application
3.       Update the appsettings.json file
This is the walk-through:
1.       Find your Office 365 Tenant ID in the Azure AD Portal:
a.       Login to your Microsoft 365 Admin Center or Microsoft Azure as an administrator.
b.       We found the “PREVIEW” version to be a better experience (as of 1/30/2019)
NOTE: if you select preview, you can skip this step -- you will be able to see the tenant id in the second step
c.       In the Microsoft Azure portal, click Azure Active Directory.
d.       Under Manage, click Properties. The tenant ID is shown in the Directory ID box

2.       Create a new App Registration for the Z2O365 application
a.       Login to your Microsoft 365 Admin Center or Microsoft Azure as an administrator. (you just did this above)
b.       In the Microsoft Azure portal, click Azure Active Directory.
c.       Under Manage, click App registrations (preview)
d.       Create a new Registration
                                                   i.      Enter a name (your choice)
                                                 ii.      Select accounts in this organizational directory
                                               iii.      Click Register
                                               iv.      Under View API Permissions, Add permissions calendar read/write, contacts read/write
                                                 v.      Grant Admin Consent
                                               vi.      Under Certificates & Secrets, create a Secret

3.       Update the appsettings.json file
·         Under the AppSettings, add:
o   The APP Name
o   AppTenantID
o   AppID
o   AppClientSecret

Tuesday, February 19, 2019

Non-mapping contact info in migrations from Zimbra to Office 365

It happens.

You have data in custom contact fields in Zimbra that do not map one-to-one to existing contact fields in Office 365.

So this contact, Horatio Warmonger in Zimbra has info like this:

Note his current "Note:" field in Zimbra pre-migration:

Have no fear -- Sumatra's migration takes all contact data not readily categorize-able in Office 365 and inserts it into the Notes field.

Tuesday, February 12, 2019

Calendar Recurrence Patterns NOT supported by Microsoft Graph and What Sumatra Does About Them

Microsoft is obsoleting Exchange Web Services (which is too bad since it's been working like a champ) in favor of Microsoft Graph (which is too bad since it's.... immature.)

One of the sad consequences of this is that some recurrence patterns for calendar events which can be created in EWS are impossible to create in Graph.

For example:

What does this have to do with the price of tea in San Francisco?

We're in the business of migrating calendars.

When the recurrence pattern isn't something we can re-create we get testy.

We insert in the standard format, hoping that when Microsoft Graph gets its act together to deliver something like this we're going to be seamlessly running.  Even though the results are a little weird on insert you can correct them by opening the series and re-setting in Outlook.

But we do make it easy to find these.

We tag problem recurrences with "ZimbraRecurrencePatternNotMigrated" (this is configurable on a server-basis).  So you can readily find them.

You can easily sort them all together in Calendar List view:

You can also set the color for these categories to find them in your calendar.

Note that in the above example we have the category "ZimbraMeetingsYouOrganize" (yes, the names are configurable on a per-migration basis) to help you find meetings you organize and re-propose them.  Our full-state migration process makes this step unnecessary.  But full-state is also more expensive.

Tuesday, February 05, 2019

Migrate Zimbra Calendar and Contacts to Office 365

Since 2001 Sumatra Development has been doing full-state migrations of legacy calendar systems, where meetings are functional meetings and guest lists are functional in meetings.

This is our answer to demands for a less expensive, simpler, faster migration path for smaller sites and enterprises that do not need full-state meetings.

If you can migrate your email from Zimbra to Office, you can now migrate your calendars and contacts, using the same permissions and similar methods.  No limits on the number of users you can migrate but we cap code at 30 days (we're willing to talk on timing).

This is a fast, simple method for moving calendar and contacts from Zimbra to Office 365.

So Jimi Hendrix's calendar in Zimbra:

Becomes his calendar in Office 365 in a few seconds (as opposed to a PST or an export/import).

Since this is faster, simpler, and cheaper, we do not re-create meetings in this version -- but we do make it easy for you to find meetings you organized and the guest list:

Our experience so far shows this method takes considerably less than half the time and effort on the part of Admins than our full-state solution, and that it is of course much faster than client-side solutions.


Tuesday, January 29, 2019

Conference Room Calendar Migration from Zimbra to Office 365

Our latest version of Zimbra to Office 365 calendar migration is also moving resource calendars fine.

So for instance a Zimbra resource calendar (Room_222), has a schedule that looks like this one week:

Comes into Office 365 looking like this:

Keep in mind this is also server-to-server so it's fast and much less hassle than going via PSTs.

Since this is a fast-flat migration we make this convenient on the side of the end user by including the information that the resource was booked in Zimbra.

Tuesday, January 22, 2019

Remember Exchange 2010?? If you still have it, read on....

A friendly reminder that Exchange Server 2010 End of Support is (Still) Coming.

We don't normally see Exchange except for the current version, but we feel the need to pass on info like this.

Support for Exchange 2010 ends on January 14, 2020.

Tuesday, January 08, 2019

Migrating Zimbra calendars and contacts to Office 365 via the Microsoft Graph API


Microsoft is sun-setting Exchange Web Services (EWS) which we have been using for about 10 years for migrations in favor of Microsoft Graph.  So we're porting our code to the next generation of technology.

We've got Zimbra calendar and contacts going into Office 365 via the Microsoft Graph API in our lab and are looking for a few test sites wanting to move calendars and contacts as next generation early-adopters.  

If you can run imapsync or the Microsoft email migration you can use the same permissions to move calendars for all users server-side with no intervention.

And we've radically simplified our interfaces.

If interested drop us a line via our contact page.