如何使用PowerShell创建Outlook约会/会议?
在PowerShell中创建Outlook约会/会议
以下是直接可用的实操方案,涵盖纯文本、HTML格式内容的约会与会议创建:
创建Outlook约会
纯文本内容示例
# 连接Outlook应用程序 $outlook = New-Object -ComObject Outlook.Application # 创建约会对象(1代表olAppointmentItem枚举值) $appointment = $outlook.CreateItem(1) # 配置约会核心信息 $appointment.Subject = "项目进度同步会" $appointment.Body = "讨论Q3项目里程碑完成情况,确认后续任务分配与时间节点。" $appointment.Start = Get-Date "2024-09-15 14:00:00" $appointment.End = Get-Date "2024-09-15 15:30:00" $appointment.Location = "3楼会议室A" $appointment.ReminderSet = $true $appointment.ReminderMinutesBeforeStart = 30 # 提前30分钟触发提醒 # 保存到日历(也可用$appointment.Display()打开编辑窗口手动确认) $appointment.Save()
HTML格式内容示例
若需用HTML段落、格式标签定义内容,直接赋值给HTMLBody属性:
$outlook = New-Object -ComObject Outlook.Application $appointment = $outlook.CreateItem(1) $appointment.Subject = "PowerShell自动化技巧分享" # 用HTML语法构建内容,支持段落、加粗、列表等标签 $appointment.HTMLBody = @" <p>本次分享聚焦Outlook自动化办公场景:</p> <p><b>核心内容:</b></p> <ul> <li>Outlook COM对象模型基础操作</li> <li>批量创建/修改约会、会议的技巧</li> <li>邮件自动分类与归档脚本示例</li> </ul> <p>请提前准备相关疑问,现场交流讨论。</p> "@ $appointment.Start = Get-Date "2024-09-20 16:00:00" $appointment.End = Get-Date "2024-09-20 17:30:00" $appointment.Location = "线上腾讯会议(会议号:123456789)" $appointment.ReminderSet = $true $appointment.ReminderMinutesBeforeStart = 15 $appointment.Display()
创建Outlook会议(带参会者)
会议本质是添加了参会者的约会,只需补充收件人配置即可:
纯文本内容会议示例
$outlook = New-Object -ComObject Outlook.Application $meeting = $outlook.CreateItem(1) # 配置会议基础信息 $meeting.Subject = "Q3预算评审会" $meeting.Body = "评审各部门提交的Q3预算申请,确定最终预算额度与执行方案。" $meeting.Start = Get-Date "2024-09-18 10:00:00" $meeting.End = Get-Date "2024-09-18 12:00:00" $meeting.Location = "总部大会议室" $meeting.ReminderSet = $true $meeting.ReminderMinutesBeforeStart = 60 # 添加参会者:1=必填参会人,2=可选参会人,3=资源(如会议室) $meeting.Recipients.Add("zhangsan@company.com").Type = 1 $meeting.Recipients.Add("lisi@company.com").Type = 2 $meeting.Recipients.Add("大会议室@company.com").Type = 3 # 发送会议邀请(也可用$meeting.Display()打开窗口手动发送) $meeting.Send()
HTML格式内容会议示例
$outlook = New-Object -ComObject Outlook.Application $meeting = $outlook.CreateItem(1) $meeting.Subject = "新产品发布会筹备会" $meeting.HTMLBody = @" <p>本次会议确定新产品发布会的各项筹备细节:</p> <p><b>关键时间节点:</b></p> <p>1. 9月25日前完成宣传物料设计定稿</p> <p>2. 9月30日前完成场地布置与设备调试</p> <p><b>牵头部门:</b>市场部、产品部</p> "@ $meeting.Start = Get-Date "2024-09-16 09:30:00" $meeting.End = Get-Date "2024-09-16 11:00:00" $meeting.Location = "2楼多功能厅" # 添加参会部门收件人 $meeting.Recipients.Add("market@company.com").Type = 1 $meeting.Recipients.Add("product@company.com").Type = 1 $meeting.Recipients.Add("tech@company.com").Type = 1 $meeting.Send()
注意事项
- 运行脚本前需确保Outlook客户端已安装并正常启动,否则会出现COM对象连接失败的错误。
- 批量创建约会/会议时,建议添加
Start-Sleep -Seconds 1之类的延迟,避免Outlook对象模型过载。 - 若遇到权限问题,需确认当前用户拥有Outlook日历的编辑权限。
内容的提问来源于stack exchange,提问作者Doug
相关产品推荐
相关产品推荐

