I'm building a scheduler for a consultant desktop app. In this scheduler, the weekly scheduler is straight-forward. The user just needs to select the day and time that will get repeated every week.
However, there are exceptions to this schedule:
If the user has certain days that he wants to set a schedule for that doesn't need to be repeated every week (let's say this week, he can also do consulting on Friday at 10:00am-11:00am, but this is just a one-time thing).
On the flip side, maybe next week, this user is on a vacation and cannot do consulting for the entire week. So the repeated schedule (for next week) shouldn't be available.
One solution I can think of is to provide the user with a CALENDAR view which he can manually edit.
However, this is also not free of complications. If the user makes changes to the Weekly Schedule, should it always overwrite the exceptions made (in the calendar)? Or should it skip them and apply the changes in a non-disruptive way?
What is the best way to approach this so that it isn't confusing and to avoid unnecessary overwriting on the part of the user? Are there any existing apps that has solved this issue?