🐕

Outlookとlogseq

2023/04/21に公開

import win32com.client
import datetime

Outlookの予定表オブジェクトを取得する

outlook = win32com.client.Dispatch("Outlook.Application")
calendar = outlook.GetNamespace("MAPI").GetDefaultFolder(9)

今日から1週間先までの予定を取得する

today = datetime.datetime.today()
end = today + datetime.timedelta(days=7)
items = calendar.Items
items.IncludeRecurrences = True
items.Sort("[Start]")
restriction = "[Start] >= '" + today.strftime('%m/%d/%Y %H:%M %p') + "' AND [END] <= '" + end.strftime('%m/%d/%Y %H:%M %p') + "'"
restricted_items = items.Restrict(restriction)

各予定をlogseqのToDoに変換する

for item in restricted_items:
# 予定の情報を取得する
subject = item.Subject
start = item.Start
end = item.End
location = item.Location

# ToDoのフォーマットに変換する
todo = "- [ ] " + subject + " @" + location + " " + start.strftime('%Y-%m-%d %H:%M:%S') + " - " + end.strftime('%H:%M:%S')
print(todo)

Discussion