Editor's note: Know a lot about this topic? Want to share your expertise? Participate in the IBM Lotus software wiki program today.
iCalendar is an Internet standard (RFC 2445) for deploying interoperable calendaring and scheduling services for the Internet. The standard is sometimes referred to as iCal. The iCalendar format is suitable as an exchange format between applications or systems, thereby allowing users of different Internet mail applications to exchange calendar information. iCalendar information is formatted as a Multipurpose Internet Mail Extensions (MIME) content type: text/calendar. MIME enables the object to be exchanged using several transports, including SMTP, HTTP, a file system, and desktop interactive protocols such as the clipboard or drag-and-drop interactions, point-to-point asynchronous communication, and wired-network transport. iCalendar allows users to send meeting requests and tasks to other users through email. Recipients of the iCalendar email (with supported software) can respond to the sender easily, or they can counter-propose another meeting date or time. iCalendar is implemented and supported by a large number of products.
vCalendar is an older standard exchange format for calendar data promulgated by the Internet Mail Consortium (IMC). iCalendar, a newer standard for calendar data, is version 2.0 of the vCalendar specification. Lotus Notes and Lotus Domino iCalendar support is designed to handle older vCalendar data also.
iCalendar interoperability overview
The difference between iCalendar and traditional calendar and scheduling is that iCalendar is not specific to a single domain. Users can schedule meetings with other domains by using the invitee's Internet mail address. In addition, instead of routing the invitation through adjacent and nonadjacent domain documents, it is routed directly through an SMTP server.
For example, a Lotus Notes user (user A) in one company can send an invitation to a Lotus Notes user (user B) in another company over SMTP or to a non-Lotus Notes user (user C) who uses a different mail client that supports iCalendar. Instead of receiving the invitation in a textual email format, both user B and user C receive a calendar invitation with full meeting workflow; User B and user C can respond (accept, decline, and so on) to the invitation as if it were sent over Notes Remote Procedure Calls (NRPC). NRPC is the Lotus Notes-based protocol for routing mail internally within a single Lotus Notes domain or between Lotus Notes domains. In Lotus Notes 8.5, iCalendar interoperability between different mail clients has been improved; see figure 1.
Figure1. iCalendar interoperability supported between different mail clients
For iCalendar interoperability, how and when iCalendar conversion happens is up to different configurations when users communicate between either different mail clients or different Lotus Notes domains. There are two ways to convert iCalendar, through the Lotus Notes client and through the Lotus Domino server.
iCalendar conversion can occur on the Lotus Notes client
In the sender’s location document, if the "Send outgoing mail" setting in the mail tab is set to directly to Internet, iCalendar conversion always happens on the Lotus Notes client for all recipients.
In the sender’s location document, if the Send outgoing mail setting on the mail tab is set to through Domino Server, then the Format for messages sent to Internet addresses option displays with the values Notes Rich Text Format or MIME Format. When the MIME Format option is selected, SMTP recipients and Lotus Notes recipients whose names are not resolved as Lotus Notes addresses go through iCalendar conversion on the Lotus Notes client. Lotus Notes recipients whose names are resolved as Lotus Notes addresses do not go through iCalendar conversion.
iCalendar conversion on the Lotus Domino server
Any time that iCalendar conversion does not happen on the Lotus Notes client and the message needs to be routed through SMTP, the Lotus Domino server converts that message to iCalendar.
In the sender’s location document, if the Send outgoing mail setting on the mail tab is set to through Domino Server, the Format for messages sent to internet addresses option displays with the values Notes Rich Text Format or MIME Format. If the Notes Rich Text Format option is selected, non-Lotus Notes recipients undergo iCalendar conversion on the Lotus Domino server, but Lotus Notes recipients do not go through iCalendar conversion.
iCalendar interoperability improvement
In Lotus Notes versions earlier than 8.5 , Lotus Notes calendar and scheduling functions have many features that other iCalendar vendors do not support well, causing some iCalendar interoperability issues between Lotus Notes and other calendar applications. In Lotus Notes 8.5, new features were implemented, such as compatibility mode and Lotus Notes registration as a calendar handler, to improve iCalendar interoperability between Lotus Notes and Microsoft® Outlook or between Lotus Notes and other mail clients.
Compatibility mode introduced
Some iCalendar interoperability limitations and issues exist between the versions earlier than 8.5 of Lotus Notes and Microsoft Outlook and the versions earlier than 8.5 of Lotus Notes and other mail clients. For example, when a Lotus Notes chair sends a repeating meeting invitation to non-Lotus Notes invitees who have mail programs other than Lotus Notes, some severe interoperability problems can arise. Because some mail programs such as Microsoft Outlook have calendars that don’t support all the Lotus Notes features for repeating meetings, severe interoperability issues, including the loss of repeat instances or of message fidelity, can occur in these situations:
- When updating more than one repeating meeting instance at a time
- When using custom repeating meetings
- When specifying weekend rules for repeating meetings
To avoid unnecessary trouble to users, Lotus Notes 8.5 introduced the concept of compatibility mode to improve iCalendar interoperability between Lotus Notes and the other calendar applications. The compatibility mode makes the calendaring features that are not supported by other mail clients, inclusing Microsoft Outlook and Exchange. unavailable on any meetings that have compatibility mode selected.
In Lotus Notes 8.5, a new option is available on the meeting form. The option "ome invitees use other mail programs displays with other response and workflow options. Figure 2 shows this option and the "i" that indicates that help is available. The meeting chair selects this option for best results when sending invitations to users of other mail programs.
Figure 2. Compatibility mode UI: New option added
The option Some invitees use other mail programs is not included on the meeting form by default because it is not intuitive to users. Administrators can push down an INI parameter ($CSCompatibilityMode) to the client and server router code using existing capabilities, which control whether the check boxes in which the user can enable or disable the compatibility mode on a meeting instance are visible. The INI parameter has four settings that support the option:
- The check box is not visible, and the compatibility mode is not set by default on the invitation. This setting is the default setting for the Lotus Notes 8.5
- The check box is visible, and the compatibility mode is set by default on the invitation.
- The check box is visible, and the compatibility mode is not set by default on the invitation.
- The check box is visible, and the compatibility mode is set and locked by default on the invitation.
By selecting the option Some invitees use other mail programs, users can send invitations to users of any of these mail programs:
- Outlook 2003/Exchange 2003
- Outlook 2007/Exchange 2007
- Outlook 2003/Exchange 2007
- Outlook 2003/Gmail (POP 3)
- Outlook 2007/Gmail (POP 3)
Lotus Notes registered as a calendar handler
Lotus Notes 8.5 gives users a chance to register Lotus Notes as a calendar handler during installation, so that they can double-click an ICS file from the operating system or from a memo to display the add calendar window, the import window, or an actionable calendar form.
When they install Lotus Notes 8.5, users see three options in the Ready to Install the Program page of the installation wizard. One of the options, Make Notes my default calendar program, shown in figure 3, is selected by default.
Figure 3. Setting to register Lotus Notes as a calendar handler
Selecting this option not only associates the ICS file with Lotus Notes, but also makes Lotus Notes the default calendar program used to process ICS files. Whether users double-click the ICS file saved from the operating system or saved in a Lotus Notes document (that is, an ICS file attached in a memo), Lotus Notes can recognize it and process it.
For the ICS file representing PUBLISH data, users can double-click the file to be opened from the operating system (that is, from the desktop) or from within a memo. Users have the option to import calendar entries into the calendar or to add the entries as a calendar overlay in the "Show Calendars" option.
For the ICS file representing WORKFLOW data, users can double-click the file to be opened from the operating system (that is, from the desktop) or from within a memo. The workflow then is opened for users to act upon. Especially for the ICS file containing a single workflow event, it is opened as a processable calendar invitation in the Lotus Notes 8.5 client.
Import/add to calendar
In Lotus Notes versions earlier than 8.5, for an ICS file representing publish data, users have to import the ICS file into their calendar view to read the ICS content. Sometimes, the imported items can conflict with existing items in the users' calendar. Lotus Notes 8.5 improves the import feature and implements the new Add to calendar option to resolve the issues in earlier versions of Lotus Notes and to facilitate users’ application demand.
In Lotus Notes 8.5, for an ICS file representing publish data, users have two ways to import it. One way is the import function, which is a true import. After importing, the calendar entries imported do not display in the navigator; instead, the entries are added to the user’s personal calendar. The other way is to select the Add to Calendar option. After users add the publish data to the calendar, the calendar entries display in the navigator as iCalendar feeds. Users can choose the better way to meet their work need.
After registering Lotus Notes as a calendar handler, users double-click an ICS file representing the publish data. Lotus Notes has two ways to process this publish data: Import these entries into your personal calendar and Add this calendar to your Show Calendars list as shown in figure 4.
Figure 4. Two options for publish data
If users selected the option Import these entries into your personal calendar, the Import Calendar window shown in figure 5 displays. The Calendar Name field contains a name value assigned by default.
Figure 5. Import Calendar window
After users click OK, the window shown in figure 5, which reports that the calendar was successfully imported into the Lotus Notes calendar, displays. After the calendar entries are imported successfully into the users' personal calendar, users can see them in the calendar view.
Figure 6. The Import Calendar message window
Add to calendar
If users select the option Add this calendar to your Show Calendars list, the Add a Calendar window displays as shown in figure 7.
Figure 7. The Add a Calendar window
In the Add iCalendar feed section of the window, users need to enter ics test in the Label field; the file path in the URL field is automatically populated. Also, users can set the display options for the added calendar entries by selecting colors for the background, text, and entry icon. Users can select the option View this calendar when offline or on a mobile device to view the calendar entry offline. After users click OK, the window shown in figure 8, which reports that the calendar has been successfully added, displays.
Figure 8. The Add a Calendar message window
After a calendar is successfully added, it displays as one of the calendars listed under the Show Calendars option in the navigation, as shown in figure 9. This option works best for calendars that users periodically want to see but do not want to embed in their personal calendar.
Figure 9. Calendar added to the Show Calendars list
When users double-click an ICS file representing workflow data, if the ICS file is with a single workflow event, it is imported to the users' inbox and calendar. Then it is opened directly as a calendar invitation so that user scan see action buttons on the invitation for Accept, Decline, and so on. If the ICS file contains multiple workflow events, the window shown in figure 10 displays. The Multiple Calendar Entries in ICS File window allows users to extract all the events or selected events to their inboxes and calendars.
Figure 10. The Multiple Calendar Entries in ICS file window
iCalendar interoperability application
Let's explore an interoperability application by discussing a typical scenario. Samantha uses Lotus Notes, and she sends an invitation to her friend Mark, who uses a different calendar program (Microsoft Outlook). Mark can take all the various workflow actions he would normally be able to take. Samantha, in turn, can perform all the regular workflow actions without having to worry that Mark has different abilities than Lotus Notes users have. To make sure of that interoperability, Samantha needs to set up her iCalendar environment in the Lotus Notes 8.5 client.
First, Samantha must make sure that the SMTP service is started in the Lotus Domino server as shown in figure 11. She needs to select Server Tasks – SMTP Server – Listen for connect requests on TCP Port 25.
Figure 11. SMTP service started in the Lotus Domino server
Next, Samantha must create an SMTP account in her Lotus Notes client as shown in figure 12. She needs to follow these steps:
- In the Contact database, Select Advanced - Accounts - New - Account.
- In the Account name, enter a name for the new account; in this example, she enters test.smtp.
- In the Account server name field, enter the name of the host on which the Lotus Domino server is started. In this example, she enters test.cn.ibm.com.
- In the Protocol field, select SMTP.
- In the SSL field, make sure that the default setting Disabled is selected.
- In the Only from location(s) field, make sure that the asterisk (*) default setting is selected.
Figure 12. The Creating SMPT Account window
Finally, Samantha needs to configure the location document in the Lotus Notes 8.5 client She needs to follow these steps:
- Create a special location for iCalendar interoperability.
- In the Mail tab of the Edit Location window, in the Send outgoing mail field, select the option directly to Internet.
- Input the host name or IP address where the SMTP service is started.
- Click OK to save this location.
Figure 13. Edit Location window
After she has completed the configuration, Samantha has achieved iCalendar interoperability with Mark. She can now send a meeting invitation or reschedule meetings with full iCalendar interoperability.
In IBM Lotus Notes 8.5, iCalendar interoperability has been improved with new features. This article can help users interested in the Lotus Notes use of iCalendar to better understand, deploy, and operate the application promptly and effectively.
- Read the developerWorks Lotus article, "What's new in IBM Lotus Notes 8.5"
- Read the developerWorks® Lotus article, "IBM Lotus Domino going green: The new Lotus Domino attachment and object service"
- Read to the Lotus support site for more information on iCalendar and vCard in IBM Lotus Domino.
- Refer to the Lotus Notes and Domino wiki
- Refer to the IBM Lotus Notes and Domino product page.
Get products and technologies
- Download a trial version of Lotus Notes, Lotus Domino Designer, and Lotus Domino Administrator 8.5.
Dig deeper into IBM collaboration and social software on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Keep up with the best and latest technical info to help you tackle your development challenges.
Software development in the cloud. Register today to create a project.
Evaluate IBM software and solutions, and transform challenges into opportunities.