Trouver les heures de réunion possibles dans le calendrier Outlook

Dans un espace de travail ou une école, la recherche d’un horaire et d’un lieu de rencontre communs entraîne souvent une surcharge de travail. Les applications Microsoft Graph peuvent utiliser findMeetingTimes pour identifier les heures de réunion possibles qui satisfont à l’horaire, au lieu et à d’autres contraintes.

L’action findMeetingTimes vous permet de spécifier des conditions telles que la plage de date/heure de réunion, la durée, les participants facultatifs ou obligatoires et la nature de l’activité (activityDomain). L’action prend en considération les emplois du temps normaux et la disponibilité des participants et de l’organisateur, et suggère des horaires qui sont appropriés pour les participants et le type d’activité. Par exemple, les suggestions pour une activité liée au travail se produisent toujours pendant les heures de travail de l’organisateur et des participants, et les suggestions où les participants obligatoires sont disponibles sont classées plus haut dans la liste des suggestions.

Microsoft Office 365 vous permet de configurer des heures de travail et des fuseaux horaires pour chaque boîte aux lettres. L’action findMeetingTimes gère les variations de fuseau horaire entre l’organisateur et les participants. Par défaut, findMeetingTimes renvoie des suggestions en temps universel coordonné (UTC). Vous pouvez utiliser l’en-tête de la requête suivante pour que findMeetingTimes renvoie des suggestions exprimées dans un fuseau horaire spécifique.

Prefer: outlook.timezone="{time-zone-string}}"

Particulièrement utile pour les réunions plus importantes, vous pouvez spécifier un pourcentage (minimumAttendeePercentage) de quorum et faire en sorte que findMeetingTimes renvoie des suggestions uniquement si cette disponibilité minimale des participants est remplie.

Si findMeetingTimes ne peut pas suggérer des horaires de réunion, il en indique la raison (emptySuggestionsReason), par exemple, l’indisponibilité de l’organisateur ou d’un participant obligatoire. Grâce à cette valeur, vous pouvez ajuster les paramètres et appeler findMeetingTimes une nouvelle fois.

Remarque : l’action findMeetingTimes est actuellement disponible pour les boîtes aux lettres professionnelles ou scolaires de Microsoft Office 365, mais pas pour les boîtes aux lettres outlook.com personnelles.

Exemple

L’exemple suivant montre comment utiliser findMeetingTimes pour renvoyer les horaires possibles pour que 2 utilisateurs se rencontrent pendant deux heures, en tenant compte de leur disponibilité et de leur emploi du temps, et de l’absence du participant pendant un certain temps. Cette réunion impliquant seulement 2 utilisateurs, les suggestions nécessitent une présence de 100 %. L’emploi du temps des utilisateurs est présenté ci-dessous.

Calendrier de l’organisateur

Calendrier de travail de l’organisateur du 17 au 21 avril montrant les heures de disponibilité

Calendrier du participant

Calendrier de travail du participant du 17 au 21 avril montrant les heures de disponibilité

L’exemple effectue 2 appels à findMeetingTimes :

  1. Le premier appel effectue une recherche dans la plage de dates du 18 au 20 avril. Le participant étant absent du bureau les 18 et 19 avril, et aucun horaire n’étant libre le 20 avril pour les deux participants, le premier appel ne renvoie aucune suggestion pour le motif (emptySuggestionsReason) que les participants ne sont pas disponibles.
  2. Le deuxième appel recherche une disponibilité le 21 avril et renvoie une suggestion de 14 à 16 heures.

Les deux appels à findMeetingTimes incluent les paramètres suivants. Tous les paramètres pour findMeetingTimes sont facultatifs.

  • attendees : une participante, Samantha Booth, définie comme required pour la propriété type.
  • locationConstraint : ne requiert aucune suggestion de lieu
  • timeConstraint : le premier appel effectue une recherche dans la plage de date/heure du 18 avril, 9 heures au 20 avril, 17 heures ; le premier appel ne parvenant pas à proposer des heures, le deuxième appel examine le 21 avril, de 9 heures à 17 heures
  • meetingDuration : deux heures
  • returnSuggestionReasons : cet exemple nécessite un motif pour chaque suggestion
  • minimumAttendeePercentage : 100 %, puisque le participant doit être en mesure de participer à tout horaire suggéré

Première requête

Rechercher un créneau horaire libre de 2 heures pour les deux utilisateurs entre le 18 et le 20 avril.

POST https://graph.microsoft.com/v1.0/me/findMeetingTimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-type: application/json

