Skip to main content

New-MailboxCopyOptions

Define your copy options to copy Microsoft 365 Exchange Online and Google Workspace Gmail mailboxes with PowerShell

Updated over 3 weeks ago

Command

New-MailboxCopyOptions

Description

This command creates copy options to be used in a mailbox copy operation.

To learn more about your mailbox copy options, see Copy mailboxes - Copy options.

Examples

Copy only emails from the past 90 days

$src = Connect-MicrosoftOnline
$dst = Connect-MicrosoftOnline

$copyOptions = New-MailboxCopyOptions -IncludeEmails -EmailCopyRangeStart (Get-Date).AddDays(-90)

$mailboxesToCopy = Get-Mailbox -Connection $src -Id 272980f8-cba2-4b7f-b020-12ea922d92c5

$mappings = Import-MailboxMappings -SourceConnection $src -DestinationConnection $dst -Path "C:\mappings\SharegateMailboxesMapping.csv"

Copy-Mailbox -SourceConnection $src -DestinationConnection $dst -CopyOptions $copyOptions -MappingSettings $mappings -Mailboxes $mailboxesToCopy

Copy all emails

$src = Connect-Google
$dst = Connect-MicrosoftOnline
$copyOptions = New-MailboxCopyOptions -IncludeEmails
$mailboxToCopy = Get-Mailbox -Connection $src -Id 123456789012345678901
$mappings = Import-MailboxMappings -SourceConnection $src -DestinationConnection $dst -Path "C:\mappings\SharegateMailboxesMapping.csv"
Copy-Mailbox -SourceConnection $src -DestinationConnection $dst -CopyOptions $copyOptions -MappingSettings $mappings -Mailboxes $mailboxToCopy

Copy emails from a date range and include calendar events with new links

$startDate = [DateTime]::ParseExact("06-01-2024", "MM-dd-yyyy", $null)
$endDate = [DateTime]::ParseExact("12-01-2024", "MM-dd-yyyy", $null)

New-MailboxCopyOptions -IncludeEmails -EmailCopyRangeStart $startDate -EmailCopyRangeEnd $endDate -IncludeCalendar -CreateNewMeetingLinks

Copy all emails and include mailbox rules

New-MailboxCopyOptions -IncludeEmails -IncludeMailboxRules

Copy only contacts

New-MailboxCopyOptions -IncludeContacts

Copy only calendars with all events

New-MailboxCopyOptions -IncludeCalendar -CopyPastEvents

Copy only calendars with events from a specified past date

New-MailboxCopyOptions -IncludeCalendar -CopyPastEvents -CalendarCopyStartDate "2025-02-10"

Copy calendar events from today with new meeting links, mailbox rules, contacts, and emails from the past 180 days

$startDate = (Get-Date).AddDays(-180)
New-MailboxCopyOptions -IncludeEmails -EmailCopyRangeStart $startDate -IncludeCalendar -CreateNewMeetingLinks -IncludeContacts -IncludeMailboxRules

Copy all calendar events with new meeting links, mailbox rules, contacts, and emails from the past 180 days

$startDate = (Get-Date).AddDays(-180)
New-MailboxCopyOptions -IncludeEmails -EmailCopyRangeStart $startDate -IncludeCalendar -CreateNewMeetingLinks -CopyPastEvents -IncludeContacts -IncludeMailboxRules

Copy calendar events from a specified past date with new meeting links, mailbox rules, contacts, and emails from the past 180 days

$startDate = (Get-Date).AddDays(-180)
New-MailboxCopyOptions -IncludeEmails -EmailCopyRangeStart $startDate -IncludeCalendar -CreateNewMeetingLinks -CopyPastEvents -CalendarCopyStartDate "2025-01-01" -IncludeContacts -IncludeMailboxRules

Syntax

New-MailboxCopyOptions
[-IncludeEmails <SwitchParameter>]
[-EmailCopyRangeStart <DateTime>]
[-EmailCopyRangeEnd <DateTime>]
[-IncludeCalendar <SwitchParameter>]
[-CreateNewMeetingLinks <SwitchParameter>]
[-CopyPastEvents <SwitchParameter>]
[-CalendarCopyStartDate <DateTime?>]
[-IncludeMailboxRules <SwitchParameter>]
[-IncludeContacts <SwitchParameter>]

Parameters

-CalendarCopyStartDate <DateTime?>

Specifies the starting date from which the calendar events will be migrated.

Required?

False

Default value

None

Accept pipeline input?

false

Accept wildcard characters?

False

Parameter set name

(All)

Aliases

None

-CopyPastEvents <SwitchParameter>

Specifies to copy past calendar events.

Required?

False

Default value

None

Accept pipeline input?

false

Accept wildcard characters?

False

Parameter set name

(All)

Aliases

None

-CreateNewMeetingLinks <SwitchParameter>

Specifies to replace the Team links in the calendar events.

Required?

False

Default value

None

Accept pipeline input?

False

Accept wildcard characters?

False

Parameter set name

(All)

Aliases

None

-EmailCopyRangeEnd <DateTime>

Specifies the ending date from which the emails will be migrated.

Required?

False

Default value

None

Accept pipeline input?

False

Accept wildcard characters?

False

Parameter set name

(All)

Aliases

None

-EmailCopyRangeStart <DateTime>

Specifies the starting date from which the emails will be migrated.

Required?

False

Default value

None

Accept pipeline input?

False

Accept wildcard characters?

False

Parameter set name

(All)

Aliases

None

-IncludeCalendar <SwitchParameter>

Specifies to copy the mailbox calendar.

Required?

False

Default value

None

Accept pipeline input?

False

Accept wildcard characters?

False

Parameter set name

(All)

Aliases

None

-IncludeContacts <SwitchParameter>

Specifies to copy the mailbox contacts.

Required?

False

Default value

None

Accept pipeline input?

False

Accept wildcard characters?

False

Parameter set name

(All)

Aliases

None

-IncludeEmails <SwitchParameter>

Specifies to migrate the mailbox emails

Required?

False

Default value

None

Accept pipeline input?

False

Accept wildcard characters?

False

Parameter set name

(All)

Aliases

None

-IncludeMailboxRules <SwitchParameter>

Specifies to copy the mailbox rules.

Required?

False

Default value

None

Accept pipeline input?

False

Accept wildcard characters?

False

Parameter set name

(All)

Aliases

None

Did this answer your question?