Most functions in Timex manipulate the Elixir data structures directly. In doing so, they assume a lot about the underlying calendar - in most cases the functions would just not work for anything other than Calendar.ISO. The prime example would be Timex.shift/2.
Timex should either amend those functions to be correct in case they are called with other calendars, or pattern match on the value and document the functions to only work with Calendar.ISO.