{"id":83675,"date":"2020-04-25T16:10:45","date_gmt":"2020-04-25T14:10:45","guid":{"rendered":"https:\/\/www.junarnoalg.com\/?p=83675"},"modified":"2024-05-19T20:05:17","modified_gmt":"2024-05-19T18:05:17","slug":"un-calendrier-partag-dans-teams","status":"publish","type":"post","link":"https:\/\/blog.teamy.be\/index.php\/2020\/04\/25\/un-calendrier-partag-dans-teams\/","title":{"rendered":"Un calendrier partag&eacute; dans Teams"},"content":{"rendered":"<p>En discutant avec S\u00e9bastien Place (<a href=\"https:\/\/splc.be\/\">https:\/\/splc.be\/<\/a>), Modern Classroom Expert chez Microsoft, nous cherchions une solution pour fournir des calendriers et\/ou agendas exploitables sous Teams \u00e0 destination des \u00e9coles. Suite \u00e0 nos \u00e9changes, j&rsquo;en \u00e9tais arriv\u00e9 \u00e0 \u00e9crire l&rsquo;article sur l&rsquo;usage de documents Excel ou Word pour rendre ces calendriers disponibles : <a href=\"https:\/\/actualites.neomytic.be\/index.php\/2020\/04\/18\/les-agendas-et-calendriers-dans-teams\/\">https:\/\/actualites.neomytic.be\/index.php\/2020\/04\/18\/les-agendas-et-calendriers-dans-teams\/<\/a><\/p>\n<p>Mais S\u00e9bastien a voulu suivre une autre voie, une approche permettant d&rsquo;exploiter le calendrier partag\u00e9 de Teams, bien que celui-ci ne soit pas disponible dans Teams. En combinant nos efforts et comp\u00e9tences, je pense que nous sommes parvenus \u00e0 proposer une solution qui m\u00e9rite de s&rsquo;y attarder<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: bold;\">Structure de Teams<\/span><\/h3>\n<p>Sans rentrer dans les d\u00e9tails, voici un sch\u00e9ma qui explique quels sont les bases technologiques de Teams<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image001-3.png\"><img fetchpriority=\"high\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image001\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image001_thumb-3.png\" alt=\"clip_image001\" width=\"904\" height=\"510\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Lorsque Microsoft a d\u00e9ploy\u00e9 Teams, ils se sont bas\u00e9s sur une technologie existante, les Groupes Office 365 (Unified Group). D&rsquo;ailleurs, ces Groupes Office 365 sont toujours disponibles et vous pouvez m\u00eame construire une \u00e9quipe Teams sur base d&rsquo;un groupe existant.<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image002-3.png\"><img decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image002\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image002_thumb-3.png\" alt=\"clip_image002\" width=\"904\" height=\"545\" border=\"0\" \/><\/a><\/p>\n<p>Les groupes Office 365 ou Modern Group, proposent toujours la notion de calendrier partag\u00e9, mais dans Teams ceux-ci ne sont pas disponibles. En fait ce n&rsquo;est pas tout \u00e0 fait vrai. Ce qui est vrai, c&rsquo;est qu&rsquo;il n&rsquo;existe pas d&rsquo;interface dans Teams pour visualiser et manipuler ce calendrier partag\u00e9, mais il reste disponible.<\/p>\n<p>&nbsp;<\/p>\n<p>Ma d\u00e9marche se base sur les faits suivants<\/p>\n<ul>\n<li>Une \u00e9quipe Teams est construite en partie sur base d&rsquo;un Groupe Office 365 qui lui propose un calendrier partag\u00e9<\/li>\n<li>Une \u00e9quipe Teams est construite en partie sur une base SharePoint, pour chaque \u00e9quipe il existe un site SharePoint<\/li>\n<li>Le calendrier partag\u00e9 provenant du Groupe Office 365,\u00a0 est disponible dans l&rsquo;espace SharePoint<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: bold;\">Cr\u00e9ation d\u2019une page SharePoint<\/span><\/h3>\n<p>Depuis Teams, sur base d&rsquo;une \u00e9quipe, il me suffit d&rsquo;acc\u00e9der au site SharePoint associ\u00e9<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image003-2.png\"><img decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image003\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image003_thumb-2.png\" alt=\"clip_image003\" width=\"904\" height=\"347\" border=\"0\" \/><\/a><\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image004-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image004\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image004_thumb-2.png\" alt=\"clip_image004\" width=\"904\" height=\"486\" border=\"0\" \/><\/a><\/p>\n<p>Le premier \u00e9l\u00e9ment \u00e0 v\u00e9rifier, sont les param\u00e8tres r\u00e9gionaux du site SharePoint, car si on veut manipuler le calendrier partag\u00e9, il faut s&rsquo;assurer que le fuseau horaire est correctement configur\u00e9. J&rsquo;ouvre donc l&rsquo;interface des \u00ab\u00a0Param\u00e8tres du site\u00a0\u00bb<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image005-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image005\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image005_thumb-2.png\" alt=\"clip_image005\" width=\"904\" height=\"443\" border=\"0\" \/><\/a><\/p>\n<p>A partir de l\u00e0, nous allons v\u00e9rifier les \u00ab\u00a0Param\u00e8tres r\u00e9gionaux\u00a0\u00bb<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image006-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image006\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image006_thumb-2.png\" alt=\"clip_image006\" width=\"904\" height=\"401\" border=\"0\" \/><\/a><\/p>\n<p>Si n\u00e9cessaire, il faut rectifier le fuseau Horaire et autres param\u00e8tres des calendriers.<\/p>\n<p>Maintenant, nous allons cr\u00e9er une page SharePoint, Page de site, pour afficher le calendrier partag\u00e9<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image007-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image007\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image007_thumb-2.png\" alt=\"clip_image007\" width=\"904\" height=\"378\" border=\"0\" \/><\/a><\/p>\n<p>A vous de configurer cette page en fonction de vos besoins.<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image008-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image008\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image008_thumb-2.png\" alt=\"clip_image008\" width=\"904\" height=\"487\" border=\"0\" \/><\/a><\/p>\n<p>Dans mon cas, j&rsquo;ai effectu\u00e9 les adaptations suivantes :<\/p>\n<ul>\n<li>Donner un titre \u00e0 la page : \u00ab\u00a0Calendrier Partag\u00e9\u00a0\u00bb<\/li>\n<li>J&rsquo;ai supprim\u00e9 l&rsquo;auteur de la page<\/li>\n<li>J&rsquo;ai d\u00e9sactiv\u00e9 les commentaires<\/li>\n<li>J&rsquo;ai retir\u00e9 le bandeau visuel d&rsquo;ent\u00eate de la page<\/li>\n<\/ul>\n<p>A ce stade-ci, il ne reste qu&rsquo;\u00e0 ajouter un composant, \u00ab\u00a0Calendrier de Group\u00a0\u00bb sur votre page<a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image009-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image009\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image009_thumb-2.png\" alt=\"clip_image009\" width=\"904\" height=\"660\" border=\"0\" \/><\/a><\/p>\n<p>Une fois le composant mis sur la page, je vous invite \u00e0 augmenter le nombre d&rsquo;\u00e9v\u00e8nements visibles sur la page<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image010-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image010\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image010_thumb-2.png\" alt=\"clip_image010\" width=\"904\" height=\"600\" border=\"0\" \/><\/a><\/p>\n<p>Il ne reste qu&rsquo;\u00e0 publier la page pour la rendre disponible<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: bold;\">Dans Teams<\/span><\/h3>\n<p>Passons \u00e0 Teams, maintenant<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image011-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image011\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image011_thumb-2.png\" alt=\"clip_image011\" width=\"904\" height=\"367\" border=\"0\" \/><\/a><\/p>\n<p>Dans les onglets, via l&rsquo;ic\u00f4ne \u00ab\u00a0+\u00a0\u00bb, nous allons ajouter un nouvel onglet de type SharePoint<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image012-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image012\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image012_thumb-2.png\" alt=\"clip_image012\" width=\"904\" height=\"535\" border=\"0\" \/><\/a><\/p>\n<p>Et s\u00e9lectionner la page qui affiche notre calendrier partag\u00e9.<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image013-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image013\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image013_thumb-2.png\" alt=\"clip_image013\" width=\"904\" height=\"924\" border=\"0\" \/><\/a><\/p>\n<p>Voici le r\u00e9sultat<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image014-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image014\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image014_thumb-2.png\" alt=\"clip_image014\" width=\"904\" height=\"390\" border=\"0\" \/><\/a><\/p>\n<p>Vous pouvez maintenant ouvrir le calendrier de votre \u00e9quipe via l&rsquo;interface Outlook pour y ajouter quelques \u00e9v\u00e8nements !<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image015-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image015\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image015_thumb-2.png\" alt=\"clip_image015\" width=\"904\" height=\"573\" border=\"0\" \/><\/a><\/p>\n<p>Attention de bien s\u00e9lectionner le calendrier de votre \u00e9quipe, au moment d&rsquo;ajouter des \u00e9v\u00e8nements. Je vous laisse le soin d&rsquo;ajouter quelques \u00e9v\u00e8nements dans ce calendrier partag\u00e9.<\/p>\n<p>Avec deux ou trois \u00e9v\u00e8nements, cela suffit pour tester le rendu visuel dans Teams. Il vous faudra peut-\u00eatre demander la synchronisation du calendrier pour voir apparaitre vos nouveaux \u00e9v\u00e8nements.<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image016-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image016\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image016_thumb-2.png\" alt=\"clip_image016\" width=\"904\" height=\"539\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: bold;\">Remarque<\/span><\/h3>\n<p>Il faut tout de m\u00eame noter qu&rsquo;en l&rsquo;\u00e9tat on parle d&rsquo;un calendrier partag\u00e9. Ce qui signifie que tous les membres de votre \u00e9quipe y ont acc\u00e8s en lecture et modification. Ils peuvent donc eux-m\u00eames y inscrire des \u00e9v\u00e8nements.<\/p>\n<p>Je vous propose maintenant un petit script PowerShell pour rendre ce calendrier accessible uniquement en lecture \u00e0 vos membres, donc dans le cas d&rsquo;une classe \u00e0 vos \u00e9l\u00e8ves.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#Input Parameters\nParam\n(\n  [Parameter (Mandatory= $false)]\n  [String] $Login=\"admin@contoso.com\",\n\n  [Parameter (Mandatory= $false)]\n  [String] $Password=\"\",\n \n  [Parameter (Mandatory= $false)]\n  [String] $UnifiedGroup =\"2e9536d0-5331-4e81-8e57-264578929bf8\"\n  \n)\n\n#Authentification\n$SecurePassword = ConvertTo-SecureString \"$Password\" -AsPlainText -Force \n$credential = new-object System.Management.Automation.PSCredential $Login, $SecurePassword -ErrorAction SilentlyContinue -ErrorVariable $AuthenticationFailed\nif($AuthenticationFailed.Count -ne 0){ Write-Host \"Credential Error $AuthenticationFailed[0]\" -f Yellow}\n\n#Open Exchange Session to get all Teams Properties\n$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri \"https:\/\/outlook.office365.com\/powershell-liveid\/\" -Credential $credential -Authentication Basic -AllowRedirection -ErrorAction Stop\nImport-PSSession $Session -DisableNameChecking -ErrorAction Stop\n\nSet-UnifiedGroup -Identity $UnifiedGroup -CalendarMemberReadOnly:$true\nGet-UnifiedGroup -Identity $UnifiedGroup -IncludeAllProperties | Format-List *Calendar*\n\nGet-PSSession | Remove-PSSession -ErrorAction SilentlyContinue<\/pre>\n<p>&nbsp;<\/p>\n<p>Les param\u00e8tres $Login et $Password, n&rsquo;ont pas besoin d&rsquo;explication, mais vous devez renseigner un compte administrateur Microsoft 365<br \/>\nPar contre le param\u00e8tre $UnifiedGroup doit lui \u00eatre renseign\u00e9 avec la valeur GroupId de votre \u00e9quipe Teams.<br \/>\nPour le trouver, rien de compliqu\u00e9, Teams vous le fournit.<\/p>\n<p>Depuis Teams &#8211; Obtenir un lien vers l&rsquo;\u00e9quipe<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image017-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image017\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image017_thumb-2.png\" alt=\"clip_image017\" width=\"904\" height=\"472\" border=\"0\" \/><\/a><\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image018-1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image018\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image018_thumb-1.png\" alt=\"clip_image018\" width=\"904\" height=\"259\" border=\"0\" \/><\/a><\/p>\n<p>Copier le lien, et coller le dans un fichier texte, vous obtiendrez ceci :<\/p>\n<p>https:\/\/teams.microsoft.com\/l\/team\/19%3aea378b2defca435cbb2b8c39c34a0667%40thread.tacv2\/conversations?groupId=2e9536d0-5331-4e81-8e57-264578929bf8&#038;tenantId=7697c276-436a-484c-88e7-073acedg94e2<\/p>\n<p>Le GroupId est disponible dans le lien !<\/p>\n<p>&nbsp;<\/p>\n<p>La commande Set-UnifiedGroup va vous renvoyer un warning, stipulant qu&rsquo;aucune propri\u00e9t\u00e9 n&rsquo;a \u00e9t\u00e9 mise \u00e0 jour, car en effet -CalendarMemberReadOnly:$true ne fait que changer un \u00ab\u00a0switch\u00a0\u00bb.<\/p>\n<p>Mais via la commande Get-UnifiedGroup -Identity $UnifiedGroup -IncludeAllProperties | Format-List *Calendar*, vous allez pouvoir v\u00e9rifier la valeur de CalendarMemberReadOnly<\/p>\n<p><a href=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image019-1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"clip_image019\" src=\"https:\/\/blog.teamy.be\/wp-content\/uploads\/2020\/04\/clip_image019_thumb-1.png\" alt=\"clip_image019\" width=\"904\" height=\"121\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Donc voici une approche diff\u00e9rente, pour mettre en place un calendrier de devoirs, un agenda de cours, ou tout autre type d&rsquo;\u00e9v\u00e8nement.<\/p>\n<p>En esp\u00e9rant que cette approche puisse vous servir. Merci de votre lecture.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En discutant avec S\u00e9bastien Place (https:\/\/splc.be\/), Modern Classroom Expert chez Microsoft, nous cherchions une solution pour fournir des calendriers et\/ou<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_layout":"default_layout","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[174,22,166,23,164],"tags":[213],"class_list":["post-83675","post","type-post","status-publish","format-standard","hentry","category-exchange","category-microsoft-365","category-powershell","category-sharepoint","category-microsoft-teams","tag-post"],"views":17323,"_links":{"self":[{"href":"https:\/\/blog.teamy.be\/index.php\/wp-json\/wp\/v2\/posts\/83675","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.teamy.be\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.teamy.be\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.teamy.be\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.teamy.be\/index.php\/wp-json\/wp\/v2\/comments?post=83675"}],"version-history":[{"count":1,"href":"https:\/\/blog.teamy.be\/index.php\/wp-json\/wp\/v2\/posts\/83675\/revisions"}],"predecessor-version":[{"id":85937,"href":"https:\/\/blog.teamy.be\/index.php\/wp-json\/wp\/v2\/posts\/83675\/revisions\/85937"}],"wp:attachment":[{"href":"https:\/\/blog.teamy.be\/index.php\/wp-json\/wp\/v2\/media?parent=83675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.teamy.be\/index.php\/wp-json\/wp\/v2\/categories?post=83675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.teamy.be\/index.php\/wp-json\/wp\/v2\/tags?post=83675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}