       ]
       |> Enum.at(month - 1)
 
-    "#{month} #{day} "
+    "#{month}, #{day} "
+  end
+
+  defp humanize_time(dt, tz) do
+    zone = Timex.Timezone.get(tz)
+    %DateTime{hour: hour, minute: minute} = parse(dt) |> Timex.Timezone.convert(zone)
+    hour = if hour == 0, do: 12, else: hour
+    minute = if minute == 0, do: "", else: ":#{minute}"
+    {hour, am_pm} = if hour >= 12, do: {hour - 12, "PM"}, else: {hour, "AM"}
+    hour = if hour == 0, do: 12, else: hour
+    "#{hour}#{minute} " <> am_pm
   end
 
   defp humanize_time(dt) do

    "#{hour}#{minute} " <> am_pm
  end

  def parse(nil) do
    DateTime.utc_now()
  end

  def zero_pad(int) do
    str = "#{int}"
    if String.length(str), do: str, else: "0#{str}"
  end

  def parse(dt = %DateTime{}) do
    dt
  end

  def parse(dt) do
    {:ok, result, _} = DateTime.from_iso8601(dt)
    result
  end

  def flatten(%{} = map) do

    IO.inspect(HTTPotion.post(hook, bodify(%{event: event, edits: edits})))
  end

  def exec("duplicate", %{event: event}) do
    spawn(fn ->
      case Cosmic.get(@cosmic_config_slug) do
        %{"metadata" => %{"event_duplicated" => hook}} ->
          IO.puts("Posting webhook to #{hook} because of edit")
          IO.inspect(HTTPotion.post(hook, bodify(%{event: event})))

        _ ->
          nil
      end
    end)
  end

  def exec("message_host", contents = ~m(event host message)a) do
    if @instance != "jd" do
      %{"metadata" => %{"message_host" => hook}} = Cosmic.get(@cosmic_config_slug)
