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 commun 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’heure, à l’emplacement et à d’autres contraintes.

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

Dans Microsoft 365, les heures de travail et les fuseaux horaires sont configurables par 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 au format UTC. Vous pouvez utiliser l’en-tête de requête suivant pour que findMeetingTimes retourne 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 d’heures de réunion, il indique une raison spécifique (emptySuggestionsReason), telle que l’organisateur ou un participant obligatoire non disponible. 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 Microsoft 365, mais pas pour les boîtes aux lettres personnelles outlook.com.

Exemple

L’exemple suivant montre comment utiliser findMeetingTimes pour retourner les heures possibles pour que 2 utilisateurs se rencontrent pendant quelques heures, en tenant compte des horaires de disponibilité et de travail des utilisateurs, et le participant étant absent pendant une partie du temps. Étant donné qu’il n’y a que 2 utilisateurs pour cette réunion, les suggestions nécessitent une participation de 100 %. L’exemple suivant montre l’horaire de disponibilité des utilisateurs.

Calendrier de l’organisateur

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

Calendrier du participant

Le calendrier professionnel du participant pour le 17-21 avril affichant les heures de disponibilité

L’exemple effectue 2 appels à findMeetingTimes :

  1. Le premier appel se trouve dans la plage de dates du 18 au 20 avril. Comme le participant est absent du bureau du 18 au 19 avril et qu’il n’y a pas de temps couramment disponible le 20 avril, le premier appel ne renvoie aucune suggestion avec la raison (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 de 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.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.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.com"
                        }
                    }
                }
            ],
            "locations":[
                {
                    "displayName":"Conf room Hood"
                }
            ]
        }
    ]
}

Étapes suivantes

Il arrive que tous les participants ne puissent pas participer à une réunion. Vous pouvez faire en sorte que findMeetingTimes suggère une heure si la confiance de la présence atteint un certain pourcentage, en spécifiant le paramètre facultatif minimumAttendeePercentage . Apprenez-en davantage sur la confiance d’une suggestion de réunion et d’autres paramètres, et appliquez-les selon les besoins pour les réunions de plus grande taille.

Après avoir obtenu des suggestions d'heure de réunion, vous pourriez vouloir :

  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.