This can be interesting. If you need a calendar, creating a table with one is not a bad approach. You can track holidays, all kind of stuff, including Mondays. However if the only need you have is to get each Monday, I would just write a VB function that would take a date as a parameter, calculate the (last or next or whatever) Monday from the date given. Than use that to get it on the fly. At least there would be no maintanence that way. If you had a table of Mondays, you would have to regen it ever so often, and that one time you are on vacation, and forgot, it will run out. DATEPART will return a weekday for you.