 
   """
   @spec to_iso8601(Calendar.date) :: String.t
+  def to_iso8601(date)
+
   def to_iso8601(%{calendar: Calendar.ISO, year: year, month: month, day: day}) do
     Calendar.ISO.date_to_iso8601(year, month, day)
   end


  """
  @spec from_iso8601(String.t) :: {:ok, t} | {:error, atom}
  def from_iso8601(<<year::4-bytes, ?-, month::2-bytes, ?-, day::2-bytes, sep,
                     hour::2-bytes, ?:, min::2-bytes, ?:, sec::2-bytes, rest::binary>>) when sep in [?\s, ?T] do
    with {year, ""} <- Integer.parse(year),


  """
  @spec to_erl(t) :: :calendar.datetime
  def to_erl(naive_datetime)

  def to_erl(%{calendar: Calendar.ISO, year: year, month: month, day: day,
               hour: hour, minute: minute, second: second}) do
    {{year, month, day}, {hour, minute, second}}
