Calendar 自动将ICS文件导入outlook.com

Calendar 自动将ICS文件导入outlook.com,calendar,outlook.com,Calendar,Outlook.com,我有一个*.ics文件,想将其导入outlook.com上的日历。如何使用powershell脚本执行此操作 我需要删除并重新创建导入到的日历,或者在导入之前清除日历 提前谢谢。试试看 步骤1:读取ics文件的内容 步骤2:解析它 步骤3:在Powershell中使用Outlook应用程序对象 步骤4:获取日历文件夹 步骤5:使用日历文件夹的属性在步骤2中添加已解析的内容 #Folder containing ICS files $ICSpath="C:\Users\test\testasda

我有一个*.ics文件,想将其导入outlook.com上的日历。如何使用powershell脚本执行此操作

我需要删除并重新创建导入到的日历,或者在导入之前清除日历

提前谢谢。

试试看

步骤1:读取ics文件的内容

步骤2:解析它

步骤3:在Powershell中使用Outlook应用程序对象

步骤4:获取日历文件夹

步骤5:使用日历文件夹的属性在步骤2中添加已解析的内容

#Folder containing ICS files

$ICSpath="C:\Users\test\testasdasd"
$ICSlist = get-childitem $ICSPath

Foreach ($i in $ICSlist )
{
     $file= $i. fullname
     $data = @{}
     $content = Get-Content $file -Encoding UTF8
     $content |
     foreach-Object {
      if($_.Contains(':')){
            $z=@{ $_.split( ':')[0] =( $_.split( ':')[1]).Trim()}
           $data. Add( $z. Keys, $z. Values)
       }
     }
     $outlook = new-object -com Outlook.Application
    $calendar = $outlook.Session.GetDefaultFolder(9) 
    $appt = $calendar.Items.Add(1)


     $Body=[regex]::match($content,'(?<=\DESCRIPTION:).+(?=\DTEND:)', "singleline").value .trim ()
     $Body= $Body -replace "\r\n\s"
     $Body = $Body.replace("\,",",").replace("\n"," ")
     $Body= $Body -replace "\s\s"

     $Start = ($data.getEnumerator() | ?{ $_.Name -eq "DTSTART"}).Value -replace "T"
     $Start = [datetime]::ParseExact ($Start ,"yyyyMMddHHmmss" ,$null )

     $End = ($data.getEnumerator() | ?{ $_.Name -eq "DTEND"}).Value -replace "T"
     $End = [datetime]::ParseExact ($End ,"yyyyMMddHHmmss" ,$null )

     $Subject = ($data.getEnumerator() | ?{ $_.Name -eq "SUMMARY"}).Value
     $Location = ($data.getEnumerator() | ?{ $_.Name -eq "LOCATION"}).Value

     $appt.Start = $Start
     $appt.End = $End
     $appt.Subject = $Subject
     $appt.Categories = "Presentations" #Pick your own category!
     $appt.BusyStatus = 0   # 0=Free
     $appt.Location = $Location
     $appt.Body = $Body
     $appt.ReminderMinutesBeforeStart = 15 #Customize if you want 

     $appt.Save()
    if ($appt.Saved)
        { write-host "Appointment saved."}
    Else {write-host "Appointment NOT saved."}
}
包含ICS文件的文件夹 $ICSpath=“C:\Users\test\testasdasd” $ICSlist=获取子项$ICSPath Foreach($i在$ICSlist中) { $file=$i.fullname $data=@{} $content=获取内容$file-编码UTF8 $content| foreach对象{ 如果($\包含(':')){ $z=@{$\.split(':')[0]=($\.split(':')[1]).Trim()} $data.Add($z.键,$z.值) } } $outlook=新对象-com outlook.Application $calendar=$outlook.Session.GetDefaultFolder(9) $appt=$calendar.Items.Add(1)
$Body=[regex]::匹配($content,'(?你能发布你尝试过的代码吗?我还没有尝试过任何东西。我不知道从哪里开始。我有一个*.ics文件,我可以通过在outlook.com上单击“导入”来导入它,但我不知道如何通过脚本来实现。好的。但我想将其写入web应用程序outlook.com,而不是桌面应用程序outlook:-)。我没有在有问题的计算机上安装Outlook。