Wednesday, June 04, 2008

How to use Google Calendar's Quick Add pseudo-natural language interface

Quick Add: the faster way to create events is a guide to entering strings so Google Calendar can parse them. It's a faster way to enter calendar items than using the GUI, and it can represent more recurrence patterns than the GUI (ex. Every 2nd and 4th Friday of each month, thanks DLW.)

Quick Add is a kind of mid-point between Natural Language Processing (NLP) and a programming language. Perhaps for performance reasons, the gCal text entry interface is not as flexible as a typical NLP interface. It's much less capable of parsing and "understanding" a phrase than a human reader.

On the other hand, it's more accepting than a compiler or interpreter. It will ignore things it doesn't "understand" and make some inferences. The inferencing is often incorrect, so I haven't used Quick Add very much.

If you know what Quick Add expects, however, you can dramatically improve its interpretations. The key pattern is (sorry, you have to memorize this pattern -- it's in english alpha sort order until "Where"):
What(title)-When-Who(invitee list)-Where
What and When are required ...

  • What: This can be any text; the event title is created from this.
  • When: This can be nearly any date and/or time expression. Using “at” and/or “on” can help the recognition.
  • Who: This should begin with “with” followed by a list of email addresses; these are added to the guest list.
  • Where: This can be any text following “at” or “in.”
In other words (the real strings don't have the [] brackets), something like (bold is required):
[Meet Emily] on [7/12/2008] with [emily@somewhere.111, fred@somewhere.111] at [Minneapolis metrodome].
The logic for recurring events extends the "when clause":
When creating recurring events, the time expression has three parts: the start, the repetition, and the end.
[Meet Emily] on [7/12/2008 every month for five months] with [emily@somewhere.111, fred@somewhere.111] at [Minneapolis metrodome]
I think you can see why this interface is nowhere near "natural", but with practice it looks powerful and it's likely to improve.

Call it pseudo-natural.

No comments: