One way is to encode the list to a single value. The best way to do that depends on what the elements in the list mean. A simple way that may not make sense for your data is to treat each element as a digit in an integer. E.g.
a = {DateObject[{2021, 01, 01}] -> {1, 2}, DateObject[{2021, 01, 02}] -> {3, 4}};
encoded = a /. HoldPattern[d_DateObject -> l_List] :> d -> FromDigits@l
p = Predict[encoded]
p[DateObject[{2021, 01, 01}]] // Round // IntegerDigits
(* {1, 2} *)
Another option is to create a separate predictor function for each element. E.g.
data = Map[Thread, a] // Transpose
pf = Predict /@ data
pFun[x_] := #[x] & /@ pf
pFun[DateObject[{2021, 1, 1}, "Day"]]
(* {1., 2.} *)
Another option would be to use a neural net, giving you the flexibility to customize the model to suit your data.
You know the problem domain and the nature of the data, so you can decide which approach is the best.