cope with nil ids and protect against empty criteria when looking up events