Récupération du statut de disponibilité d'un utilisateur grâce à son calendrier outlook 365

Étiquetté : ,

  • Récupération du statut de disponibilité d'un utilisateur grâce à son calendrier outlook 365

    Posté par MUD sur 31 mai 2023 à 10h51

    Bonjour à tous!

    Ceci est ma première “contribution”, un grand merci pour cet espace d’entraide, c’est vraiment top.

    Je suis confronté à un souci.

    Nous cherchons à obtenir puis afficher dans une galerie, par exemple, la disponibilité d’un autre utilisateur en passant par son calendrier outlook. Par exemple, l’utilisateur en question a une réunion de 10h à 11h. Si on filtre notre galerie au jour correspondant et entre 10h et 11h, l’utilisateur doit apparaitre “busy”.
    Nous avons essayé de créer un connecteur personnalisé grâce à graph API, en nous inspirant de ce tuto:

    Get schedule of another Office365 user in PowerApps – immersivecoder

    mais une erreur se produit à la fin de la création.

    Pensez vous qu’il existe une autre méthode pour réaliser ce projet?

    Merci par avance pour tout élément de réponse!

    Cordialement,

    MUD

    PostID=LDljy74iS1cn798

    DavidZed a répondu Il y a 10 mois, 3 semaines 1 Membre · 5 Réponses
  • 5 Réponses
  • R3dKap

    Membre
    31 mai 2023 à 13h29

    MUD voici comment procéder sans passer par un connecteur personnalisé et du Graph et tout ça… 😉

    Set(n    colTimes;n    Office365Outlook.FindMeetingTimesV2(n        {n            RequiredAttendees: "toto@titi.fr";n            Start: DateTime(2023;6;8;14;15;0;0);n            End: DateTime(2023;6;8;15;15;0;0);n            MeetingDuration: 30;n            ActivityDomain: "Unrestricted"n        }n    ).meetingTimeSuggestionsn)

    Cette action du connecteur Office365Outlook va rechercher tous les créneaux disponibles (dont la durée est indiquée dans MeetingDuration, en minutes) pour la personne dont l’adresse mail est spécifiée dans RequiredAttendees, et ce entre Start et End.

    Le résultat est une table qui ressemble à ça :

    Chaque ligne est un créneau disponible et la colonne meetingTimeSlot contient 2 champs : start et end qui correspondent aux dates/heures de début et de fin de chaque créneau.

    Avec ça tu devrais pouvoir détecter les dispos que tu veux… 😉

    CommentID=BNocz273cTfzwdt, PostID=LDljy74iS1cn798

    • MUD

      Membre
      31 mai 2023 à 14h23

      Wow! Merci pour la réactivité!

      Ça correspond tout à fait au besoin. Je vais mettre ça en œuvre.

      Merci encore!

      MUD

      SubCommentID=zc5KLT6PK8uIUQ5, CommentID=BNocz273cTfzwdt, PostID=LDljy74iS1cn798

    • R3dKap

      Membre
      31 mai 2023 à 14h53

      Avec plaisir… 😊

      Ah par contre, j’oubliais : les start et end de meetingTimeSlot, il faut leur appliquer le décalage horaire par rapport à l’UTC -> pour avoir la bonne heure (ici il y a le ThisItem passke j’affiche le colTimes dans une galerie) :

      DateAdd(ThisItem.meetingTimeSlot.start.dateTime; -TimeZoneOffset(); TimeUnit.Minutes)

      ATTENTION au signe “-” juste avant le TimeZoneOffset() 😉

      SubCommentID=DDaSb9wJBsOw0YX, CommentID=BNocz273cTfzwdt, PostID=LDljy74iS1cn798

    • MUD

      Membre
      7 septembre 2023 à 15h19

      Bonjour!

      Je reviens sur ce post car j’ai enfin inséré le code dans mon application et j’obtiens ce que je souhaitais!

      Petit ajout:
      Si quelqu’un utilise ce post plus tard, ne pas hésiter à ajouter le paramètre “MaxCandidates” pour décider le nombre d’éléments (créneaux horaires) que l’on récupère dans la collection, car il me semble que le nombre par défaut est 5, ce qui, et c’était mon cas, peut ne pas convenir.

      À nouveau, un énorme merci R3dKap 💪

      SubCommentID=VzZq5W6q2F7KQVD, CommentID=BNocz273cTfzwdt, PostID=LDljy74iS1cn798

  • DavidZed

    Membre
    31 mai 2023 à 15h50

    Si vous avez besoin d’exemple ou d’idées pour l’exploitation de données des calendrier dans Power Apps, il y a un truc très simple à faire : Ajouter une page avec le Template calendrier dans l’éditeur Power apps.

    Ce Template est super intéressant à analyser 👍

    CommentID=xgLVY63Jsetfg4X, PostID=LDljy74iS1cn798

Connectez-vous pour répondre.