首页 > 解决方案 > Powershell 脚本 - 将约会上传到 Outlook 组日历

问题描述

我目前正在使用 Powershell 脚本从需要迁移到 Outlook 组日历的数千个约会的 CSV 中提取数据。到目前为止,我已经能够将数据解析为 Outlook 事件并成功上传到我的个人日历。

但是,我未能成功上传到日历。关于如何修改代码中的文件夹路径(见下文),将保存目的地从我的个人默认日历更改为我拥有的组日历的任何建议?(例如,我有一个名为“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()             
    }

郑重声明,我已经搜索了谷歌,但到目前为止都没有找到适合我需要的任何东西;这里的实际解决方案将是一个受欢迎的惊喜。也就是说,任何其他关于如何将这些事件添加到我的小组日历的想法也将受到欢迎!

标签: powershelloutlook

解决方案


推荐阅读