PowerShellを活用すれば、Outlookの予定表に自動で予定を登録することができます。日々の定例会議やタスクの予定をスクリプトからまとめて登録したい場合に便利です。この記事では、PowerShellでOutlook予定表に予定を追加する方法とその応用例を紹介します。
Outlook予定表を操作するための準備
まず、OutlookのCOMオブジェクトを使ってPowerShellからOutlookを操作できるようにします。Outlookがインストールされており、ログイン状態である必要があります。
$Outlook = New-Object -ComObject Outlook.Application
$Namespace = $Outlook.GetNamespace("MAPI")
$Calendar = $Namespace.GetDefaultFolder(9) # 9は予定表のフォルダ番号
予定を1件追加するスクリプト
以下のコードは、Outlook予定表に1件の予定を追加する基本的な例です。
$Appointment = $Outlook.CreateItem(1) # 1は予定(AppointmentItem)
$Appointment.Subject = "チームミーティング"
$Appointment.Start = Get-Date "2025-08-01 10:00"
$Appointment.End = Get-Date "2025-08-01 11:00"
$Appointment.Location = "会議室A"
$Appointment.Body = "定例チームミーティングです。"
$Appointment.ReminderMinutesBeforeStart = 15
$Appointment.BusyStatus = 2 # 忙しい(Busy)
$Appointment.Save()
このスクリプトを実行すると、Outlook予定表に該当の予定が自動で追加されます。
CSVファイルから複数の予定を一括追加する
定期的な予定や複数人の予定を管理する場合は、CSVファイルからまとめて読み込んで登録するのがおすすめです。
以下のようなCSVファイル(schedule.csv)を準備します:
Subject,Start,End,Location,Body
朝会,2025-08-01 09:00,2025-08-01 09:15,Zoom,"日次の朝会です"
進捗会議,2025-08-02 14:00,2025-08-02 15:00,会議室B,"開発進捗の確認"
そして、次のスクリプトで読み込み・登録を行います:
$Outlook = New-Object -ComObject Outlook.Application
$csv = Import-Csv -Path "C:\path\to\schedule.csv"
foreach ($row in $csv) {
$Appointment = $Outlook.CreateItem(1)
$Appointment.Subject = $row.Subject
$Appointment.Start = Get-Date $row.Start
$Appointment.End = Get-Date $row.End
$Appointment.Location = $row.Location
$Appointment.Body = $row.Body
$Appointment.ReminderMinutesBeforeStart = 10
$Appointment.BusyStatus = 2
$Appointment.Save()
}
ファイルのパスやリマインド設定は用途に応じて調整可能です。
注意点
- Outlookがログイン済みである必要があります
- Outlookがバックグラウンドで動作していることを前提としています
- 予定が重複しないよう、必要に応じて既存チェック処理を追加するのが理想です
まとめ
PowerShellを使えば、Outlook予定表への自動登録を効率的に行えます。スケジュールの一括登録や更新を自動化することで、業務の抜け漏れを防ぎ、作業の手間を大幅に軽減できます。定例タスクや会議予定の管理にぜひ活用してみてください。