Both vendors provide migration tooling that moves mail, calendars and contacts competently. If email were the whole job, this would be a weekend. It is not, and the parts that hurt are the parts nobody inventories before starting.
Shared files are the first. Ownership models differ — Google's shared drives and Microsoft's SharePoint libraries do not map cleanly onto each other, and per-file sharing links created over years will not survive. Expect to rebuild the permission structure deliberately rather than migrate it, and treat the migration as the opportunity to clean it up.
The second is everything people built. Google Apps Script automations, forms feeding spreadsheets, spreadsheets acting as small databases for a department. These are invisible to any migration tool and often invisible to IT until they stop working. Ask every team what they would miss, and ask twice.
Third-party integrations need auditing before the cutover. Anything authenticating against the old identity provider — the HR system, the CRM, the expense tool, single sign-on to internal applications — needs reconfiguring, and discovering this on Monday morning is a bad way to discover it.
Run a coexistence period. Both platforms can route mail during a transition, and moving a pilot group first surfaces the problems while the blast radius is small. Migrating everyone in one weekend is possible and rarely worth the risk.
Retain the source tenant for longer than feels necessary. Something will be missing, and the licence cost of keeping the old system readable for a few months is trivial compared with discovering that an archive is gone.