Shouldn't this merge be working?
Try adding find() to your ElementCriteriaModel, I think without that function you're not actually saving your entries as an array in your variable todaysOneOffEvents yet.

Here's what I found in the Docs:


  You don’t actually need to call find() yourself though: It will be called automatically as soon as the ElementCriteriaModel is treated like an array (that is, as soon as you check how many elements there are using the |length filter, or start looping through the elements with a {% for %} loop).


We learn that merging doesn't "treat it like an array", good to know.

Edit: You can't use the length filter to "convert" the content of the variable to an actual array. Removed that part from the answer.