{ 
  "attendees": [ 
    { 
      "type": "required",  
      "emailAddress": { 
        "name": "Samantha Booth",
        "address": "samanthab@contoso.onmicrosoft.com" 
      } 
    }
  ],  
  "locationConstraint": { 
    "isRequired": false,  
    "suggestLocation": false,  
    "locations": [ 
      { 
        "resolveAvailability": false,
        "displayName": "Conf room Hood" 
      } 
    ] 
  },  
  "timeConstraint": {
    "activityDomain":"work", 
    "timeslots": [ 
      { 
        "start": { 
          "dateTime": "2017-04-18T09:00:00",  
          "timeZone": "Pacific Standard Time" 
        },  
        "end": { 
          "dateTime": "2017-04-20T17:00:00",  
          "timeZone": "Pacific Standard Time" 
        } 
      } 
    ] 
  },  
  "meetingDuration": "PT2H",
  "returnSuggestionReasons": true,
  "minimumAttendeePercentage": 100
}

Première réponse

Il n’existe aucun créneau horaire de 2 heures pendant les heures de travail du 18 au 20 avril pendant lequel les deux utilisateurs sont disponibles.

HTTP/1.1 200 OK
Content-type: application/json
Preference-Applied: outlook.timezone="Pacific Standard Time"
Content-Length: 184

{
    "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.meetingTimeSuggestionsResult",
    "emptySuggestionsReason":"AttendeesUnavailable",
    "meetingTimeSuggestions":[

    ]
}

Deuxième requête

Rechercher un créneau horaire de 2 heures le 21 avril.

POST https://graph.microsoft.com/v1.0/me/findMeetingTimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-type: application/json

{ 
  "attendees": [ 
    { 
      "type": "required",  
      "emailAddress": { 
        "name": "Samantha Booth",
        "address": "samanthab@contoso.onmicrosoft.com" 
      } 
    }
  ],  
  "locationConstraint": { 
    "isRequired": false,  
    "suggestLocation": false,  
    "locations": [ 
      { 
        "resolveAvailability": false,
        "displayName": "Conf room Hood" 
      } 
    ] 
  },  
  "timeConstraint": {
    "activityDomain":"work", 
    "timeslots": [ 
      { 
        "start": { 
          "dateTime": "2017-04-21T09:00:00",  
          "timeZone": "Pacific Standard Time" 
        },  
        "end": { 
          "dateTime": "2017-04-21T17:00:00",  
          "timeZone": "Pacific Standard Time" 
        } 
      } 
    ] 
  },  
  "meetingDuration": "PT2H",
  "returnSuggestionReasons": true,
  "minimumAttendeePercentage": 100
}

Deuxième réponse

La deuxième requête findMeetingTimes suggère que les deux utilisateurs se réunissent le 21 avril, de 14 à 16 h.

HTTP/1.1 200 OK
Content-type: application/json
Preference-Applied: outlook.timezone="Pacific Standard Time"
Content-Length: 714

{
    "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.meetingTimeSuggestionsResult",
    "emptySuggestionsReason":"",
    "meetingTimeSuggestions":[
        {
            "confidence":100.0,
            "organizerAvailability":"free",
            "suggestionReason":"Suggested because it is one of the nearest times when all attendees are available.",
            "meetingTimeSlot":{
                "start":{
                    "dateTime":"2017-04-21T14:00:00.0000000",
                    "timeZone":"Pacific Standard Time"
                },
                "end":{
                    "dateTime":"2017-04-21T16:00:00.0000000",
                    "timeZone":"Pacific Standard Time"
                }
            },
            "attendeeAvailability":[
                {
                    "availability":"free",
                    "attendee":{
                        "type":"required",
                        "emailAddress":{
                            "address":"samanthab@contoso.onmicrosoft.com"
                        }
                    }
                }
            ],
            "locations":[
                {
                    "displayName":"Conf room Hood"
                }
            ]
        }
    ]
}

Étapes suivantes

Il peut arriver que tous les participants ne puissent pas participer à une réunion. Vous pouvez faire en sorte que findMeetingTimes propose un horaire si la probabilité de participation atteint un certain pourcentage, en spécifiant le paramètre minimumAttendeePercentage facultatif. Découvrez la probabilité d’une suggestion de réunion et d’autres paramètres et appliquez-les aux réunions de taille supérieure.

Après l’obtention de suggestions d’horaire de réunion, vous souhaiterez peut-être :

  1. Créer un événement et l’envoyer sous la forme d’une demande de réunion.
  2. Ajouter une pièce jointe à l’événement.

En savoir plus sur l’intégration au calendrier Outlook.