Outlook

🟢 PowerShell
投稿日: 2026年4月13日14:15
$outlook = New-Object -ComObject Outlook.Application

#ネームスペース 不要と思えるけど、お決まり
$namespace = $outlook.GetNamespace("MAPI")
#予定表は9番
$cldfolder = $namespace.GetDefaultFolder(9)
#今日
$cDay= (Get-Date).ToString("yyyy/MM/dd 0:00")
明日
$nDay= (Get-Date).AddDays(1).ToString("yyyy/MM/dd 0:00")
#今日の予定(複数)
$todayItems = $cldfolder.Items.Restrict("[Start] >= '" + $cDay + "' AND [END] <= '" + $nDay+ "'")
ForEach ($tk in $todayItems){
   $cldObject=[PSCustomObject]@{
                Subject =$tk.Subject
                Body=$tk.Body
                Start=$tk.Start
                End=$tk.End
                Importance=$important
                isAll=$tk.AllDayEvent
                CreationTime=$tk.CreationTime
                IsRecurring=$tk.IsRecurring
                Sensitivity=$tk.Sensitivity
            }
         $cldCollection.Add($cldObject) | Out-Null
 }
$cldSortCol=$cldCollection | Sort-Object -Property Start | Sort-Object -Property isAll | Sort-Object -Property IsRecurring
$todayItemsをそのまま扱うというより、
$tkとして得られた内容を、後で簡単に処理するために(SORTしたり)
PSCustomObjectに入れてから使う感じ。

olFolderCalendar 9 予定表フォルダー

olFolderTasks 13 タスクフォルダー