Inputs: timezone, book selection, book signups (including other people); send in user info, or separately make a dataset of "this user's selections" and send that in?
Return: User selections, ready to save (with user info if it's sent in)
Internally handles the UI + conversion to get data ready to save.