Find-MgUserMeetingTime

Suggest meeting times and locations based on organizer and attendee availability, and time or location constraints specified as parameters. If findMeetingTimes cannot return any meeting suggestions, the response would indicate a reason in the emptySuggestionsReason property.Based on this value, you can better adjust the parameters and call findMeetingTimes again. The algorithm used to suggest meeting times and locations undergoes fine-tuning from time to time. In scenarios like test environments where the input parameters and calendar data remain static, expect that the suggested results may differ over time.

Note

To view the beta release of this cmdlet, view Find-MgBetaUserMeetingTime

Syntax

Find-MgUserMeetingTime
    -UserId <String>
    [-ResponseHeadersVariable <String>]
    [-AdditionalProperties <Hashtable>]
    [-Attendees <IMicrosoftGraphAttendeeBase[]>]
    [-IsOrganizerOptional]
    [-LocationConstraint <IMicrosoftGraphLocationConstraint>]
    [-MaxCandidates <Int32>]
    [-MeetingDuration <TimeSpan>]
    [-MinimumAttendeePercentage <Double>]
    [-ReturnSuggestionReasons]
    [-TimeConstraint <IMicrosoftGraphTimeConstraint>]
    [-Headers <IDictionary>]
    [-ProgressAction <ActionPreference>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Find-MgUserMeetingTime
    -UserId <String>
    -BodyParameter <IComponents1H459T5RequestbodiesFindmeetingtimesrequestbodyContentApplicationJsonSchema>
    [-ResponseHeadersVariable <String>]
    [-Headers <IDictionary>]
    [-ProgressAction <ActionPreference>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Find-MgUserMeetingTime
    -InputObject <IUsersActionsIdentity>
    [-ResponseHeadersVariable <String>]
    [-AdditionalProperties <Hashtable>]
    [-Attendees <IMicrosoftGraphAttendeeBase[]>]
    [-IsOrganizerOptional]
    [-LocationConstraint <IMicrosoftGraphLocationConstraint>]
    [-MaxCandidates <Int32>]
    [-MeetingDuration <TimeSpan>]
    [-MinimumAttendeePercentage <Double>]
    [-ReturnSuggestionReasons]
    [-TimeConstraint <IMicrosoftGraphTimeConstraint>]
    [-Headers <IDictionary>]
    [-ProgressAction <ActionPreference>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Find-MgUserMeetingTime
    -InputObject <IUsersActionsIdentity>
    -BodyParameter <IComponents1H459T5RequestbodiesFindmeetingtimesrequestbodyContentApplicationJsonSchema>
    [-ResponseHeadersVariable <String>]
    [-Headers <IDictionary>]
    [-ProgressAction <ActionPreference>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

Suggest meeting times and locations based on organizer and attendee availability, and time or location constraints specified as parameters. If findMeetingTimes cannot return any meeting suggestions, the response would indicate a reason in the emptySuggestionsReason property.Based on this value, you can better adjust the parameters and call findMeetingTimes again. The algorithm used to suggest meeting times and locations undergoes fine-tuning from time to time. In scenarios like test environments where the input parameters and calendar data remain static, expect that the suggested results may differ over time.

Permissions

Permission type Least privileged permissions Higher privileged permissions
Delegated (work or school account) Calendars.Read.Shared Calendars.ReadWrite.Shared
Delegated (personal Microsoft account) Not supported. Not supported.
Application Not supported. Not supported.

Examples

Example 1: Using the Find-MgUserMeetingTime Cmdlet

Import-Module Microsoft.Graph.Users.Actions
$params = @{
	Attendees = @(
		@{
			Type = "required"
			EmailAddress = @{
				Name = "Alex Wilbur"
				Address = "[email protected]"
			}
		}
	)
	LocationConstraint = @{
		IsRequired = $false
		SuggestLocation = $false
		Locations = @(
			@{
				ResolveAvailability = $false
				DisplayName = "Conf room Hood"
			}
		)
	}
	TimeConstraint = @{
		ActivityDomain = "work"
		TimeSlots = @(
			@{
				Start = @{
					DateTime = "2019-04-16T09:00:00"
					TimeZone = "Pacific Standard Time"
				}
				End = @{
					DateTime = "2019-04-18T17:00:00"
					TimeZone = "Pacific Standard Time"
				}
			}
		)
	}
	IsOrganizerOptional = "false"
	MeetingDuration = "PT1H"
	ReturnSuggestionReasons = "true"
	MinimumAttendeePercentage = "100"
}
# A UPN can also be used as -UserId.
Find-MgUserMeetingTime -UserId $userId -BodyParameter $params

This example shows how to use the Find-MgUserMeetingTime Cmdlet. To learn about permissions for this resource, see the permissions reference.

Parameters

-AdditionalProperties

Additional Parameters

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Attendees

. To construct, see NOTES section for ATTENDEES properties and create a hash table.

Type:IMicrosoftGraphAttendeeBase[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BodyParameter

. To construct, see NOTES section for BODYPARAMETER properties and create a hash table.

Type:IComponents1H459T5RequestbodiesFindmeetingtimesrequestbodyContentApplicationJsonSchema
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Headers

Optional headers that will be added to the request.

Type:IDictionary
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-InputObject

Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table.

Type:IUsersActionsIdentity
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-IsOrganizerOptional

.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LocationConstraint

locationConstraint To construct, see NOTES section for LOCATIONCONSTRAINT properties and create a hash table.

Type:IMicrosoftGraphLocationConstraint
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaxCandidates

.

Type:Int32
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MeetingDuration

.

Type:TimeSpan
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MinimumAttendeePercentage

.

Type:Double
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ProgressAction

{{ Fill ProgressAction Description }}

Type:ActionPreference
Aliases:proga
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResponseHeadersVariable

Optional Response Headers Variable.

Type:String
Aliases:RHV
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ReturnSuggestionReasons

.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TimeConstraint

timeConstraint To construct, see NOTES section for TIMECONSTRAINT properties and create a hash table.

Type:IMicrosoftGraphTimeConstraint
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserId

The unique identifier of user

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Inputs

Microsoft.Graph.PowerShell.Models.IComponents1H459T5RequestbodiesFindmeetingtimesrequestbodyContentApplicationJsonSchema

Microsoft.Graph.PowerShell.Models.IUsersActionsIdentity

System.Collections.IDictionary

Outputs

Microsoft.Graph.PowerShell.Models.IMicrosoftGraphMeetingTimeSuggestionsResult

Notes

COMPLEX PARAMETER PROPERTIES

To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.

ATTENDEES <IMicrosoftGraphAttendeeBase- []>: .

  • [EmailAddress <IMicrosoftGraphEmailAddress>]: emailAddress
    • [(Any) <Object>]: This indicates any property can be added to this object.
    • [Address <String>]: The email address of the person or entity.
    • [Name <String>]: The display name of the person or entity.
  • [Type <String>]: attendeeType

BODYPARAMETER <IComponents1H459T5RequestbodiesFindmeetingtimesrequestbodyContentApplicationJsonSchema>: .

  • [(Any) <Object>]: This indicates any property can be added to this object.
  • [Attendees <IMicrosoftGraphAttendeeBase- []>]:
    • [EmailAddress <IMicrosoftGraphEmailAddress>]: emailAddress
      • [(Any) <Object>]: This indicates any property can be added to this object.
      • [Address <String>]: The email address of the person or entity.
      • [Name <String>]: The display name of the person or entity.
    • [Type <String>]: attendeeType
  • [IsOrganizerOptional <Boolean?>]:
  • [LocationConstraint <IMicrosoftGraphLocationConstraint>]: locationConstraint
    • [(Any) <Object>]: This indicates any property can be added to this object.
    • [IsRequired <Boolean?>]: The client requests the service to include in the response a meeting location for the meeting. If this is true and all the resources are busy, findMeetingTimes won't return any meeting time suggestions. If this is false and all the resources are busy, findMeetingTimes would still look for meeting times without locations.
    • [Locations <IMicrosoftGraphLocationConstraintItem- []>]: Constraint information for one or more locations that the client requests for the meeting.
      • [Address <IMicrosoftGraphPhysicalAddress>]: physicalAddress
        • [(Any) <Object>]: This indicates any property can be added to this object.
        • [City <String>]: The city.
        • [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
        • [PostalCode <String>]: The postal code.
        • [State <String>]: The state.
        • [Street <String>]: The street.
      • [Coordinates <IMicrosoftGraphOutlookGeoCoordinates>]: outlookGeoCoordinates
        • [(Any) <Object>]: This indicates any property can be added to this object.
        • [Accuracy <Double?>]: The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters.
        • [Altitude <Double?>]: The altitude of the location.
        • [AltitudeAccuracy <Double?>]: The accuracy of the altitude.
        • [Latitude <Double?>]: The latitude of the location.
        • [Longitude <Double?>]: The longitude of the location.
      • [DisplayName <String>]: The name associated with the location.
      • [LocationEmailAddress <String>]: Optional email address of the location.
      • [LocationType <String>]: locationType
      • [LocationUri <String>]: Optional URI representing the location.
      • [UniqueId <String>]: For internal use only.
      • [UniqueIdType <String>]: locationUniqueIdType
      • [ResolveAvailability <Boolean?>]: If set to true and the specified resource is busy, findMeetingTimes looks for another resource that is free. If set to false and the specified resource is busy, findMeetingTimes returns the resource best ranked in the user's cache without checking if it's free. Default is true.
    • [SuggestLocation <Boolean?>]: The client requests the service to suggest one or more meeting locations.
  • [MaxCandidates <Int32?>]:
  • [MeetingDuration <TimeSpan?>]:
  • [MinimumAttendeePercentage <Double?>]:
  • [ReturnSuggestionReasons <Boolean?>]:
  • [TimeConstraint <IMicrosoftGraphTimeConstraint>]: timeConstraint
    • [(Any) <Object>]: This indicates any property can be added to this object.
    • [ActivityDomain <String>]: activityDomain
    • [TimeSlots <IMicrosoftGraphTimeSlot- []>]:
      • [End <IMicrosoftGraphDateTimeZone>]: dateTimeTimeZone
        • [(Any) <Object>]: This indicates any property can be added to this object.
        • [DateTime <String>]: A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).
        • [TimeZone <String>]: Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.
      • [Start <IMicrosoftGraphDateTimeZone>]: dateTimeTimeZone

INPUTOBJECT <IUsersActionsIdentity>: Identity Parameter

  • [AuthenticationMethodId <String>]: The unique identifier of authenticationMethod
  • [CalendarId <String>]: The unique identifier of calendar
  • [ChatId <String>]: The unique identifier of chat
  • [ChatMessageId <String>]: The unique identifier of chatMessage
  • [ChatMessageId1 <String>]: The unique identifier of chatMessage
  • [ContentTypeId <String>]: The unique identifier of contentType
  • [DeviceLogCollectionResponseId <String>]: The unique identifier of deviceLogCollectionResponse
  • [DocumentSetVersionId <String>]: The unique identifier of documentSetVersion
  • [DriveId <String>]: The unique identifier of drive
  • [DriveItemId <String>]: The unique identifier of driveItem
  • [DriveItemVersionId <String>]: The unique identifier of driveItemVersion
  • [EventId <String>]: The unique identifier of event
  • [EventId1 <String>]: The unique identifier of event
  • [ListItemId <String>]: The unique identifier of listItem
  • [ListItemVersionId <String>]: The unique identifier of listItemVersion
  • [MailFolderId <String>]: The unique identifier of mailFolder
  • [MailFolderId1 <String>]: The unique identifier of mailFolder
  • [ManagedDeviceId <String>]: The unique identifier of managedDevice
  • [MessageId <String>]: The unique identifier of message
  • [NotebookId <String>]: The unique identifier of notebook
  • [OnenotePageId <String>]: The unique identifier of onenotePage
  • [OnenoteSectionId <String>]: The unique identifier of onenoteSection
  • [OnlineMeetingId <String>]: The unique identifier of onlineMeeting
  • [PermissionId <String>]: The unique identifier of permission
  • [PhoneAuthenticationMethodId <String>]: The unique identifier of phoneAuthenticationMethod
  • [SubscriptionId <String>]: The unique identifier of subscription
  • [TeamsAppInstallationId <String>]: The unique identifier of teamsAppInstallation
  • [TodoTaskId <String>]: The unique identifier of todoTask
  • [TodoTaskListId <String>]: The unique identifier of todoTaskList
  • [UserId <String>]: The unique identifier of user

LOCATIONCONSTRAINT <IMicrosoftGraphLocationConstraint>: locationConstraint

  • [(Any) <Object>]: This indicates any property can be added to this object.
  • [IsRequired <Boolean?>]: The client requests the service to include in the response a meeting location for the meeting. If this is true and all the resources are busy, findMeetingTimes won't return any meeting time suggestions. If this is false and all the resources are busy, findMeetingTimes would still look for meeting times without locations.
  • [Locations <IMicrosoftGraphLocationConstraintItem- []>]: Constraint information for one or more locations that the client requests for the meeting.
    • [Address <IMicrosoftGraphPhysicalAddress>]: physicalAddress
      • [(Any) <Object>]: This indicates any property can be added to this object.
      • [City <String>]: The city.
      • [CountryOrRegion <String>]: The country or region. It's a free-format string value, for example, 'United States'.
      • [PostalCode <String>]: The postal code.
      • [State <String>]: The state.
      • [Street <String>]: The street.
    • [Coordinates <IMicrosoftGraphOutlookGeoCoordinates>]: outlookGeoCoordinates
      • [(Any) <Object>]: This indicates any property can be added to this object.
      • [Accuracy <Double?>]: The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters.
      • [Altitude <Double?>]: The altitude of the location.
      • [AltitudeAccuracy <Double?>]: The accuracy of the altitude.
      • [Latitude <Double?>]: The latitude of the location.
      • [Longitude <Double?>]: The longitude of the location.
    • [DisplayName <String>]: The name associated with the location.
    • [LocationEmailAddress <String>]: Optional email address of the location.
    • [LocationType <String>]: locationType
    • [LocationUri <String>]: Optional URI representing the location.
    • [UniqueId <String>]: For internal use only.
    • [UniqueIdType <String>]: locationUniqueIdType
    • [ResolveAvailability <Boolean?>]: If set to true and the specified resource is busy, findMeetingTimes looks for another resource that is free. If set to false and the specified resource is busy, findMeetingTimes returns the resource best ranked in the user's cache without checking if it's free. Default is true.
  • [SuggestLocation <Boolean?>]: The client requests the service to suggest one or more meeting locations.

TIMECONSTRAINT <IMicrosoftGraphTimeConstraint>: timeConstraint

  • [(Any) <Object>]: This indicates any property can be added to this object.
  • [ActivityDomain <String>]: activityDomain
  • [TimeSlots <IMicrosoftGraphTimeSlot- []>]:
    • [End <IMicrosoftGraphDateTimeZone>]: dateTimeTimeZone
      • [(Any) <Object>]: This indicates any property can be added to this object.
      • [DateTime <String>]: A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).
      • [TimeZone <String>]: Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.
    • [Start <IMicrosoftGraphDateTimeZone>]: dateTimeTimeZone

https://learn.microsoft.com/powershell/module/microsoft.graph.users.actions/find-mgusermeetingtime

https://learn.microsoft.com/graph/api/user-findmeetingtimes?view=graph-rest-1.0