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