A custom alarm with properties
@type t() :: %ICal.Alarm.Custom{ properties: %{required(key :: String.t()) => %{params: map(), value: term()}}, type: String.t() }