Anyone have any experience doing this? Does it require the cooperation of the cloud service provider to move over mail/contacts/calendars intact or can it be done on its own?

We recently started with a cloud Zimbra provider (who I will not shame here) and our first two weeks have been, "less than stellar" would be the only way of putting it... through no fault of Zimbra the application, but entirely on the shoulders of the provider itself. :-(

I need to start formulating a plan in case I have yet to find the nadir of this situation.