Best Data model/Concept to Store Multi-Day Alarm for clock?
I would suggest a bit field for storing the days of the week when the
alarm is supposed to fire:

bit 0: fire on Sundays
bit 1: fire on Mondays
...

This numbering is meant to match the one of DateTime::dayOfTheWeek().
Pack this, together with the hour and minute of the alarm, in a struct
(or a class if you prefer). Maybe add a boolean to tell whether the
alarm is active. For example:
struct Alarm {
    bool is_on;
    uint8_t days;  // bitfield: 0 = Sunday
    uint8_t hour;
    uint8_t minute;
    bool matches(DateTime) const;
};

bool Alarm::matches(DateTime t) const {
    bool day_matches = days &amp; (1 &lt;&lt; t.dayOfTheWeek());
    return day_matches &amp;&amp; t.hour() == hour &amp;&amp; t.minute() == minute;
}

Then if (alarm.is_on &amp;&amp; alarm.matches(rtc.now())), the alarm fires.