Set-MailboxCalendarFolder

This cmdlet is available in on-premises Exchange and in the cloud-based service. Some parameters and settings may be exclusive to one environment or the other.

Use the Set-MailboxCalendarFolder cmdlet to configure calendar publishing or sharing settings on a mailbox for the visibility of calendar information to external users. To add or modify the permissions so internal users can access the calendar, use the Add-MailboxFolderPermission or Set-MailboxFolderPermission cmdlets.

For information about the parameter sets in the Syntax section below, see Exchange cmdlet syntax.

Syntax

Set-MailboxCalendarFolder
   [-Identity] <MailboxFolderIdParameter>
   [-Confirm]
   [-DetailLevel <DetailLevelEnumType>]
   [-DomainController <Fqdn>]
   [-PublishDateRangeFrom <DateRangeEnumType>]
   [-PublishDateRangeTo <DateRangeEnumType>]
   [-PublishEnabled <Boolean>]
   [-ResetUrl]
   [-SearchableUrlEnabled <Boolean>]
   [-SetAsSharingSource]
   [-SharedCalendarSyncStartDate <DateTime>]
   [-UseHttps]
   [-WhatIf]
   [<CommonParameters>]

Description

The Set-MailboxCalendarFolder cmdlet configures calendar publishing information. The calendar folder can be configured as follows:

  • Whether the calendar folder is enabled for publishing
  • Range of start and end calendar days to publish
  • Level of detail to publish for the calendar
  • Whether the published URL of the calendar is enabled for search on the web

You need to be assigned permissions before you can run this cmdlet. Although this topic lists all parameters for the cmdlet, you may not have access to some parameters if they're not included in the permissions assigned to you. To find the permissions required to run any cmdlet or parameter in your organization, see Find the permissions required to run any Exchange cmdlet.

Examples

Example 1

Set-MailboxCalendarFolder -Identity kai:\Calendar -DetailLevel LimitedDetails

This example sets the level of details to publish for Kai's shared calendar to LimitedDetails, which means limited details are displayed.

Example 2

Set-MailboxCalendarFolder -Identity kai:\Calendar -SearchableUrlEnabled $true

This example enables the calendar in Kai's mailbox to be searchable on the web.

Parameters

-Confirm

The Confirm switch specifies whether to show or hide the confirmation prompt. How this switch affects the cmdlet depends on if the cmdlet requires confirmation before proceeding.

  • Destructive cmdlets (for example, Remove-* cmdlets) have a built-in pause that forces you to acknowledge the command before proceeding. For these cmdlets, you can skip the confirmation prompt by using this exact syntax: -Confirm:$false.
  • Most other cmdlets (for example, New-* and Set-* cmdlets) don't have a built-in pause. For these cmdlets, specifying the Confirm switch without a value introduces a pause that forces you acknowledge the command before proceeding.
Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection

-DetailLevel

The DetailLevel parameter specifies the level of calendar detail that's published and available to anonymous users. Valid values are:

  • AvailabilityOnly (default)
  • LimitedDetails
  • FullDetails

This parameter is meaningful only when the PublishEnabled parameter value is $true.

Type:DetailLevelEnumType
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online

-DomainController

This parameter is available only in on-premises Exchange.

The DomainController parameter specifies the domain controller that's used by this cmdlet to read data from or write data to Active Directory. You identify the domain controller by its fully qualified domain name (FQDN). For example, dc01.contoso.com.

Type:Fqdn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-Identity

The Identity parameter specifies the calendar folder that you want to modify. The syntax is MailboxID:\ParentFolder[\SubFolder].

For the value of MailboxID, you can use any value that uniquely identifies the mailbox. For example:

  • Name
  • Alias
  • Distinguished name (DN)
  • Canonical DN
  • Domain\Username
  • Email address
  • GUID
  • LegacyExchangeDN
  • SamAccountName
  • User ID or user principal name (UPN)

Example values for this parameter are [email protected]:\Calendar or John:\Calendar

Type:MailboxFolderIdParameter
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection

-PublishDateRangeFrom

