All Versions
Latest Version
Avg Release Cycle
36 days
Latest Release

Changelog History
Page 1

  • v4.5.1 Changes

    • ⚑️ Support updating items in Account.upload(). Previously, only insert was supported.
    • Fixed types for Contact.manager_mailbox and Contact.direct_reports.
    • πŸ‘ Support getting text_body field on item attachments.
  • v4.5.0 Changes

    • ⚑️ Fixed bug when updating indexed fields on Contact items.
    • πŸ“œ Fixed bug preventing parsing of CalendarPermission items in the permission_set field.
    • πŸ“œ Add support for parsing push notification POST requests sent from the Exchange server to the callback URL.
  • v4.4.0 Changes

    • 🚚 Add Folder.move() to move folders to a different parent folder.
  • v4.3.0 Changes

    • Add context managers Folder.pull_subscription(), Folder.push_subscription() and Folder.streaming_subscription() that handle unsubscriptions automatically.
  • v4.2.0 Changes

    • Move util._may_retry_on_error and and util._raise_response_errors to RetryPolicy.may_retry_on_error and RetryPolicy.raise_response_errors, respectively. This allows for easier customization of the retry logic.
  • v4.1.0 Changes

  • v4.0.0 Changes

    • πŸ”§ Add a new max_connections option for the Configuration class, to increase the session pool size on a per-server, per-credentials basis. Useful when exchangelib is used with threads, where one may wish to increase the number of concurrent connections to the server.
    • Add Message.mark_as_junk() and complementary QuerySet.mark_as_junk() methods to mark or un-mark messages as junk email, and optionally move them to the junk folder.
    • πŸ”§ Add support for Master Category Lists, also known as User Configurations. These are custom values that can be assigned to folders. Available via Folder.get_user_configuration().
    • πŸ‘ Persona objects as returned by QuerySet.people() now support almost all documented fields.
    • Improved QuerySet.people() to call the GetPersona service if at least one field is requested that is not supported by the FindPeople service.
    • 🚚 Removed the internal caching in QuerySet. It's not necessary in most use cases for exchangelib, and the memory overhead and complexity is not worth the extra effort. This means that .iterator() is now a no-op and marked as deprecated. ATTENTION: If you previously relied on caching of results in QuerySet, you need to do you own caching now.
    • Allow plain date, datetime and zoneinfo.ZoneInfo objects as values for fields and methods. This lowers the barrier for using the library. We still use EWSDate, EWSDateTime and EWSTimeZone for all values returned from the server, but these classes are subclasses of date, datetime and zoneinfo.ZoneInfo objects and instances will behave just like instance of their parent class.
  • v3.3.2 Changes

    October 23, 2020
    • Change Kerberos dependency from requests_kerberos to requests_gssapi
    • Let EWSDateTime.from_datetime() accept datetime.datetime objects with tzinfo objects that are dateutil, zoneinfo and pytz instances, in addition to EWSTimeZone.
  • v3.3.1 Changes

    October 21, 2020
    • Allow overriding dns.resolver.Resolver class attributes via Autodiscovery.DNS_RESOLVER_ATTRS.
  • v3.3.0 Changes

    October 16, 2020
    • Switch EWSTimeZone to be implemented on top of the new zoneinfo module in Python 3.9 instead of pytz. backports.zoneinfo is used for earlier versions of Python. This means that the ÈWSTimeZone methods timezone(), normalize() and localize() methods are now deprecated.
    • πŸ‘ Add EWSTimeZone.from_dateutil() to support converting timezones to EWSTimeZone.
    • πŸ‘ Dropped support for Python 3.5 which is EOL per September 2020.
    • Added support for CalendaItem.appointment_state, CalendaItem.conflicting_meetings and CalendarItem.adjacent_meetings fields.
    • Added support for the Message.reminder_message_data field.
    • Added support for Contact.manager_mailbox, Contact.direct_reports and Contact.complete_name fields.
    • πŸ‘ Added support for Item.response_objects field.
    • Changed Task.due_date and Tas.start_date fields from datetime to date fields, since the time was being truncated anyway by the server.
    • πŸ‘ Added support for Task.recurrence field.
    • Added read-only support for Contact.user_smime_certificate and Contact.ms_exchange_certificate. This means that all fields on all item types are now supported.