text2cal

text2cal was created to help people create calendar entries quickly and easily from emails they receive about upcoming events. It takes a dual approach of trying to guess relevant details from the structure of the email, then providing an interface to confirm and alter those details with a minimum of keystrokes.
Currently text2cal only supports iCal, but any email client can be used. For most clients/browsers the experience is as simple as selecting the relevant text and hitting a hotkey. A few programs don't support the TextServices API, and for those the text must be copied to the clipboard before the hotkey is pressed.
download text2cal v1.01
download text2cal v1.03b1(recommended)
Updates:
- Attempts to figure out if you're in a m/d/y area or d/m/y area and do the right thing.
- Added hotkey for using clipboard text instead of selected text for use with incompatible applications
text2cal ReadMe Contents
So, you get all these emails about events, and you want them to go into iCal, but it is pretty
annoying because you can't remember everything about them at once and have to go back and
forth copying and pasting a few times between the programs. This is where text2cal comes in -
it is a service that allows you to grab all the text at once from your email, select the
important times and dates from that grabbed text, and insert the result directly into iCal.
It also makes guesses about the times and dates to make it even easier!
Install
Mount the text2cal_vxx.dmg - is should pop open a window showing the "text2cal" program and an
alias to your "Application Support" folder. Simply drag text2cal into the "Application
Support" folder. (If you are upgrading and don't want to wait for restart to use the new
version, enter "killall text2cal" into the Terminal and hit return. Also delete your old
version so it won't get activated next time you hit the key). It may help to run the "Refresh
Services" program to register the service. In Tiger and later, I believe that the program
will work in most any location if you don't want it in "Application Support".
Uninstall
The only file installed is the text2cal.app that should be located in /Librarly/Application
Support. Trash this file and you're clean. Oh, there is also a preference file, if you care,
in ~/Library/Preferences/com.oatbit.text2cal.plist. (~ is your home directory, ie /Users/Your
User Name/Library/Preferences).
Use:
I like to just select-all in the email, then hit the hotkey for text2cal
(command-shift-comma)*. This will bring up the text2cal window. The text you selected should
appear in the window, and will end up in the "notes" section of the event in iCal. You
probably don't need to read any more, the features are hopefully somewhat apparent, but read
on for more detail:
*If the software you are using doesn't support Text Services (text2cal will by grayed out in
the Services menu despite some text being selected), you can copy the text then activate
text2cal on the contents of the clipboard with a different key command,
command-option-control-comma.
Title:
The focus starts in the event title field. Type in an event title. Alternately, you can
select an appropriate title in the text and hit command-L. If nothing is selected, command-L
just brings focus to this field.
Date & Time:
Tab to the date or time field and hit up and down arrow to select a date or time from the
dates or times guessed from the email. The selected date or time will highlight in the text
to show the context. Potential dates will show up in red, times in green, while the menu is
open. You may also click on dates or times in the text to select them. If a particular part
of the text may be interpreted as a date or a time, your click may be mis-interpreted as the
other type of data. In this case, click again and the data will get re-interpreted as the
other type. Holding shift while pressing the command key associated with this field toggles
through the options. You may also enter a date or time directly - the program will try to
fill in missing parts for ambiguous dates. For example, entering "7" into the date field will
resolve to the "7th" of the current month, or the "7th of the next month if the current
month's 7th is in the past. Day words, such as "tuesday", "tue", "today", "tomorrow" are
supported. The "Days in the future" indicator above the date field offers a quick way to make
sure the date you've entered is roughly when it ought to be.
Calendars:
These calendars are taken from iCal. Thus this menu may be grayed out while iCal launches.
Holding shift while pressing the command key associated with this field toggles through the
options.
All Day:
Toggle this box to set the event to be all-day, instead of a specific time and duration.
command-j toggles this field.
Duration:
Set the duration of the event. command-h selects the field, then up and down arrows
scroll through the selections. times can also be typed in. command-shift-h toggles through
the options.
Location:
This is optional, and allows you to enter the location of an event. If text2cal can
guess a location from the text it lists it here. Other locations you have entered in the past
are also listed in this menu. To select a location directly from the text, highlight it and
press command-R. To cycle through the menu items press command-shift-R.
Show iCal after making event:
This options sets whether ical should come to front and show you the even you just made.
This is recommended for the first few times this software is used, to make sure everything is
working properly. command-s toggles this option.
Make Event:
Click this once all options are set, or press return. This option may be gray
while iCal is starting up (just wait a few seconds!).
Changing the HotKey:
(Note - this technique will work with any services you might have)
(update - try ServiceScrubber to change service hotkeys:
http://www.macupdate.com/info.php/id/20192/service-scrubber )
Or:
Right-click on the text2cal.app, and select "show package contents". Go into the "Contents"
folder, and open the file Info.plist.
If it opens in Property List Editor:
-expand the arrows "Root", then "NSServices", then "0", then "NSKeyEquivalent". It should
have one entry, key "default" value "<". change the value to whatever you like. Note to have
"shift" be part of it, just use the capital. Command is automatically part of it. Unselect
that field (it won't save properly otherwise) by clicking something else, and save the file.
Skip to End.
If it doesn't open, open it in a text editor:
Find this section:
<key>NSKeyEquivalent</key>
<dict>
<key>default</key>
<string><</string>
</dict>
The key is the "<" - change that to what you like (like, to make it command
shift d, put in a capital D. for command d, but in a lowercase d).
After editing the file, you need to rebuild the services database. You can do this by logging
out and in, or by running the "RefreshServices" program bundled on the disk image with
text2cal. This does not always work without a restart, I think.
Random Notes
For extremely long emails a truncated version will show in this window - however
the whole text will go into iCal.
Starting in version 1.02b1, text2cal attempts to figure out whether you are in a m/d/y
location or a d/m/y location and parse dates accordingly. You can see the current format
displayed near the date field. If you want to override this guess and set text2cal to a
particular format, you can change the setting with these command lines:
Override auto-format, choose m/d/y:
defaults write com.oatbit.text2cal OverrideLocaleMonthIsFirstSetting 1
defaults write com.oatbit.text2cal ManualLocaleMonthIsFirst 1
Override auto-format, choose d/m/y:
defaults write com.oatbit.text2cal OverrideLocaleMonthIsFirstSetting 1
defaults write com.oatbit.text2cal ManualLocaleMonthIsFirst 0
Use auto-format:
defaults write com.oatbit.text2cal OverrideLocaleMonthIsFirstSetting 0
Troubleshooting
In the unlikely event that text2cal stops coming up when you hit the key or choose it from the
menu, you can try killing it to give it a fresh start. Open the Terminal
(/Applications/Utilities/Terminal) and type killall text2cal then press return.