Keep in mind these are an email migration issue as opposed to a calendar migration issue -- but we're interested in writing about stuff to solve problems, not pass blame.
For MDaemon to Exchange public distribution lists we needed to write our own specific application. Our specific application did the mapping from legacy domain to target domain and also used our own mapping files for user/resource IDs, so .... it really kicks butt.
Nobody else we know does this.
And in general for legacy systems it may not be possible to even generate the information you need in order to make this work. As usual we're talking server-side solutions for the entire enterprise as opposed to lame client-side solutions for one freaking user at a time.
But we'll tell you how to do this if you have the chance.
Again we begin with the end business goal of migrating into Exchange or its cloud sibling clearly in mind.
Refer to: Distribution groups and EWS in Exchange and use New-DistributionGroup.
From Zimbra it's not too bad.
In Zimbra getting this information for public groups is actually very straightforward. See Zimbra.List all existing distribution list and the respective members
do zmprov gdl $i zimbraMailAlias zimbraMailForwardingAddress ;
done > /tmp/dist_list.txt
accomplishes the same thing
Now -- keep in mind, if in going into Exchange you are changing any user IDs or your domain you're going to need to do some work on the export file before you start using EWS to re-create the lists.
To export single distribution lists in Zimbra (see: https://forums.zimbra.org/viewtopic.php?t=48514)
zmprov gdl email@example.com > dist_list.txt
To create a distribution list (what Exchange refers to as a distribution group) in on-premises Exchange 2013 use
New-DistributionGroup -Name (+Additional parameters as necessary)
To create a distribution list in Office 365 / Exchange 2016
New-DistributionGroup -Name "RockIcons" -Members firstname.lastname@example.org,email@example.com,firstname.lastname@example.org,email@example.com
Dynamic Distribution Groups
And for some business purposes you want to consider Dynamic Distribution groups. You may also know these by their former name of Query-Based Groups.
These come to the fore when you have a (wait for it....) very dynamic membership in the sense of people changing roles or having a high turnover. Example: A project group or a support desk.
Check over Dynamic Office 365 Groups might come with a big cost for a good analysis of the pros and cons.