I would recommend taking a look at
Guide to imapsync - Zimbra :: Wiki. imapsync is an amazing tool that does a great job of migrating mail between different servers that support IMAP. If you don't know the passwords for users on the old server and don't want to just set them to a generic password you can try using the authuser option. Have a look at
this post for an example usage.
This will not migrate calendars or contacts though. To migrate contacts the easiest way would be if you can get a .csv of the contacts some how and then import that into Zimbra.