code: def bulk_create_datetimes(date_start: DateTime,
                                date_end: DateTime, **kwargs) -> List[DateTime]:
          
          dt_objects = []
  
          if not date_start and not date_end:
              raise ValueError('You must pass date_start and date_end')
  
          if date_end < date_start:
              raise ValueError('date_start can not be larger than date_end')
  
          while date_start <= date_end:
              date_start += timedelta(**kwargs)
              dt_objects.append(date_start)
  
          return dt_objects
docs: Bulk create datetime objects.
  
          This method creates list of datetime objects from
          ``date_start`` to ``date_end``.
  
          You can use the following keyword arguments:
  
          * ``days``
          * ``hours``
          * ``minutes``
          * ``seconds``
          * ``microseconds``
  
          See datetime module documentation for more:
          https://docs.python.org/3.7/library/datetime.html#timedelta-objects
  
  
          :param date_start: Begin of the range.
          :param date_end: End of the range.
          :param kwargs: Keyword arguments for datetime.timedelta
          :return: List of datetime objects
          :raises: ValueError: When ``date_start``/``date_end`` not passed and
              when ``date_start`` larger than ``date_end``.