code: def view(self, start, end, max_items=None, *args, **kwargs):
          
          qs = QuerySet(self).filter(*args, **kwargs)
          qs.calendar_view = CalendarView(start=start, end=end, max_items=max_items)
          return qs
docs: Implements the CalendarView option to FindItem. The difference between filter() and view() is that filter()
          only returns the master CalendarItem for recurring items, while view() unfolds recurring items and returns all
          CalendarItem occurrences as one would normally expect when presenting a calendar.
  
          Supports the same semantics as filter, except for 'start' and 'end' keyword attributes which are both required
          and behave differently than filter. Here, they denote the start and end of the timespan of the view. All items
          the overlap the timespan are returned (items that end exactly on 'start' are also returned, for some reason).
  
          EWS does not allow combining CalendarView with search restrictions (filter and exclude).
  
          'max_items' defines the maximum number of items returned in this view. Optional.