These should be api_binary() (at least the second arg and the function result). When you see api_X, it typically stands for X | 'undefined'. If you see Xs it is usually [X,..] | [], and api_Xs would be [X,...] | [] | 'undefined'.

Also, do you want to, if the user doc is missing the timezone, try to get the account's timezone (versus returning 'undefined')? Just curious?