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.

Outlook's recurrence window

You'll even get a message saying so:

Some months have fewer than 31 days

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.

enter image description here

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?

  • 5
    Does the Google one inform you that it's not going to work on those other months without 31 days?
    – JonW
    Commented Mar 22, 2013 at 12:59
  • Good question - no it does not ever tell you that.
    – Mark D
    Commented Mar 22, 2013 at 13:00
  • 11
    I'm struggling to find a use case for when you would want a monthly event that only happens when there is a 31st day. How outlook handles this appears right, and adding more options seems unnecessary.
    – drawtheweb
    Commented Mar 22, 2013 at 13:57
  • If the task is 'recur on the last day of the month' then why not use the correct settings in Outlook rather than those shown in the question? Here is how Outlook handles this situation and it seems sufficient for the functionality implied in the question. There is no ambiguity created by the variability in the number of days in a month because 'last day of every month' means 'the last day of every month regardless of the number of days in the month.' Commented Mar 23, 2013 at 10:25

6 Answers 6


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 My Wireframe of a better workflow

I've revised the artwork slightly: enter image description here

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.

enter image description here

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.

  • 10
    I would get rid of "Always do this". Those things are usability hell: they are very difficult to unset, and hide the prompt forever Commented Mar 22, 2013 at 18:33
  • 1
    No option to schedule these appointments for the 1st of the next month?
    – dan04
    Commented Mar 23, 2013 at 0:26
  • 1
    Given that you state that Outlook is probably closer to users' intent, what is the value in forcing the user through an extra step?
    – nadyne
    Commented Mar 23, 2013 at 3:08
  • @nadyne probably closer to most users intent. If you decide that you are going to guess at a users intent, it's best to confirm this guess with them than just do it. The way outlook does it, you still have to click 'Ok' once, and this way you also only have to click once.
    – JohnGB
    Commented Mar 23, 2013 at 13:15
  • How do you know that it wasn't confirmed? Clicking OK once is correct in terms of number of clicks, but is not correct in terms of cognitive load for the user. When the application explicitly asks the question of intent, even though it's extremely likely that the user means "on the last day of every month", the user has to stop, read the text, and then consider which of the answers is closest to their intent. I think it's significantly better to reduce cognitive load, get the 80% case right (although it's more than 80% for this), and let those in the <20% case figure out another method.
    – nadyne
    Commented Mar 23, 2013 at 19:40

The underlying problem here is that there is a conflict when you say

  1. Repeat every month
  2. on the 31st day

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.

  • But both apps say “Repeat monthly”. “Monthly” means that the event is supposed to occur every month. Commented Mar 24, 2013 at 11:32
  • It would make sense to say that the 31st day of November is the 1st of December. Commented Mar 24, 2013 at 11:33

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.


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.


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.

  • I'm guessing your application would not do well with payroll processing companies. Commented Mar 22, 2013 at 18:47
  • I've never worked anywhere where payday was that late in the month. Perhaps accountants understand this problem.
    – Julian
    Commented Mar 22, 2013 at 18:51
  • 2
    I get paid on the 15th and on the last day of the month. Apparently my company's accountants can manage such complexity.
    – nadyne
    Commented Mar 23, 2013 at 3:11
  • 1
    Thanks, I don't want programmer's guessing what I mean. I'm very grateful if they point out if I'm being stupid.
    – Julian
    Commented Mar 24, 2013 at 9:49
  • That would make sense, logically. But that would not be adapted to the real world. :-) Commented Mar 24, 2013 at 11:35

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.