       "2000-02-29T23:00:07"
 
   """
-  @spec to_iso8601(Calendar.naive_datetime) :: String.t
+  @spec to_iso8601(Calendar.naive_date_time) :: String.t
+  def to_iso8601(naive_datetime)
+
   def to_iso8601(%{year: year, month: month, day: day,
                    hour: hour, minute: minute, second: second, microsecond: microsecond}) do
     Calendar.ISO.naive_datetime_to_iso8601(year, month, day, hour, minute, second, microsecond)

      iex> DateTime.to_string(dt)
      "2000-02-29 23:00:07-04:00 AMT America/Manaus"
  """
  @spec to_string(DateTime.t) :: String.t
  def to_string(%{calendar: calendar, year: year, month: month, day: day,
                  hour: hour, minute: minute, second: second, microsecond: microsecond,
                  time_zone: time_zone, zone_abbr: zone_abbr, utc_offset: utc_offset, std_offset: std_offset}) do


  """
  @spec to_iso8601(Calendar.time) :: String.t
  def to_iso8601(time)

  def to_iso8601(%{hour: hour, minute: minute, second: second, microsecond: microsecond}) do
    Calendar.ISO.time_to_iso8601(hour, minute, second, microsecond)
  end