The PublishDateRangeFrom parameter specifies the start date of calendar information to publish (past information). Valid values are:

  • OneDay
  • ThreeDays
  • OneWeek
  • OneMonth
  • ThreeMonths (This is the default value)
  • SixMonths
  • OneYear

This parameter is meaningful only when the PublishEnabled parameter value is $true.

Type:DateRangeEnumType
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online

-PublishDateRangeTo

The PublishDateRangeTo parameter specifies the end date of calendar information to publish (future information). Valid values are:

  • OneDay
  • ThreeDays
  • OneWeek
  • OneMonth
  • ThreeMonths (This is the default value)
  • SixMonths
  • OneYear

This parameter is meaningful only when the PublishEnabled parameter value is $true.

Type:DateRangeEnumType
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online

-PublishEnabled

The PublishEnabled parameter specifies whether to publish the specified calendar information. Valid values are:

  • $true: The calendar information is published.
  • $false: The calendar information is not published. This is the default value.
Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online

-ResetUrl

The ResetUrl switch replaces the existing non-public URL with a new URL for a calendar that has been published without being publicly searchable. You don't need to specify a value with this switch.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online

-SearchableUrlEnabled

The SearchableUrlEnabled parameter specifies whether the published calendar URL is discoverable on the web.

  • $true: The published calendar URL is discoverable on the web.
  • $false: The published calendar URL is not discoverable on the web. This is the default value.

This parameter is meaningful only when the PublishEnabled parameter value is $true.

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online

-SetAsSharingSource

The SetAsSharingSource switch specifies whether to set the calendar folder as a sharing source. You don't need to specify a value with this switch.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2016, Exchange Server 2019, Exchange Online

-SharedCalendarSyncStartDate

This parameter is available only in the cloud-based service.

Note: This parameter is supported only for shared calendars that have been upgraded as described in Calendar sharing in Microsoft 365, and is not applicable to any other type of calendar or mailbox folder.

The SharedCalendarSyncStartDate parameter specifies the limit for past events in the shared calendar that are visible to delegates. A copy of the shared calendar within the specified date range is stored in the delegate's mailbox.

To specify a date/time value for this parameter, use either of the following options:

  • Specify the date/time value in UTC: For example, "2021-05-06 14:30:00z".
  • Specify the date/time value as a formula that converts the date/time in your local time zone to UTC: For example, (Get-Date "5/6/2021 9:30 AM").ToUniversalTime(). For more information, see Get-Date.

Notes:

  • You use this parameter on the shared calendar in the delegate's mailbox. For example, Set-MailboxCalendarFolder -Identity [email protected]:DelegateSharedCalendarFolderId" -SharedCalendarSyncStartDate (Get-Date "5/6/2023 9:30 AM").ToUniversalTime(). DelegateSharedCalendarFolderId is the FolderId of the shared calendar in the delegate's mailbox (for example, Get-MailboxFolderStatistics -Identity [email protected] -FolderScope Calendar | Format-List Name,FolderId).
  • Users need to have FullDetails, Editor, or Delegate access to the specified shared calendar.
  • Setting this parameter might cause events in the shared calendar to briefly disappear from view while the calendar is resynchronized.
  • The value of this parameter is used when initializing the calendar folder sync. After that, every new, updated, and deleted item is processed and synced, regardless of the SharedCalendarSyncStartDate parameter value.
Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-UseHttps

The UseHttps switch specifies whether to use HTTPS for the published URL of the calendar folder. You don't need to specify a value with this switch.

This switch is meaningful only when the PublishEnabled parameter value is $true.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2016, Exchange Server 2019, Exchange Online

-WhatIf

The WhatIf switch simulates the actions of the command. You can use this switch to view the changes that would occur without actually applying those changes. You don't need to specify a value with this switch.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019, Exchange Online, Exchange Online Protection

Inputs

Input types

To see the input types that this cmdlet accepts, see Cmdlet Input and Output Types. If the Input Type field for a cmdlet is blank, the cmdlet doesn't accept input data.

Outputs

Output types

To see the return types, which are also known as output types, that this cmdlet accepts, see Cmdlet Input and Output Types. If the Output Type field is blank, the cmdlet doesn't return data.