# Migrate Email from Google Workspace to Office 365: Gmail-Only Guide

> Move only Gmail to Exchange Online. Compare IMAP, the Exchange admin center batch and Simplified Gmail Migration, then follow the steps for the one you pick.

Source: https://www.epifive.com/blog/migrate-email-from-google-workspace-to-office-365 · Published 2026-11-15 · EpiFive

## Key takeaways

- Mail can be migrated without Drive; Drive uses a separate tool, Migration Manager.
- The EAC Google Workspace batch moves mail, rules, calendar and contacts; IMAP moves mail only.
- Simplified Gmail Migration in the Microsoft 365 admin center applies when the Google side has 1,000 mailboxes or fewer.
- Create mail users and two routing subdomains before an EAC batch, and assign Exchange licenses only after the batch starts, within 30 days.
- Switch the MX record only after the last batch completes, then wait at least 72 hours before you stop syncing.

To migrate email from Google Workspace to Office 365 (now Microsoft 365) without moving Drive, pick one of three mail paths: the automated Google Workspace batch in the Exchange admin center, Simplified Gmail Migration in the Microsoft 365 admin center, or IMAP. The first two move mail, calendar and contacts; IMAP moves mail only. The decision table below tells you which fits.

This page covers the mail-only slice of a [G Suite to Office 365 migration](https://www.epifive.com/blog/google-workspace-to-m365-enterprise-migration-guide). It does not repeat the full project plan, so keep the [migration checklist](https://www.epifive.com/blog/google-workspace-to-microsoft-365-migration-checklist) open for scheduling, Drive and decommissioning.

## Who this is for and what you will have at the end

This guide is for the admin who has been told to move Gmail to Exchange Online and nothing else: no Drive, no Google Groups, no Sites. It also suits teams that will move files later or leave them where they are for now.

At the end you will have chosen a mail method with a reason, completed the prerequisites for it, run a pilot, switched the MX record and know how to confirm that mail flows. The names Google Workspace and G Suite refer to the same Google product here; G Suite is the older name.

## Pick the method: decision table

Every row below comes from Microsoft Learn pages listed in References. The two Google-side options in the middle are different front ends over the same kind of mail migration.

| Question | EAC automated batch | Simplified Gmail Migration | IMAP |
| --- | --- | --- | --- |
| Where you run it | Exchange admin center, **Migration** | Microsoft 365 admin center, consolidated Google migration page | Exchange admin center, **Migration** |
| Mail | Yes | Yes | Yes |
| Calendar and contacts | Yes | Yes | No |
| Rules | Yes (migrated turned off) | Selectable | No |
| Size of Google tenant | Any | 1,000 mailboxes or fewer | Up to 50,000 rows per file |
| Needs mail users and routing subdomains first | Yes | The Learn page describes a guided flow with a Google Marketplace app | No, but each user needs a Microsoft 365 mailbox |
| Per-user credentials | No, uses a service account | No | Yes, an app password for each user |
| Staged batches | Yes | Select one, many or all mailboxes | Yes |

How to read it:

- **Need calendar and contacts moved with mail:** choose the EAC batch or Simplified Gmail Migration.
- **Fewer than about 1,000 mailboxes and little Exchange experience:** Simplified Gmail Migration is aimed at exactly that audience, according to Microsoft.
- **More than 1,000 mailboxes, or you want to control each step:** use the EAC batch. Microsoft states that the consolidated experience routes tenants with more than 1,000 users to the larger-tenant Gmail migration experience.
- **A handful of mailboxes where mail alone is enough:** IMAP works, but every user needs an app password, which means 2-step verification and password handling. The existing guide to [IMAP to Exchange Online migration](https://www.epifive.com/blog/imap-to-exchange-online-migration) covers IMAP in general.

The rest of this guide covers the EAC batch in full, because it applies at every size, then notes where Simplified Gmail Migration and IMAP differ.

## Prerequisites for the EAC batch

Complete these before you touch the Migration page. Microsoft says the migration will not succeed otherwise.

1. **Admin roles.** In Exchange Online, the person running the migration needs at least the **Recipient Management** role group. In Google Cloud, the account that creates the project and service account needs the Project Creator and Service Account Creator roles. Creating the JSON key also needs permission to create service account keys, and an organization policy that allows it. Role changes can take up to 15 minutes to propagate.
2. **A verified primary domain.** Add and verify `contoso.com` in Microsoft 365 with the TXT record, but do not change MX yet.
3. **Two routing subdomains.** Mail moves between the two systems during coexistence, so each side needs an address of its own:
   - `m365.contoso.com`, a Google **User alias domain** that routes to Microsoft 365. Add it as a domain in Microsoft 365 as well.
   - `gsuite.contoso.com`, a Google **User alias domain** that routes to Google, with the current Google Workspace MX record published for it.
4. **Mail users.** In the Exchange admin center, create a mail user for every person you will migrate, now or later: **Recipients** > **Contacts** > **Add a mail user**. Set the **External email address** to the Google routing address, such as `adeyoung@gsuite.contoso.com`, and the user ID to `adeyoung@contoso.com`. Add an **SMTP** proxy address at the Microsoft 365 routing domain, such as `adeyoung@m365.contoso.com`.
5. **Forwarding allowed on both sides.** Allow automatic forwarding in Google Workspace and in Exchange Online. Exchange outbound spam policies, Remote Domain settings and mail flow rules can each block it. Microsoft notes that if forwarding is disabled for a user, the migration tool cannot set the forwarding address either.
6. **MRM and archive policies off.** Microsoft recommends disabling all messaging records management and archival policies on target mailboxes before a batch, or items they delete or archive are reported as "missing". This is not a reason to remove a legal hold.
7. **Lower the MX TTL.** Set the TTL on your MX records to 3,600 seconds or less ahead of cutover. Microsoft gives this value in the IMAP guide.

Two points trip people up. If you see `GmailForwardingAddressRequiresVerificationException` during a batch, Microsoft's prerequisite page says to skip the step of creating the subdomain for forwarding on the Gmail side. And choose a subdomain of your primary domain for routing rather than `tenant.onmicrosoft.com`; Microsoft says the built-in domain occasionally causes issues it cannot help with.

## Run the batch in the Exchange admin center

The labels below are the ones in Microsoft's current instructions.

1. In the Exchange admin center, go to **Migration** and select **Add migration batch**.
2. Enter a unique name. Under **Select the mailbox migration path**, confirm **Migration to Exchange Online**, then select **Next**.
3. Select **Google Workspace (Gmail) migration** and select **Next**.
4. On **Prerequisites for Google Workspace migration**, in the **Automate the configuration of your Google Workspace for migration** section, select **Start**. Sign in with your Google admin account. When validation succeeds, a `projectid-*.json` key file downloads and the page shows a **ClientID** and a **Scope**.
5. Select the API access link. On Google's **API Clients** page, select **Add new**, paste the **ClientID** and **Scope**, and select **Authorize**. Back in the wizard, select **Next**.
6. On **Set a migration endpoint**, choose **Create a new migration endpoint** if this is your first batch. Name it and leave the defaults of **20** for **Maximum concurrent migrations** and **10** for **Maximum concurrent incremental syncs**, unless you have a reason to change them.
7. On **Gmail migration configuration**, enter the Google admin email address, select **Import JSON** and pick the downloaded key file.
8. On **Add user mailboxes**, select **Import CSV file**. For the pilot, include a few people only:

```text
EmailAddress
adeyoung@contoso.com
awilber@contoso.com
```

`EmailAddress` is required and holds the primary address of the Microsoft 365 mail user. An optional `Username` column holds the Gmail primary address when it differs.

9. On **Move configuration**, choose the **Target delivery domain**, here `m365.contoso.com`. The filtering options (**Mail**, **Calendar**, **Contacts** and **Rules**) are all checked by default; clear any you do not want, for example if users will keep their calendars elsewhere.
10. On **Schedule batch migration**, set who receives the report and how the batch starts and ends. Starting automatically and ending manually keeps the final switch in your hands. Select **Save**, then **Done**.

### The same batch in PowerShell

Microsoft documents equivalent Exchange Online PowerShell cmdlets. They are useful when you must repeat batches. Test first, then create the endpoint and the batch:

```powershell
Test-MigrationServerAvailability -Gmail -ServiceAccountKeyFileData $([System.IO.File]::ReadAllBytes("C:\somepath\yourkeyfile.json")) -EmailAddress admin@contoso.com

New-MigrationEndpoint -Gmail -ServiceAccountKeyFileData $([System.IO.File]::ReadAllBytes("C:\somepath\yourkeyfile.json")) -EmailAddress admin@contoso.com -Name gmailEndpoint

New-MigrationBatch -SourceEndpoint gmailEndpoint -Name gmailBatch -CSVData $([System.IO.File]::ReadAllBytes("C:\somepath\gmail.csv")) -TargetDeliveryDomain "m365.contoso.com"

Start-MigrationBatch -Identity gmailBatch
```

The PowerShell route also supports `-ExcludeFolder` to leave out named folders or Gmail labels, and `-SkipRules` to skip Gmail filters. The admin center wizard does not show those two parameters in the steps above.

### What happens when the batch starts

When a batch starts, each user in it changes from a mail user to a mailbox. Assign the Exchange Online license only after that moment; you have 30 days. During sync, mail sent to a migrating user at Microsoft 365 is forwarded back to the Google routing address so it lands in the original mailbox.

When the status reaches **Synced**, select the batch, then **Complete migration batch**, then **Confirm** in the **Details** pane. Completion runs one more incremental sync, removes the forwarding from Microsoft 365 to Google and adds forwarding from Google to Microsoft 365. Wait for **Completed**.

## What does not move, and what to tell users

Microsoft lists these limits for the Google Workspace migration, so announce them before the first batch:

| Data | Limitation |
| --- | --- |
| Mail | Vacation and automatic reply settings are not migrated |
| Meeting rooms | Room bookings are not migrated |
| Calendar | Shared calendars and event colors are not migrated |
| Contacts | At most three email addresses per contact; Gmail tags, contact URLs and custom tags are not migrated |
| Rules | Migrated but turned off; users should review them in Outlook before enabling |
| Large messages | The largest single message is set by tenant transport configuration, 35 MB by default |

Throughput for calendar and contacts depends on the quota for your tenant's service account on the Google side. Mailboxes over 100 GB have their own Microsoft article for migration into primary and archive mailboxes.

## Simplified Gmail Migration: where it differs

Simplified Gmail Migration (SGM) runs in the Microsoft 365 admin center. Open **Migrate your business productivity workloads to Microsoft 365**, choose the Google option and add your source domain. The **Mail** tile counts the mailboxes on the Google side. At 1,000 or fewer you get SGM; above that you are sent to the large-tenant flow.

Per Microsoft's description, the steps are:

1. Sign in to Google with migration admin credentials.
2. Install the Google Marketplace app named **Microsoft 365 Mail Migration**, which performs the Google Admin console setup.
3. Confirm your Google credentials again, review the mailbox scan and choose one, many or all mailboxes.
4. Pick regular-size or large-mailbox (over 80 GB) workflow, the date range, the data types (mail, calendar, contacts, rules, permissions, delegates) and labels or folders.
5. When all mailboxes are done, choose **Complete Migration**, change your DNS entries and confirm the change in the experience.

SGM keeps syncing new mail that lands in Google for 72 hours after you confirm the DNS change. The Learn page for SGM carried a note that the feature was not yet available worldwide while Google verified the Marketplace app, with a launch estimate of late October 2024. If you do not see the SGM flow in your tenant, use the EAC batch instead.

## IMAP: where it differs

IMAP uses an endpoint of type **IMAP** with your IMAP server name, and a CSV with the headings `EmailAddress`, `UserName` and `Password`, where the password is a Google app password for each mailbox. Google treats the connection as a less secure app, so users must have 2-step verification enabled to create app passwords. A migration file can hold up to 50,000 rows and 10 MB. Microsoft says the batch synchronizes once a day, and that you should let it run at least 72 hours before deleting it.

Because IMAP carries mail only, users import calendar and contacts themselves using Microsoft's Outlook import articles. Use IMAP when that trade is acceptable, and use a small test batch first to estimate duration.

## Switch the MX record and stop syncing

After the last batch completes:

1. Update the MX record for `contoso.com` so it points to Microsoft 365. In the Microsoft 365 admin center, select the domain and follow **Fix issues** if the setup wizard was paused.
2. Wait. Other systems can take up to 72 hours to pick up the change, and Microsoft advises waiting at least 72 hours before you stop synchronization.
3. Confirm every user works only from Microsoft 365, then delete the batch under **Migration**. Mail sent to a Gmail mailbox after that is not copied across.
4. Raise the MX TTL back to a longer value and remove the routing subdomains and extra aliases when you no longer need them.

For the full cutover sequence, see the [email migration cutover checklist](https://www.epifive.com/blog/email-migration-cutover-checklist). The [Drive migration guide](https://www.epifive.com/blog/google-drive-to-onedrive-sharepoint-migration-manager) covers the files you left behind.

## Verify and troubleshoot

Verify each pilot user in Outlook on the web: folders and message counts look right, a message sent to another Microsoft 365 user arrives, and calendar entries appear on the right dates. Check the batch's mailbox status reports for errors.

| Symptom | Likely cause and fix |
| --- | --- |
| Items reported as "missing" | MRM or archive policies deleted or moved them on the target; disable the policies and rerun verification |
| `GmailForwardingAddressRequiresVerificationException` | Skip creating the Google-side forwarding subdomain, per Microsoft's prerequisite page, or verify the forwarding address manually |
| Forwarding not set | A user's ability to set a forwarding address is disabled in Google or Exchange; enable it |
| Large mailbox stays on **Syncing** | Google bandwidth or sync limits; Microsoft links Google's limits pages and suggests alternatives such as PST import or third-party tools |
| Endpoint creation fails | Service account key creation blocked by organization policy, or missing roles; ask the Google Cloud administrator |

## What we checked

- Opened "Perform an automated Google Workspace migration to Microsoft 365 or Office 365 in EAC in Exchange Online" on learn.microsoft.com on 2026-11-15 and copied the wizard labels (Add migration batch, Google Workspace (Gmail) migration, Set a migration endpoint, Move configuration) and the defaults of 20 and 10 concurrent migrations and syncs.
- Compared the EAC steps against "Migrate business email and calendar from Google Workspace" (page dated 2026-09-25, updated 2026-10-30) on 2026-11-15; the 30-day license window and the Recipient Management role group appear on both that page and the completion page.
- Cross-checked the 1,000-mailbox SGM threshold between the consolidated migration page and the SGM page; both state 1,000 or fewer, with slightly different wording on one page ("less than 1000 seats").
- Confirmed the migration limitations table (room bookings, shared calendars, event colors, three email addresses per contact, 35 MB default message size) on the "Perform a Google Workspace migration" page.
- Confirmed the IMAP limits (50,000 rows, 10 MB file, mail only) and the 72-hour guidance on the IMAP Gmail migration page.
- Documented output: Microsoft publishes no console output for the cmdlets shown, so none is reproduced. The CSV samples follow the headers on Microsoft's pages.
- Not checked: no Google Workspace or Microsoft 365 tenant was available, so no batch was run and the Simplified Gmail Migration flow was not seen in the admin center. Steps follow Microsoft's documentation as of 2026-11-15.

Last tested: 2026-11-15

## References

- [Perform a Google Workspace migration to Microsoft 365 or Office 365](https://learn.microsoft.com/en-us/exchange/mailbox-migration/perform-g-suite-migration)
- [Perform an automated Google Workspace migration in EAC](https://learn.microsoft.com/en-us/exchange/mailbox-migration/automated-migration-neweac)
- [Google Workspace migration prerequisites in Exchange Online](https://learn.microsoft.com/en-us/exchange/mailbox-migration/google-workspace-migration-prerequisites)
- [Completion of migration batch in EAC](https://learn.microsoft.com/en-us/exchange/mailbox-migration/completion-gspace-migration-batch-neweac)
- [Perform Google Workspace migration using Exchange Online PowerShell](https://learn.microsoft.com/en-us/exchange/mailbox-migration/perform-gspace-migration-powershell)
- [Overview of the G Suite migration process in Exchange Online](https://learn.microsoft.com/en-us/exchange/mailbox-migration/how-it-all-works-in-the-backend)
- [Migrate data from Google Workspace to Microsoft 365 (consolidated experience)](https://learn.microsoft.com/en-us/exchange/mailbox-migration/consolidated-gws-migration)
- [Simplified Gmail Migration for small and medium businesses](https://learn.microsoft.com/en-us/exchange/mailbox-migration/custom-migration-small-business-from-gmail)
- [Migrate business email and calendar from Google Workspace](https://learn.microsoft.com/en-us/microsoft-365/admin/moveto-microsoft-365/migrate-email)
- [Migrate Google Workspace mailboxes to Microsoft 365 using IMAP](https://learn.microsoft.com/en-us/exchange/mailbox-migration/migrating-imap-mailboxes/migrate-g-suite-mailboxes)

## Frequently asked questions

### Can I migrate only email from Google Workspace to Office 365?

Yes. Mail is a separate workload from Drive. The Exchange admin center batch migration and Simplified Gmail Migration both move mail on its own and can also move calendar and contacts. Drive files are moved with Migration Manager, which you can skip or run later.

### Which method should I use to migrate Gmail to Exchange Online?

Use the automated Google Workspace migration batch in the Exchange admin center when you want mail, calendar and contacts moved in stages. Use Simplified Gmail Migration in the Microsoft 365 admin center if you have 1,000 mailboxes or fewer and want a guided flow. Use IMAP only when mail alone is enough, because it does not move calendar or contacts.

### Does IMAP migration move my Google Calendar and contacts?

No. Microsoft states that IMAP migration only migrates email, not calendar or contact information. Users can import their own calendar and contacts into Outlook afterward.

### When do I change the MX record when migrating Gmail to Office 365?

After every mailbox is migrated. Until then, mail for your primary domain keeps arriving at Google and is forwarded to users who have already moved. After the MX change, Microsoft advises waiting at least 72 hours before you stop synchronization.

