Сценарий Powershell - загрузка встреч в календарь группы Outlook - PullRequest
2 голосов
/ 02 апреля 2020

В настоящее время я работаю над сценарием Powershell для извлечения данных из CSV из пары тысяч встреч, которые необходимо перенести в календарь группы Outlook. На данный момент мне удалось проанализировать данные в событиях Outlook и успешно загрузить их в свой личный календарь.

Однако загрузка файла в календарь group не удалась. Любые предложения о том, как я могу изменить путь к папке в своем коде (см. Ниже), чтобы изменить место сохранения из моего личного календаря по умолчанию на групповой календарь, владельцем которого я являюсь? (Например, у меня есть группа «Test-Group», которую я использую для проверки, это календарь, который я могу выбрать и опубликовать в Outlook). Кроме того, мне нужна сама группа O365, чтобы быть владельцем событий.

    #Currently handles subject, start date, end date, duration, all day event, body, required attendees, location (room)

    Add-Type -AssemblyName 'Microsoft.Office.Interop.Outlook'

    $outlook = New-Object -ComObject Outlook.Application            
    $namespace = $outlook.GetNameSpace('MAPI')          
    $Calendar = [Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderCalendar

    # vv folder path for the calendar we are uploading to
    $folder = $namespace.getDefaultFolder($Calendar)

    $ImportFile ="C:\Users\evanv\Downloads\Appointment-Outlook-Test.csv"
    $calendar = $outlook.Session.GetFolderFromID($folder.EntryID, $folder.StoreID)
    $csv = Import-CSV $ImportFile           

    foreach($row in $csv) 
    {       
       $appt = $calendar.Items.Add(1)
       $appt.Subject = $row.Subject
       $appt.Start = $row.StartDate
       #$appt.End = $row.EndDate
       $appt.Duration = $row.Duration
       $appt.AllDayEvent = $false
       $appt.Body = $row.ApptID
       #$appt.Organizer = $row.Clinic  --read only property :(
       $appt.RequiredAttendees = $row.Attendees
       $appt.Location = $row.Room   
       $appt.Body = $row.Location_Street + "\n" + $row.ApptID

       Write-Host "Row " $row.Subject " added to calendar" -ForegroundColor green           
       $appt.Save()             
    }

Для справки, я искал Google и до сих пор не смог найти ничего, что соответствовало бы моим потребностям; фактическое решение здесь будет долгожданным сюрпризом. Тем не менее, любые другие идеи о том, как добавить эти события в мой групповой календарь, также будут с благодарностью приняты!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...