I need to allow users to set the frequency with which they would like for a certain task to occur (example- every X days/week/month/year). So far, what I've come up with is an input box and a drop down to select either Days, weeks, months or years as options. Frequency picker Could this be confusing and are there any better patterns for such cases?

  • Are there any limits, minima & maxima, on what they can set? Also what's the use case for this? Commented Jan 14, 2019 at 9:03
  • @DarrylGodden There are no limits as such. It's to automate file scraping from another location. The user gets to define if they'd like to scrape files every x interval of days/months (most common cases) or even years. Commented Jan 14, 2019 at 12:28

4 Answers 4


Planning of tasks tends to be more contextual than mathematical. What does that mean? It means that you

  • go to soccer practice every Tuesday,
  • pay your rent on the last work day of the month,
  • download that report on every 15th,
  • meet with Jeff on the first Monday of each month
  • check up on aunt Jeannie at least once in a quarter.

In the Gregorian calendar, only the first bullet point is a consistent interval. All other "tasks" depend upon the length of months, placement of calendar weeks, work week definitions, beginning of the week definitions.

What you need to do is to

  • Give a natural language context (for your locale)
  • Take away complexity in the beginning
  • Offer the most popular choices
  • Allow customization down the road

Microsoft, e.g., is doing a good job with this in their Outlook web app. (Even if somewhat inconsistent cross-device)

1. Desktop

enter image description here

enter image description here

enter image description here

2. Mobile

enter image description here

enter image description here


I Think there should be hierarchy in layout and options should be daily, weekly, monthly as per the below exampleenter image description here


Information hierarchy in your case is reversed

You will first have to take make the user select desired interval and then allow the user to input number of days/week/months.

We recently designed a similar control in our product. You can use it for inspiration.

enter image description here

  • 1
    Arguably, information hierarchy is just as reversed in natural speech (in English, at least; this must not hold true for all languages). Commented Jan 15, 2019 at 10:04
  • "Value" seems unclear to me here. Do you want "Every 30 days" or "the 30th day"? Commented Jan 15, 2019 at 17:13
  • @TimFitzGerald Yes Value in this case will not be clear. Maybe we can write "Enter number of days/weeks/years" in the input as placeholder
    – Sheraz
    Commented Jan 16, 2019 at 6:30

I would say that your approach should depend on the tasks your users need to perform. For example:

  • if I want to schedule a meeting which occurs every Monday morning I would want to set a start/end date and frequency
  • if I am a doctor and plan therapy for my patient I would probably prefer to choose the number of occurrences and don't bother about the start/end date.
  • I may want to use a combination of the above

Explore the user flow and what users need to achieve their goals and you will find the answer.

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.