Version 1.2
We recently developed a new web application that allows you to call a number from your cellphone, say something like "Have insurance meeting with Bobby tomorrow at 3pm" and have a new event for exactly that added to your Google Calendar. You can also call that number and say "Get events from 9/21/2007 through 9/25/2007" and it will email you (and text message you if you want) with a list of those events. We do this with (lost of) help from another neat little app we mentioned a while back known as Jott.
As we mentioned before, "Simply put, [Jott] allows you to send a short email to anyone in your Jott contacts. Not using a computer, not via BlackBerry, and not exactly by text messaging through your cellphone. The thing that makes Jott unique is that it allows you to simply speak what you want emailed." Jott recently released a new feature called Jott Links that allows you to Jott directly to popular web applications such as Blogger and Twitter. This is all fine and dandy, but the really great thing is that Jott Links has an API! That means we can now develop applications that use Jott without any nasty hacks.
So, we wrote a small application that allows you to work with your Google Calendar using Jott. You do this by either saying something like, "Go to the bar on Friday at 10pm" to add an event or by saying something like, "Get events from monday to wednesday".
How to Set It Up
Let's get started.
- Edit: Due to recent changes in Google's authentication you should first log in using this link on Google's site to avoid "Captcha" errors.
- Get a Jott account (if you don't already have one.)
- Log into your account and click on the Jott Links tab, or click here.
- In the "My Links" panel to the right, click on the icon at the bottom that reads, "Developers - Got a custom link to add? Add it here"
- Fill in the information on this page as follows:
Link Name: Google Calendar
Setup Url: http://www.grinn.net/jott2gcal
Link Url: http://www.grinn.net/jott2gcal/convert.aspx - If you want, check "Send SMS Response"
- Check "I have read and agree to the Terms of Service" (oh... and read them.)
- Click Add. This will take you to a screen prompting you for your Google Calendar Login information. This is normally your GMail account and password.
- Type your login information into the form. Don't worry, we won't give out your information and it's all encrypted and stuff before being saved on our servers.
- Click Save.
- Read the little blurb and click the Click Here to Continue link.
- Continue reading below for how to use it.
How to Use ItTo use the service, all you do is call the Jott number on your phone (1-866-JOTT-123). When the lady says "Who do you wanna Jott?" say "Google Calendar" (or whatever you set the Link Name as in Step 4). She'll confirm what you said. When you hear the beep, you simply say whatever you want added as an event or what date(s) you want to know the events for. I'll explain the syntax for you.
Originally we were going to use the same syntax as Google Calendar's QuickText feature for adding events, mainly because that would be a lot easier than writing our own translator. But, although the QuickText feature is rather "typed English" friendly, it wasn't what was best for "spoken English". So, we wrote our own translator with its own custom syntax:
To add an event:calendar name calendar, event title on date at time for lengthTo get a list of events:get (events for) date (to/through) date calendar name calendarExamples for adding events:
- "Work calendar, Insurance adjustment meeting on Monday at 10pm for 1 hour and 30 minutes."
- "Walk the dog for 45 minutes at 5:30 pm on Tuesday."
- "TV calendar, watch Aqua Teen Hunger Force at 10pm on Saturday."
- "Pick up the car on Friday at 7am."
Examples for getting a list of events:
- "Get events for Monday."
- "Get events for Tomorrow through Thursday."
- "Get events for 4/10/2007 through 4/28/2007."
That's all you really need to know to get started using Jott to Google Calendar. But if you're curious or get stuck, keep reading for additional details on how it works.
Rules for Adding Events:- Everything is optional. You can specify every part such as "Work calendar, Insurance adjustment meeting on Monday at 10pm for 1 hour and 30 minutes" or give just the title such as "Fix the car". Saying just the title will add the event as an all day event for today.
- When giving time, speak in hours and minutes. So you could say "Walk the dog for 45 minutes at 5:30 pm on Tuesday" or "TV calendar, watch Aqua Teen Hunger Force at 10pm on Saturday for 4 hours and 30 minutes".
- You can't give a length without a time. This is only logical. You can't say you want something to be an hour long if we don't know when it starts.
- There are a few shortcuts.
- You can use "today", "tomorrow", or "yesterday" instead of "on (date)". So you could say "Pick up the car tomorrow at 7am".
- You can use weekday names instead of specific dates (which the app actually prefers) such as "Pick up the car on Friday at 7am". It will schedule your event for the next date that weekday comes around.
- You can say "one and a half hours" instead of "one hour and 30 minutes". You can also say "half an hour" or "an hour and 30 minutes" or "an hour and a half" or any such combination.
- (Almost) everything can be in any order. With the exception of optionally specifying which calendar to add the event to, you can put the separate "parts" of the Jott in any order you like. For example, you could say "Personal calendar, Go to Michelle's party on Wednesday at 10pm for 3 hours". You could also can say "Personal calendar, on Wednesday go to Michelle's party at 10pm for 3 hours" or "Personal calendar, for 3 hours on Wednesday at 10pm go to Michelle's party" or give the items in any other order.
Rules for Getting Events:
- Say "get". If your message starts out with the words "get" it will be assumed that you wish to retrieve your list of events. If you want add an event where the title begins with "get", just specify the calendar as well. For example, "TV calendar, get ready for some football on Monday" will add an event, while "get events for Monday" will return next Monday's events.
- Say one or two dates. If you just give one date like, "Get tomorrow" or "get April 28, 2008" you will be messaged with all the events for that one day. If you say two dates you will be messaged with all the events from the first date through the last date (inclusively) like, "Get events for April 3rd, 2008 through April 10th, 2008".
- Optionally, say a calendar. If you want to get events on any calendar other than your default (the first calendar you created) all you have to say is "calendar name calendar" at the end. For example, if you have a calendar called Personal that you wanted to get today and tomorrow's events for, you would say "Get events for today and tomorrow, Personal calendar".
- Anything else is ignored. Anything other than "get", the date(s), and the calendar is ignored. This allows you to phrase your request just about any way you want. You could say "Get all events from today until December 25th, 2007, Work calendar" or simply "Get today December 25th, 2007, Work calendar" - it doesn't matter. The only exception is that it is assumed that anything between the last date and the word "calendar" will be the name of your calendar.
Detailed Explanation
calendar name
Jott to Google Calendar knows all of the calendars you subscribe to. You can add to or list events from any of your calendars by saying "[calendar name] calendar". When adding events, if you don't have access to add events to the specified calendar or if you don't specify a calendar it will add the event to your default calendar (the first calendar you added to Google Calendar). You can list events from any of your subscribed calendars. If the calendar you specify isn't found or you don't specify a calendar, the events from your default calendar will be messaged to you.
Examples:Work calendar, Purchase new widgets for office floor on Thurday.
Get events for 10/5/2007 through 10/10/2007, Work calendar.
event titleYour event title is what will appear as the text for that event. It can contain any text, including reserved words (such as
on,
at, or
for). For the most part you don't have to worry about this mixing up
Jott to Google Calendar. It'll know what you mean.
date
When adding an event, the date portion is what day you want the event to occur on. When retrieving a list of events, you'll specify either a single date that you wish to list the events for, or two dates if you want to retrieve a list of events spanning multiple days. There's several ways you can specify the date:
By saying the weekday: "Wednesday", "Friday", etc. This will indicate events for the following Wednesday or Friday, respectively.
By saying any of the supported shortcuts: You can use "today", "tomorrow", or "yesterday" instead of "on (date)". So you could say "Pick up the car tomorrow at 7am" or "Buy groceries on your way home from work today at 6:30pm" or "Get events for today and tomorrow".
By saying the date itself: "four twenty-eight, 2008" or "April 28th, 2008" will work for representing 4/28/2008.
Currently, multi-day or repeating events are not supported for adding events.
time
You can give the time in any standard numeration such as "10:30 am" or "4:45 pm". If you don't specify AM or PM
Jott to Google Calendar will try and guess what you meant. For example, if you say, "Pick nose today at 3" it will assume you mean 3pm. However, it's assumptions may not be correct (maybe you want to pick your nose at 3
am) so it's still suggested to specify AM or PM in your times.
Military time has limited support.
Example: Pick up breakfast tomorrow at five-thirty am
length
The length specifies how long your event should last. It can be specified in just about any reasonable way imaginable. The best way is to give it in hours and minutes such as "
2 hours, 30 minutes", "2 hours", or "45 minutes". You can also say stuff like "one and a half hours", "half an hour", "an hour and 30 minutes" or "an hour and a half". You can't say "for all day". Instead just say "all day" like "Spend time with Aunt Anna-Carolyn on Wednesday all day".
Example: Personal calendar, sell soul on eBay on Thursday at 6pm for 45 minutes.
Thanks for checking this thing out. It's a work in progress but hopefully it will help make your life easier. Please feel free to leave us a comment if you have any suggestions or to let us know how it works for you!
Updates
- 10/08/07:
- Upgraded the Google Calendar API to the new version (1.1).
- Updated error reporting on the configuration page to be more friendly and more easily noticed.
- BUG FIX: People were experiencing an issue when using Jott to Google Calendar in a different timezone than where our server resides (EST.) Google Calendar would add your event when it would occur in EST instead of when you said. For example, if you were in CST and you added an event to your calendar using Jott2GCal for 12pm, it would instead add that event onto your calendar at 11am. There actually wasn't even a way (that I know of) to correct this issue before the new Google Calendar API came out a few days ago, and the way we fixed it is a bit of a hack, but should work for now until Google comes out with something to specifically address this issue.
- BUG FIX: If you had never used Google Calendar, an error would occur when attempting to set up your account with Jott to Google Calendar. Now a more friendly message with instructions is displayed.
- 10/06/07:
- You no longer have to say AM or PM for your times, but it's still suggested. If you don't specify AM or PM Jott to Google Calendar will try and guess what you meant. For example, if you say, "Pick nose today at 3" it will assume you mean 3pm. However, it's assumptions may not be correct (maybe you want to pick your nose at 3am) so it's still suggested to specify AM or PM in your times.
- BUG FIX: I don't know why anyone was doing this, but an error was thrown if someone tried to access convert.aspx using a Jott Link that wasn't registered with our site. Now it just tells them they need to register first.
- BUG FIX: From the start we've experienced the occasional connectivity issue with Google's servers. When this happens, Jott2GCal will retry a number of times before giving up. It seems we still sometimes don't retry enough, so we increased the number of times it retries and increased the amount of time it waits between retries.
- 09/26/07:
- Updated the Jott to Google Calendar translation algorithm so your items (for the most part) no longer have to be in a specific order. You still need to say your calendar name at the beginning of the Jott, but you can say the rest of the message in any order you please. For example, you previously would have to say "Personal calendar, Go to Michelle's party on Wednesday at 10pm for 3 hours". Now, if you like, you can say "Personal calendar, on Wednesday go to Michelle's party at 10pm for 3 hours" or "Personal calendar, for 3 hours on Wednesday at 10pm go to Michelle's party" or give the items in any other order. This greatly simplifies the syntax of the thing and makes it more natural to use.
- Optimized the response messages when adding a new entry for SMS. Now when you add an entry it just says "Jott Added to Google Calendar: [Your Jott]".
- If an error occurs when we think you are attempting to "get" your messages, it will now try and add a new event using your text instead of just returning an error.
- FIX: Sometimes when you say "O'Clock" as in 10:00, Jott spells out "O'Clock". We now expect this and handle it appropriately.
- 09/21/07:
- Added "get" functionality. Now not only can you add to your Google Calendar, you can retrieve a list of events by saying things like "Get events on next monday", "Get events from 9/21/2007 through 10/31/2007", "Get events for tomorrow" or simply "Get wednesday through friday". A list of events will be sent to your email and cellphone via SMS (if selected when configuring your Jott Link.)
- Enhanced error reporting. Now all errors will be handled and when an error occurs, our development team will be immediately notified.
Did you find this useful?
Digg It!Labels: Google, Jott, jott2gcal, Mobile, Neat Stuff, Web 2.0