docs: def read_free_busy(self,
                         calendar_ids=(),
                         from_date=None,
                         to_date=None,
                         last_modified=None,
                         tzid=settings.DEFAULT_TIMEZONE_ID,
                         include_managed=True,
                         localized_times=False,
                         automatic_pagination=True):
          """Read free/busy blocks for linked account (optionally for the specified calendars).
  
          :param tuple calendar_ids: Tuple or list of calendar ids to pass to cronofy. (Optional).
          :param datetime.date from_date: Start datetime (or ISO8601 string) for query. (Optional).
          :param datetime.date to_date: End datetime (or ISO8601 string) for query. (Optional).
          :param string tzid: Timezone ID for query. (Optional, default settings.DEFAULT_TIMEZONE_ID). Should match tzinfo on datetime objects.
          :param bool include_managed: Include pages created through the API. (Optional, default True)
          :param bool localized_times: Return time values for event start/end with localization information. This varies across providers. (Optional, default False).
          :param bool automatic_pagination: Automatically fetch next page when iterating through results (Optional, default True)
          :return: Wrapped results (Containing first page of free/busy blocks).
          :rtype: ``Pages``
          """
          results = self.request_handler.get(endpoint='free_busy', params={
              'tzid': tzid,
              'calendar_ids[]': calendar_ids,
              'from': format_event_time(from_date),
              'to': format_event_time(to_date),
              'include_managed': include_managed,
              'localized_times': localized_times,
          }).json()
  
          return Pages(self.request_handler, results, 'free_busy', automatic_pagination)