Exchange Web Services client library v1.6.0 Release Notes

    • Complete rewrite of Folder.find_items(). The old start, end, subject and categories args are deprecated in favor of a Django QuerySet filter() syntax. The supported lookup types are __gt, __lt, __gte, __lte, __range, __in, __exact, __iexact, __contains, __icontains, __contains, __icontains, __startswith, __istartswith, plus an additional __not which translates to !=. Additionally, all fields on the item are now supported in Folder.find_items().

      WARNING: This change is backwards-incompatible! Old uses of Folder.find_items() like this:

      ids = account.calendar.find_items(
          start=tz.localize(EWSDateTime(year, month, day)),
          end=tz.localize(EWSDateTime(year, month, day + 1)),
          categories=['foo', 'bar'],
      )
      

      must be rewritten like this:

      ids = account.calendar.find_items(
          start__lt=tz.localize(EWSDateTime(year, month, day + 1)),
          end__gt=tz.localize(EWSDateTime(year, month, day)),
          categories__contains=['foo', 'bar'],
      )
      

      failing to do so will most likely result in empty or wrong results.

    • Added a exchangelib.restrictions.Q class much like Django Q objects that can be used to create even more complex filtering. Q objects must be passed directly to exchangelib.services.FindItem.