Every step below is from an official source
Switch from Gmail to iCloud Mail
What to do at Gmail before you leave, what iCloud Mail needs when you join, and everything else the switch touches. Your full plan is built in your browser and stays there.
Official sources reviewed . How we review sources
At Gmail, before you leave
Forward new Gmail messages to your new addressBefore
In Gmail settings, open the Forwarding and POP/IMAP tab and click Add a forwarding address. Click the verification link sent to the new address, then select Forward a copy of incoming mail to and save.
Expect only new mail to be forwardedDuring
Gmail forwards all new messages to the other account, except spam.
Download your mail and contacts with Google TakeoutBefore
Go to the Google Takeout page, choose which products to include, then select Create export. Contacts are exported as vCard.
How to download your Google data - Google Account HelpGoogle. ReviewedKnow that a removed Gmail address is retiredAfter
Download your data before removing Gmail. Gmail deletes your emails and settings after 30 days, and no one can use your Gmail address in the future.
Remove Gmail from your Google Account - Computer - Gmail HelpGoogle. Reviewed
At iCloud Mail, when you join
Import contacts from a vCardDuring
At icloud.com/contacts, select the Add button, choose Import Contact, then select a vCard. Imported contacts are added to the All Contacts list.
Import, export, or print contacts on iCloud.comApple. ReviewedImport old mail to a custom domain addressDuring
If you use your own domain with iCloud Mail, you can import existing emails from your previous provider on iCloud.com. This isn't available for all providers, and you need enough iCloud storage.
Move other emails by hand with MailDuring
You can also move emails into iCloud Mail yourself using the Mail app on iPhone, iPad or Mac.
Then: everything else the switch affects
The steps above are what Gmail and iCloud Mail say. Your full checklist adds the accounts, codes, payments and devices that depend on your email provider, in a safe order. It's built from your answers, in your browser.