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.
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?– DarrylGoddenJan 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.– Ashwin NepalJan 14, 2019 at 12:28
4 Answers
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
2. Mobile
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.
-
1Arguably, information hierarchy is just as reversed in natural speech (in English, at least; this must not hold true for all languages). Jan 15, 2019 at 10:04
-
"Value" seems unclear to me here. Do you want "Every 30 days" or "the 30th day"? 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– SherazJan 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.