private static async Task <SharePointList> CreateChallengingPassengersListAsync(GraphService graphClient, string groupId, string channelId)
        {
            // Get the team site
            var teamSite = await graphClient.GetTeamSiteAsync(groupId);

            var challengingPassengers = new SharePointList
            {
                DisplayName = "Challenging Passengers",
                Columns     = new List <ColumnDefinition>()
                {
                    new ColumnDefinition
                    {
                        Name = "Name",
                        Text = new TextColumn()
                    },
                    new ColumnDefinition
                    {
                        Name = "SeatNumber",
                        Text = new TextColumn()
                    },
                    new ColumnDefinition
                    {
                        Name = "Notes",
                        Text = new TextColumn()
                    }
                }
            };

            // Create the list
            var createdList = await graphClient.CreateSharePointListAsync(teamSite.Id, challengingPassengers);

            if (createTabs)
            {
                // Add the list as a team tab
                var listTab = new TeamsChannelTab
                {
                    Name          = "Challenging Passengers",
                    TeamsAppId    = "com.microsoft.teamspace.tab.web",
                    Configuration = new TeamsChannelTabConfiguration
                    {
                        ContentUrl = createdList.WebUrl,
                        WebsiteUrl = createdList.WebUrl
                    }
                };

                await graphClient.AddTeamChannelTab(groupId, channelId, listTab);
            }

            return(createdList);
        }
        private static async Task CreatePreflightPlanAsync(GraphService graphClient, string groupId, string channelId, DateTimeOffset departureTime)
        {
            // Create a "Pre-flight checklist" plan
            var preFlightCheckList = new Plan
            {
                Title = "Pre-flight Checklist",
                Owner = groupId
            };

            var createdPlan = await graphClient.CreatePlanAsync(preFlightCheckList);

            logger.Info("Create plan");

            // Create buckets
            var toDoBucket = new Bucket
            {
                Name   = "To Do",
                PlanId = createdPlan.Id
            };

            var createdToDoBucket = await graphClient.CreateBucketAsync(toDoBucket);

            var completedBucket = new Bucket
            {
                Name   = "Completed",
                PlanId = createdPlan.Id
            };

            var createdCompletedBucket = await graphClient.CreateBucketAsync(completedBucket);

            // Create tasks in to-do bucket
            var preFlightInspection = new PlannerTask
            {
                Title       = "Perform pre-flight inspection of aircraft",
                PlanId      = createdPlan.Id,
                BucketId    = createdToDoBucket.Id,
                DueDateTime = departureTime.ToUniversalTime()
            };

            await graphClient.CreatePlannerTaskAsync(preFlightInspection);

            var ensureFoodBevStock = new PlannerTask
            {
                Title       = "Ensure food and beverages are fully stocked",
                PlanId      = createdPlan.Id,
                BucketId    = createdToDoBucket.Id,
                DueDateTime = departureTime.ToUniversalTime()
            };

            await graphClient.CreatePlannerTaskAsync(ensureFoodBevStock);

            if (createTabs)
            {
                // Add planner tab to General channel
                var plannerTab = new TeamsChannelTab
                {
                    Name          = "Pre-flight Checklist",
                    TeamsAppId    = "com.microsoft.teamspace.tab.planner",
                    Configuration = new TeamsChannelTabConfiguration
                    {
                        EntityId   = createdPlan.Id,
                        ContentUrl = $"https://tasks.office.com/{tenantName}/Home/PlannerFrame?page=7&planId={createdPlan.Id}&auth_pvr=Orgid&auth_upn={{upn}}&mkt={{locale}}",
                        RemoveUrl  = $"https://tasks.office.com/{tenantName}/Home/PlannerFrame?page=13&planId={createdPlan.Id}&auth_pvr=Orgid&auth_upn={{upn}}&mkt={{locale}}",
                        WebsiteUrl = $"https://tasks.office.com/{tenantName}/Home/PlanViews/{createdPlan.Id}"
                    }
                };

                await graphClient.AddTeamChannelTab(groupId, channelId, plannerTab);
            }
        }