If I could or wanted to save dates (or the whole configuration for reports), I wanted to label that configuration with a (meaningful) name. Over time I would have few of those templates ready to use. I presume the custom function is just a method for allowing changes to be made to each and every setting, right? It is not something such as this week, this month, custom, and that’s it? If it is, I advise to consider custom as an input method only, as this week is hard coded to give start and end according to today’s date, custom allows static and individual control. Going further in this idea, how about adding other hard coded terms, such as previous week, month, year, fortnight, quarter, semester, and maybe something else I cannot think of. Also, individual selection for those hardcoded items, such as I could select the start as this month, but end would be previous week (so this current week, yet to finish, would not count). Then start and end as this month, would be how it is today, but start as this month, end as previous fortnight would be from 1st until ~15th, until the next fortnight, and so on. Maybe you could add a simple rule such as when the distracted user puts start smaller then end, a nice message to review start and end dates.
Yeah, the sky is the limit, our opinion is definitely worth gold, eh?!