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.

enter image description here

However, there are exceptions to this schedule:

  1. 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).

  2. 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?

  • 1
    This is well-worn territory. For a gold standard, look at how Google or Outlook Calendars do repeating dates and exceptions. The Drupal CMS's repeating date interface is a bit clunky but users have never found it confusing IMO. The typical UI pattern is to provide a one-off time picker, and then allow the user to apply that to multiple days in a pattern. She would then specify start and end dates of the pattern. Exceptions can be added via a datepicker and time field, start and end (that could span dates).
    – Renee
    Commented Jun 8, 2016 at 21:25
  • @renee I tried looking at Google Calendar and although it's also a scheduler, it's a bit more complex than this one because there can be many types of events. For this one, there's only one type of event the user can set schedule for (consultancy)... So I thought, I can make the experience even simpler. Commented Jun 9, 2016 at 7:07

2 Answers 2


If the "rule" (the schedule the user sets) can be altered for specific days, I think you can simplify in a few ways.

A few suggestions:

1) The user can change the schedule for one or more days. So it would be good if the user could edit a whole week that he or she will be on vacation, right? So instead of editing day by day of the week, it would be easier to select those days and then edit the schedule for those days all at once.

2) If the user can select days, maybe a tabbed scheduler isn't the best solution. Why force the user to edit each day of the week in the case where all of them will have the same schedule? (answer: if it is common to have a different schedule for each day of the week)

3) So maybe you could have "rules" and "exceptions". Some examples of "rules" could be:

• The "regular Monday" rule was applied to every monday, and includes the 2-5pm schedule.

• The "morning sprint" rule was applied to the next month, and includes the 9am-12pm schedule.

• The "morning sprint 2" was created from editing the last two weeks of next month, and the schedule was changed to 10am-1pm.

So you could think in terms of creating, applying, removing, editing and duplicating "rules". Maybe you could select a friday and edit or duplicate a rule applied to it. Or maybe you could create a new rule applying to every friday from that day forward.

In the end, the best interface will depend on how your users use it. Their most common actions and problems will be the obstacles you will have to overcome. Trying to decide the best scheduler for your users without understanding their needs is an almost impossible challenge.


I have been taking into consideration these 2 patterns by Google for Business and Sharedesk for a similar situation where I needed to manage exceptions to an otherwise fixed calendar. You could easily implement a calendar widget or fixed time spans in a dropdown such as "next week" or "next month". I think these are quite compact and flexible enough solutions to handle that level of complexity.


Google for business



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.