I noticed a difference in how Google Calendar and Outlook handle recurring appointments, specifically ones that are on the end of the month. If you try to schedule an appointment on the 31st of every month in Outlook, it will put your scheduled appointment on the last day of the month, whatever that is.
You'll even get a message saying so:
In Google Calendar, scheduling an appointment on the 31st of every month means it will only appear on those months that have 31 days. Google doesn't provide any type of message about this.
So, while Google sticks more closely to what the user's request actually was, Outlook applies a little bit of interpretation and assumes you want it to run every month. Which of these approaches do you think makes the most sense, and why?
Neither approach is ideal. You almost need a combination of the two.
If I select that I want something to happen every single month, just because it's on the 31st doesn't mean that I don't want it to reoccur.
I would stop trusting my calendar forever if even once it failed to notify me. Better to assume people want it reoccurring than to just be OCD. Those people can click
This is how I would do it.
My Repeat Event is Much Clearer
I've revised the artwork slightly:
The customize button would should you all the reoccurring events for the timespan range and allow you to move each one.
The way outlook handles it is closer to what I would imagine a persons intentions would be when scheduling an appointment. However Outlook doesn't give you the option to handle it differently, which is a mistake.
You should be given the choice which way you would like it handled when you schedule an appointment for a day that each month doesn't have (28/29-31). At that point you can clarify your intention.
On a side note, one possible problem is that if you have a number of appointments on the last few days of every month, 28/29 of February are going to be hell.
The underlying problem here is that there is a conflict when you say
One option is to give users a "repeat on certain months" feature where you could check the actual months you want.
Otherwise, I think Outlooks's approach is more reasonable.
I would recommend not including "Remember This" or "Always do this" checkbox. What if you wanted to undo this at a later date? You'd have to add settings for this. It's better to make the default be last day of the month with an option to change.
I would like my application to reject any attempt at scheduling recurring events on the 29th, 30th or 31st of every month. The message could be something like "you can't possibly mean that, why don't you think a bit harder about what you are trying to achieve."
Of course if the range of months chosen were all contiguous months with enough days, that should be fine.
Another option would be to adjust the end-date of the recurrence to that last month with 31 days after the start month. Telling the user, of course.
Outlook is right. Although it would make sense to schedule the event on the 1st or the 2nd of the following month instead. In some cases, I would prefer this. So Outlook should propose this choice.
And Google Calendar definitely fails.
I don't see any one situation where you would not want the event because there is no 31st day.
Both apps say “Repeat monthly”. “Monthly” means every month. If Outlook forgets the event one time out of two, Outlook clearly fails.
If I schedule paying my rent the 31st of each month, and if I don't pay any rent on some months, the owner would surely consider it as a failure. “But I can't pay my rent in November, there is no 31st of November !” The owner would expect to receive the rent on the 1st of December. Or, if he is greedy, on the 30th of November.