Gmail to Outlook Migration
Migration Paths
Assess the source environment first:
| Source | Best Method | Scope |
|---|---|---|
| Google Workspace | Microsoft Data Migration Service | Org-wide, bulk |
| Google Takeout (MBOX) | Outlook Desktop Import | Per-user |
| Gmail (personal) | IMAP bridge via Outlook Desktop | Per-user |
| G Suite Legacy | Microsoft Migration Tools | Per-user or bulk |
Pre-Migration Checklist
Run through this with the client before touching anything:
- Inventory — Number of users, total mailbox sizes, largest mailbox, shared mailboxes, Google Groups
- Microsoft 365 plan — Confirm active subscription, verify admin access (Global Admin required)
- Source admin access — Google Workspace Super Admin + service account for bulk migration
- DNS access — Whoever manages MX records (registrar, Cloudflare, etc.)
- Data scope — Email only? +Contacts? +Calendars? +Drive files?
- Cutover window — When to switch MX records (weekend recommended)
- Client communication — Draft email to users about the switch, new login instructions
- Retention — Keep Google Workspace active 30 days post-migration as safety net
Method 1: Microsoft Data Migration Service (Recommended for Google Workspace)
Best for org-wide migrations from Google Workspace to Microsoft 365.
Setup
- Microsoft 365 Admin Center → Migration → Data Migration
- Select Google Workspace as source
- Create service account in Google Admin Console with domain-wide delegation
- Upload service account key file to Microsoft migration tool
- Select what to migrate: Email, Contacts, Calendars
- Choose date range filter (optional — migrate only last N months to save time)
Execution
- Add users to migrate (CSV upload for bulk:
source_email,destination_email) - Start migration — Microsoft handles delta sync automatically
- Monitor progress in Admin Center → shows per-user status
- Migration runs in background — users can keep using Gmail during this phase
CSV Format
source_email,destination_email
john@company.com,john@company.onmicrosoft.com
jane@company.com,jane@company.onmicrosoft.com
See references/csv-template.md for full template with notes.
Method 2: Google Takeout + Outlook Import
Best for individual users or when bulk migration fails.
Export from Google
- Go to Google Takeout: https://takeout.google.com
- Select Mail, Contacts, Calendar
- Choose MBOX format for mail (compatible with Outlook)
- Download archive when ready (can take hours/days for large mailboxes)
Import to Outlook
- Email: Outlook Desktop → File → Open & Export → Import/Export → Import from MBOX
- Contacts: Import Google CSV to Outlook contacts
- Calendar: Export Google Calendar as ICS, import to Outlook Calendar
Limitations: Manual per-user process, requires desktop Outlook, size limits.
Method 3: IMAP Bridge (Manual / Small Scale)
For personal Gmail accounts or when other methods fail:
- Enable IMAP in Gmail: Settings → Forwarding and POP/IMAP → Enable IMAP
- Create app password for Gmail account
- In Outlook desktop, add Gmail as IMAP account using app password
- Set up Microsoft 365 account in same Outlook profile
- Drag-and-drop folders from Gmail IMAP to Microsoft 365 mailbox
Data Mapping Considerations
| Gmail Feature | Outlook Equivalent | Notes |
|---|---|---|
| Labels | Folders | Multiple labels become copies in folders |
| Google Groups | Distribution Lists | May need manual recreation |
| Google Drive links | OneDrive links | Links break — migrate files separately |
| Gmail filters | Outlook rules | Manual recreation required |
| Hangouts/Chat history | Teams | Not directly migratable |
DNS / MX Cutover
After migration data is transferred:
- Verify domain in Microsoft 365 Admin Center (TXT record)
- Update MX records to Microsoft:
Priority Host 0 company-com.mail.protection.outlook.com - Set SPF:
v=spf1 include:spf.protection.outlook.com ~all - Set DKIM: Admin Center → Defender → Email authentication → Enable DKIM
- Set DMARC:
v=DMARC1; p=none; rua=mailto:admin@domain.com(start withp=none) - Autodiscover CNAME:
autodiscover.outlook.com - TTL: Lower TTL to 300 before cutover, restore to 3600 after 48h
See references/dns-records.md for copy-paste DNS templates.
Post-Migration Validation
Run these checks for every user:
- Email receiving on Outlook (send test from external)
- Historical emails present (spot-check oldest + newest)
- Folders mapped correctly (labels→folders)
- Contacts imported (check count vs Google)
- Calendar events present (check recurring events specifically)
- Google Groups recreated as Distribution Lists
- Signatures set up in Outlook
- Mobile devices re-configured (Outlook app or Exchange)
- Gmail IMAP disabled or account removed
See references/validation-checklist.md for printable per-user checklist.
Common Issues
| Issue | Fix |
|---|---|
| Migration stuck at connecting | Re-check Google service account permissions |
| Labels become nested folders | Expected — Google labels flatten to Outlook folders |
| Calendar recurring events broken | Complex recurrences may need manual recreation |
| Contacts missing phone numbers | Google exports differently — check import mapping |
| Large attachments missing | Items >150MB not migrated — export separately |
| Google Groups not migrating | Create Distribution Lists manually in Exchange Admin |
| Drive file links broken | Migrate files to OneDrive, update links manually |
| MX propagation slow | Check TTL, use dig MX domain.com to verify |
Deliverables Template
For client-facing migration projects, prepare:
- Migration Plan — Timeline, phases, user batches, rollback plan
- User Communication — Email template announcing the switch
- Admin Runbook — Step-by-step for the migration operator
- Validation Report — Per-user sign-off checklist
See references/client-templates.md for ready-to-use templates.