from typing import Callable
from datetime import datetime


def on_date(month: int, day: int) -> Callable[[datetime], bool]:
    """
    Filter that allows events that match a specific date in any year

    Args:
        - month (int): the month as a number (1 = January)
        - day (int): the day as a number

    Returns:
        - Callable[[datetime], bool]: a filter function
    """

    def _filter_fn(dt: datetime) -> bool:
        return (dt.month, dt.day) == (month, day)

    return _filter_fn