Python ExchangeLib更新日历项目hinter_is_set

时间:2019-05-08 11:46:36

标签: python exchangelib

全部

我是Python的新手,在更新日历项的reminder_is_set属性时遇到问题。我正试图从现在起7天前获取日历项目,并关闭提醒。

我可以在视图中获得日历项目。我可以列举这些项目。我似乎无法弄清楚如何更新值并保存每个项目。我查看了示例并看到了批量更新示例,但没有看到在获取和批量更新调用之间的值设置位置。任何和所有帮助表示赞赏。

calendar_items = account.calendar.view(start=startDate, end=currentDateTime)

calendar_ids = [(i.id, i.changekey) for i in calendar_items]

items_iter = account.fetch(ids=calendar_ids, only_fields='reminder_is_set')
for item in items_iter:
    item.reminder_is_set = False

updated_ids = account.bulk_update(items=[(i, ('reminder_is_set')) for i in calendar_items])

1 个答案:

答案 0 :(得分:0)

主要问题是您所做的更改位于items_iter中,但是您正在使用bulk_update()调用calendar_items,但没有更改。

这是一个应该起作用的例子:

update_pairs = []
for item in account.calendar\
        .view(start=startDate, end=currentDateTime)\
        .only('reminder_is_set'):
    if item.reminder_is_set:
        item.reminder_is_set = False
        update_pairs.append((item, ('reminder_is_set',)))

updated_ids = account.bulk_update(items=update_pairs)