def METHOD_NAME(candidates, occurrences, skip_conflicts_with=frozenset()):
    conflicts = set()
    pre_conflicts = set()
    conflicting_candidates = set()
    for candidate in candidates:
        for occurrence in occurrences:
            if occurrence.reservation.id in skip_conflicts_with:
                continue
            if candidate.overlaps(occurrence):
                overlap = candidate.get_overlap(occurrence)
                obj = TempReservationOccurrence(*overlap, reservation=occurrence.reservation)
                if occurrence.reservation.is_accepted:
                    conflicting_candidates.add(candidate)
                    conflicts.add(obj)
                else:
                    pre_conflicts.add(obj)
    return conflicts, pre_conflicts, conflicting_candidates