Sure, you can continue to consume the file in an inner loop, then break out of it when you encounter flag3, and the outer loop will resume:
for line in f:
if '!!event!!' in line:
L0 = line.split()
for line in f:
if "flag1" in line:
L1 = line.split()
elif "flag2" in line:
L2 = line.split()
elif "flag3" in line:
L3 = line.split()
break # continue outer loop
print 'Event and flag times: ', L0[0], L1[0], L2[0], L3[0]
# Event and flag times: 8:41:08 8:41:10 8:41:12 8:41:16
# Event and flag times: 8:41:22 8:41:23 8:41:24 8:41:27