Hey! Two things going on here — and one of them is a bug in your existing filter you may not have noticed. Let me untangle it.
First, a quick fix to your date logic. Your current condition has the same thing on both sides of the ||:
Also, that condition only catches bookings that fall entirely inside the user's selected range — it misses bookings that start before or end after. The standard "do two date ranges overlap?" check is much simpler:
That single line catches every overlap case.
Now for the session logic. The trick is to flip the question around: instead of "what session did they pick?", ask "which booked sessions would conflict with the one they picked?" That gives you a clean lookup:
| User picks |
Conflicts with |
| Morning |
Morning, All Day |
| Afternoon |
Afternoon, All Day |
| All Day |
Morning, Afternoon, All Day
|
Then you just check if the booking's session is in that conflict list. Power Fx makes this elegant with Switch + in:
Replace SessionDropdown with whatever you've named your session dropdown. 'Booking Time Period'.Value is how you read a SharePoint Choice column — if you set yours up as plain text instead, drop the .Value.
⚠️ Delegation warning: SharePoint is fussy with complex Filter + in + nested filter combinations. You'll likely see the blue delegation underline. If your Bookings list grows beyond 2,000 rows, you'll start missing results silently.
The clean workaround if delegation bites you: pull the conflicting bookings into a collection first (which delegates fine on simple criteria), then check membership against the collection in your main filter:
That keeps the heavy lifting delegable on SharePoint, then does the session logic in-memory on the (smaller) overlap set.
Give it a try and let me know how it goes — happy to dig in if the delegation warning shows up.