The iCal calendaring solution is Apple's first in-house calendar for the Macintosh and one of the only available standards-based scheduling applications for the Macintosh. iCal supports network calendar publishing and subscribing, event notifications and invitations, and, of course, a lovely Aqua interface.
iCal gets its name from both Apple's i marketing department and the calendar standard it supportsiCalendar. The iCalendar standard is defined in RFC 2445: http://www.ietf.org/rfc/rfc2445.txt. For a change, we can blame someone else for adding the "i" in front of an otherwise perfectly usable title. The iCalendar format is an object-oriented description language that can define a series of event objects within a calendar object, and a series of alarms within each event.
For example, a single one-calendar, one-event, one-alarm iCal file looks like this:
BEGIN:VCALENDAR CALSCALE:GREGORIAN X-WR-TIMEZONE;VALUE=TEXT:US/Pacific VERSION:2.0 BEGIN:VEVENT SEQUENCE:1 UID:1380303474 DTSTAMP:20020910 SUMMARY:MS PACMAN Auction DESCRIPTION: A Classic Ms. Pacman Arcade Game. Mint Condition DTSTART;TZID=US/Pacific:20020917T121631 DURATION:PT1H00M BEGIN:VALARM TRIGGER;VALUE=DURATION:-PT15M ACTION:DISPLAY DESCRIPTION:Event reminder END:VALARM END:VEVENT END:VCALENDAR
The BEGIN and END statements mark the start and end of an iCal object definition. In this example, a calendar object in the Pacific time zone is created; then an event is defined for a Ms. Pacman arcade game auction that starts on 09/17/2002 at 12:16:31AM and lasts for 1 hour and 00 minutes. Within that event, an alarm is defined that displays a warning when the current time is equal to the auction time minus 15 minutes.
By basing iCal on a standard, Apple has opened up the door to integration with enterprise calendaring solutions (including MS Exchange) and the exchange of information to and from a wide variety of platforms such as the Windows Outlook client.
Using iCal Calendars and Views
On starting iCal, you see a three-paned window, shown in Figure 3.10. This serves as your workspace while using the application.
Figure 3.10 The iCal workspace gives you complete control over your schedule.
The upper-left corner contains the Calendars list. Each calendar that you've added or subscribed to is displayed here. By default, iCal comes with two CalendarsHome and Work. You can feel free to delete these or use them. New calendars are added by clicking the "+" button at the bottom of the left-hand pane, or by choosing File, New Calendar (Option-Command-N). Calendars can be deleted by highlighting them in the list and pressing the Delete key, or by choosing Edit, Delete from the menu.
Calendars with a checked check box in front of them are "active" and are displayed in the main calendar view to the right of the Calendars list.
Directly beneath the Calendars list is a mini-month view. Move through the months using the three icons (up arrow, diamond, and down arrow) to move back, to the current day in the calendar view, or to the next month, respectively. Clicking a date within one of the mini-months jumps the main calendar view to that day. You can collapse this view dragging the divider line between the Calendars list and the by-month view, or click the calendar icon at the bottom of the iCal window.
Along the bottom of the iCal window are several additional controls. The Day, Week, and Month buttons determine the view-style of the main calendarwhether you're looking at a single Day, Week, or Month. The arrows to either side of these buttons move forward and back to the next appropriate calendar "unit" (Day, Week, or Month).
In the bottom center of the window is a single Search field. Typing in this field displays (as you type) a list of events that match the string you've entered. Figure 3.11 shows a calendar search in action. The search works only across the calendars currently checked in your calendar list.
Click an event in the search results that you want to jump to, and it will be highlighted in the main calendar view pane.
Finally, to the right of the Search field are three additional buttons. The first button hides or shows the search results. The second shows or hides a new pane to the right of the main calendar view containing To Do items. The third opens a window drawer containing detailed information about the currently selected event, calendar, or To Do item.
Figure 3.11 Search for an event in your calendars.
Adding and Editing Events
Adding an event is easiest within the Day or Week calendar views. Highlight the calendar that should hold the event, navigate in the main calendar view to the day where you want to create an event, and then click and drag from the start time to the end time. As you drag, the event end time will be displayed near your cursor.
A New Event box is drawn that covers the selected time, and, when you release the mouse button, the subject (title) is highlighted. Start typing immediately to enter a new subject (title), or double-click the event subject to edit it after it has been deselected. Figure 3.12 shows a day view with a new event (Meeting with Anne G.) added.
After an event is added, it can be dragged between different time slots, or days. The event duration can be changed by putting the cursor at the bottom edge or top edge of the event block and dragging it to resize the box. You can also add new events using File, New Event (Command-N). This creates a new one-hour event starting one hour after the current time but on the selected day. Use the editing techniques discussed previously to position and change its duration.
Although events on the same calendar cannot be "drawn" over the same time slot, you can make two events at the same time with the same duration by creating them in separate time slots and then dragging them to the same slot.
Figure 3.12 Add new events by clicking and dragging to cover the desired time span.
If you prefer working within the Month view, you can add new events in this view by double-clicking on the calendar cell of a given day. This creates a new event and extends the Information drawer, which provides convenient access to the time/duration values for the event.
If you'd prefer to edit the event duration by dragging, you can quickly jump to the Day view by double-clicking the date (number) in the Month view.
To set these attributes, quickly jump to the Day view by double-clicking the day's number within the Month view.
To remove any event, highlight it in any of the three calendar views; then press your Delete key, or choose Edit, Delete.
Events don't usually happen in a vacuum. If you're planning a party and no one else is invited, you may have a problem. iCal supports the notion of event invitations and acceptance. After creating an event, you can invite other people listed in your address book to the event, and they, in turn, can accept or decline. All without having to type a thing or interpret someone's cryptic response.
To send an invitation, switch to the Day or Week calendar view so that the event you want to send invitations for is visible. Next, open the Information drawer. You should see a field called Attendees. Here, you can simply start typing email addresses or names. If they are recognized as an Address Book entry, they will be automatically completed. Press Return between multiple addresses. After an address is added and "recognized," it becomes an object in iCal. You can use the small pull-down menu attached to each attendee to choose between multiple email addresses stored for them, or to remove them or manually edit their email addresses, as shown in Figure 3.13.
Figure 3.13 Enter the attendees of your event.
Alternatively, you can invite people in your Address Book to the event by opening the People window (Window, Show People, Option-Command-A) and dragging their individual vCard or a group vCard onto the event within the Calendar View pane. An icon of a person appears in the upper-right corner of the event in Day or Week view mode.
At this point, you've officially told iCal that you want to invite the listed people, but you haven't yet sent invitations. To do this, you must click the Attendees label in the Information windowa drop-down menu appears with the option to send invitations. Choose Send Invitations.
When you click the Send Invitations button, iCal works with Mail to send an invitation file to the people on the list. You'll also notice the attendees are displayed with a "?" icon in front of their names. This indicates that they are not yet confirmed as attending the event. Confirmed attendees are displayed with a check mark, whereas declined attendees show an "X."
The recipient of an invitation, assuming that he has iCal installed, can double-click the invitation icon in his email. The iCal application on his system displays the dialog box shown in Figure 3.14.
Here the invitee can choose to accept or decline the invite, what calendar to add it to, and whether he should respond to the mailed invitation. If he chooses to respond, another automatically generated message is sent back to the event creator. Clicking the included icon, this time, changes the person's invitation status to "confirmed" for the event. Nifty.
Figure 3.14 An invitation is in progress.
As you've seen, invitation management is one of the uses of the Information drawer as it applies to events. You can also use the Info drawer to change event descriptions, durations, and schedules. Eleven fields are available when an event is selected:
Event TitleThe name of the event being edited.
Event locationAn arbitrary value, presumably where the event is taking place.
All-dayWhether it is an all-day event (not scheduled for a specific time).
From/toThe date/time/duration of the event.
StatusThe status of the event (Tentative, Confirmed, or Cancelled).
RepeatIf an event occurs over several days, weeks, months, or years, use the Repeat field to set how often it appears on your calendar. You can also choose when the recurrences will end, if ever.
AlarmChoose to display a message, send an email, or play a sound. After choosing an action, a second field appears allowing you to set the number of minutes, hours, or days before an event starts that the action will take place.
CalendarThe calendar the event is stored on.
URLA URL pertinent to the given event.
NotesGeneral notes and other information you might want to store about an event.
If you want to store time zone information with events, you can add a Time Zone field to the Event Information display using the iCal application preferences.
To Do Lists
A To Do item differs from an event in that it doesn't take place at a certain time, but often must be completed by a given date. iCal can track your To Do items using the To Do List. Click the pushpin icon in the lower-right corner of the iCal window to display the To Do List, demonstrated in Figure 3.15.
Figure 3.15 The To Do List contains a list of things to do.
To add a new item to the list, highlight the calendar that should contain the To Do item, and then double-click within the To Do List pane, or choose File, New To Do (Command-K). A new item is added to the list. By default, new To Do items have no deadline and can be flagged as "finished" by simply clicking the check boxes in front of them. To the right of each To Do item is a small three-line graph. You can drag your mouse over these lines to set a priority for the item (or use the item's contextual menu).
To Do Info
To add additional notes about a To Do entry and set a deadline, highlight the item in the To Do List and then open the Information Window drawer.
The To Do Info window allows you to enter extended text information about the item, choose whether it has been completed, pick a due date, assign it a priority, pick the calendar it should be a part of, and assign an appropriate URL for extended information.
Calendar Publishing and Subscribing
One of the most useful features of iCal is the capability to publish calendars to a .Mac account or WebDAV share (see Chapter 27, "Web Serving," for information on setting up WebDAV on your computer) and for others to subscribe to your calendar.
To publish an existing calendar to the Internet, highlight the calendar within your calendar list and then choose Calendar, Publish from the menu. The dialog box shown in Figure 3.16 appears.
Figure 3.16 Publish your calendar to a .Mac account or WebDAV share.
First, choose whether you're using a .Mac account or a Web server (WebDAV). If you're using .Mac, iCal automatically uses the account information contained in the Internet System Preferences pane. Otherwise, it prompts for the WebDAV URL, login, and password.
Next, choose the information you want to be published:
Publish NameThe name that the subscribers see when viewing your calendar.
Publish Changes AutomaticallyAutomatically update your published calendar when you make local changes in iCal.
Publish Subjects and NotesPublish the subject and note fields for events.
Publish AlarmsPublish alarm information (alarm type, time, and so on) along with your events.
Publish To Do ItemsInclude any To Do items in the Calendar as part of the publication.
You can change any of these attributes later by selecting the calendar and opening the Information drawer.
Click the Publish button to send your calendar to the remote server. Published calendars are denoted by a "transmission" icon appearing after their name in the Calendar list.
After publishing, you are prompted with the option to Send Mail with your calendar information to those who might be interested in subscribing. You can also choose Visit Page to see a Web view of your Calendar. The Visit Page option is available only to .Mac subscribers for the purpose of publishing and provides a fully interactive Web view of your calendar; users who are not Mac.com members can still visit the Web page just to see the calendar but cannot update it.
If you have your own Web Server and want to publish calendars online, visit http://sourceforge.net/projects/iwebcal/ for a free, Open Source solution.
You can update a published calendar with the latest changes by choosing Calendar, Refresh (Command-R) or Calendar, Refresh All (Shift-Command-R) to refresh all published calendars. To completely remove a Published calendar, use Calendar, Unpublish.
If you start publishing your calendars to a .Mac server and then want to move to a WebDAV server or vice versa, you can easily "move" your published calendars using the Calendar, Change location menu option.
Subscribing to a Calendar
To manually enter a subscription, choose Calendar, Subscribe (Option-Command-S) from the menu. The subscription window shown in Figure 3.17 appears.
Figure 3.17 Enter a URL to subscribe to a calendar.
Enter the URL of an appropriately prepared iCal source, choose how often the calendar should automatically refresh, and choose whether to remove the creator's alarms and To Do items from the calendar.
Click Subscribe after you've configured the subscription to suit your needs. After a few seconds, the subscribed calendar appears in your calendar list (differentiated from local calendars by the "shortcut" arrow following its name). You can refresh a subscribed calendar using the Calendar, Refresh (Command-R) or Calendar, Refresh All (Shift-Command-R) options.
I've created a few dynamic iCal calendar scripts that automatically monitor eBay auctions you're bidding on. If you're interested in getting a copy, email me at firstname.lastname@example.org.
A few final preferences can be set from the iCal application preferences, shown in Figure 3.18.
Figure 3.18 Set a few additional iCal preferences.
Within the Week category, choose whether iCal recognizes a work (5 day) or normal (7 day) week, and what day of the week the calendar should use as the start day.
Use the Day settings to define how many hours are shown in a day, and of those hours, how many are visible onscreen simultaneously without scrolling.
To add a display of the event time within the Month view, click the Show Time in Month View check box.
Add time zone support to the Information window using the Turn on Time Zone Support check box. Turning on time zone support adds a pop-down menu to the upper-right corner of the iCal window where you can choose your zone, and adds a time zone attribute that can be set for events.
Finally, the Events and To Do Items options provide control over how To Do Items are sorted, and when To Do items and events should be deleted or hidden from the Calendar view.
A few minor additional features are available from the iCal File menu that were not covered in the course of this discussion.
As usual, the File menu is used to create new calendars, events, and To Do items. It can also, however, export, import, and print calendar files.
ImportImport calendar data from Entourage and iCalendar or vCal format files.
ExportExport the active calendar to an iCalendar format file.
PrintPrint a copy of the active calendar view.