概要
- いちいち、予定表をコピペしてメールに張り付ける作業がだるいので、メールに今日の予定を自動で書く方法を考えました。
実行結果
![a.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F763295%2Fce4e85e6-9a7e-f585-2483-d0e5f0cd9054.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d7e6079bf08414b831f85fdd5ef3c657)
メール
![b.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F763295%2F04868a84-c6d3-85d0-8da4-1bb579da134e.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1ed4f80223bddf499a25dd6b1ab7c677)
コード
import win32com.client
import datetime
# 予定を取得
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
calendar = outlook.GetDefaultFolder(9) # 「9」というのがOutlookの予定表のこと
# 予定を抜き出したい期間を指定
today = datetime.datetime.now()
start_date = datetime.date(today.year, today.month, today.day)
select_items = [item for item in calendar.Items if start_date == item.start.date()] # 今日の予定を入れるリスト
plans = "" # 今日の予定
# 抜き出した予定を入れる
for select_item in select_items:
plans = plans + select_item.subject + "\n"
# メール作成
object = win32com.client.Dispatch("Outlook.Application")
mail = object.CreateItem(0)
mail.BodyFormat = 1
# メールの本文
mail.Body = plans
# 作成したメールの表示
mail.Display(True)
# メール送信
# mail.Send()
参考
【自動化】PythonでOutlookの予定を抜き出す