Home > Articles

This chapter is from the book


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.

Open Standards

iCal gets its name from both Apple's i marketing department and the calendar standard it supports—iCalendar. 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:

DESCRIPTION: A Classic Ms. Pacman Arcade Game. Mint Condition
DESCRIPTION:Event reminder

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.10Figure 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 Calendars—Home 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 calendar—whether 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.11Figure 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.12Figure 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.

Event Invitations

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.13Figure 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 window—a 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.14Figure 3.14 An invitation is in progress.

Event Info

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 Title—The name of the event being edited.

  • Event location—An arbitrary value, presumably where the event is taking place.

  • All-day—Whether it is an all-day event (not scheduled for a specific time).

  • From/to—The date/time/duration of the event.

  • Attendees—Covered previously.

  • Status—The status of the event (Tentative, Confirmed, or Cancelled).

  • Repeat—If 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.

  • Alarm—Choose 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.

  • Calendar—The calendar the event is stored on.

  • URL—A URL pertinent to the given event.

  • Notes—General 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.15Figure 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.16Figure 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 Name—The name that the subscribers see when viewing your calendar.

  • Publish Changes Automatically—Automatically update your published calendar when you make local changes in iCal.

  • Publish Subjects and Notes—Publish the subject and note fields for events.

  • Publish Alarms—Publish alarm information (alarm type, time, and so on) along with your events.

  • Publish To Do Items—Include 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.17Figure 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 jray@macosxunleashed.com.


A few final preferences can be set from the iCal application preferences, shown in Figure 3.18.

Figure 3.18Figure 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.

  • Import—Import calendar data from Entourage and iCalendar or vCal format files.

  • Export—Export the active calendar to an iCalendar format file.

  • Print—Print a copy of the active calendar view.

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020