October 12th, 2014

Natural Language

Everyone is trying to sell "natural language" calendar programs, that let you enter new appointments and reminders more naturally. And that's great, but all the examples they use to sell them are completely noddy ones like "10am next Monday", because doing it properly is very, very difficult. If you want to sell me your program, show me it can cope with these (most of which are real-life examples, not especially made up to be awkward):

  • Every month on the Wednesday after the second Monday that's not a bank holiday, but a week earlier in December

  • On the first Thursday of every month, and also on the last Thursday before Christmas Eve

  • On the Saturday before the first Sunday in December

  • On the Saturday closest to the spring equinox

  • Two weeks before the clocks go forward

  • On the Saturday of the August bank holiday weekend

  • Forty-seven days before the Sunday after the first ecclesiastical (western rite) full moon after the 21st of March (that one is Ash Wednesday, in case you were wondering)

  • Ten working days before Mary's birthday

  • Ten Irish working days before Declan's birthday

  • Three days before the HMRC self assessment deadline

  • On the last working day of the month

  • On the first and third Thursdays of the month, and also on the fifth Thursday if there is one

  • A week before the last posting date for Christmas for Australia

In other words, don't just do the easy bit and leave me to do the hard stuff -- that's not what software is supposed to be for.