def find_matching_location(event: dict, filename):
    if filename not in _ics_cache:
        _ics_cache[filename] = list(parse_ics_vevent(filename))
    event_list = _ics_cache[filename]

    a = event
    gt, ga = Re('(InGe|IrBi|IrCi|IrAr)(\d*)',
                re.I).search(a['SUMMARY']).groups()

    LT = [
        b for b in event_list for _ in [b['DTSTART;TZID=Europe/Brussels']]
        for _ in [datetime.strptime(_, '%Y%m%dT%H%M%S')]
        for _ in [naive_to_utc(_)] for _ in [_.strftime('%Y%m%dT%H%M%S')]
        if _ == a['DTSTART'][:-1]
    ]

    L = [
        b for b in LT for ddict in [event_desc_dict(b)] for m in [
            Re('(INGE|IRBI|IRAR|IRCI) - (?:groupe |gr.)(\d+)', re.I).search(
                b['DESCRIPTION'])
        ] if m for ogt, oga in [m.groups()]
        if int(ga) == int(oga) and gt.lower() == ogt.lower()
    ] if gt.lower() != 'irar' else [
        b for b in LT for ddict in [event_desc_dict(b)]
        if Re('irar', re.I).search(b['DESCRIPTION'])
        and not Re('Théorie', re.I).search(b['DESCRIPTION'])
    ]
    # TODO: use event_groups(b) :  "B1-IRBI - gr.5" "B1-INGE - groupe 04" "B1-IRAR"
    # TODO: use event_acti(b)

    if len(L) == 1:
        return L[0]['LOCATION']
    elif len(L) > 1:
        return 'Gehol Too Much {}'.format(' '.join(l['LOCATION'] for l in L))
    elif len(L) == 0:
        return 'Gehol Not Found'