Use DAYOFWEEK na sua consulta, algo como:
SELECT * FROM mytable WHERE MONTH(event_date) = 5 AND DAYOFWEEK(event_date) = 7;
Aqui encontrará todas as informações para os sábados de maio.
Para obter as leituras mais rápidas armazene um campo desnormalizado que seja o dia da semana (e o que mais você precisar). Dessa forma, você pode indexar colunas e evitar varreduras completas de tabela.
Apenas tente o acima primeiro para ver se atende às suas necessidades e, se não, adicione algumas colunas extras e armazene os dados na gravação. Apenas tome cuidado com as anomalias de atualização (certifique-se de atualizar a coluna day_of_week se alterar event_date).
Observe que os campos desnormalizados aumentarão o tempo necessário para fazer gravações, aumentarão os cálculos na gravação e ocuparão mais espaço. Certifique-se de que você realmente precisa do benefício e pode mensurar se ele te ajuda.