Create iCalendar invitations for custom tables

To generate iCalendar invitations that use field values from custom tables, create an import export map that computes the values of the iCalendar fields.

Before you begin

Role required: admin

Procedure

  1. Create the custom table and fields using the Date/Time field type for the fields that map to the ${dtstart} and ${dtend} variables.
  2. In the navigation filter, enter sys_impex_map.list.
  3. Click New.
  4. Set the following fields:
    • Name: Use the following naming convention: icalendar.<table name>. For example, icalendar.u_my_custom_table.
    • Table: Select the custom table you created.
    • Type: Select icalendar.
  5. Right-click the form header and select Save.
  6. In the Field Maps related list, click New.
  7. In the Mapping Entry Wizard, select Mapping to a Database Field.
  8. Create field mappings for dtstart and dtend. These variables are required.

    For example, map the External Name dtstart to the u_meeting_start_time field in u_my_custom_table.

  9. Click Submit.
  10. Create field mappings for any other iCalendar fields as necessary.
  11. Click Update.

    Here are sample field mappings between iCalendar variables and custom fields in a custom table, u_my_custom_table:

    Table 1. Sample field mappings
    External name Database field Type Map
    dtstart u_meeting_start_time field icalendar.u_my_custom_table
    dtend u_meeting_end_time field icalendar.u_my_custom_table
    description u_meeting_description field icalendar.u_my_custom_table
  12. Create an email template that defines what to include in the iCalendar invitation.
    1. Set the Table field to the custom table you created.
    2. In the Message text field, use the following format to define the iCalendar invitation.
      BEGIN:VCALENDAR 
      PRODID:-//Service-now.com//Outlook 11.0 MIMEDIR//EN 
      VERSION:2.0
      METHOD:REQUEST 
      BEGIN:VEVENT 
      ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:${to} 
      DTSTART:${dtstart} 
      DTEND:${dtend} 
      UID:${sys_id} 
      DTSTAMP:${dtstamp} 
      DESCRIPTION:${description} 
      SUMMARY:${u_meeting_summary} 
      END:VEVENT 
      END:VCALENDAR
      
      Note: Mail script is not allowed or processed in meeting invitation email templates.
      Table 2. iCalendar invitation template details
      iCalendar template line Required? Notes
      BEGIN:VCALENDAR Yes
      PRODID:-//Service-now.com//Outlook 11.0 MIMEDIR//EN Yes
      VERSION:2.0 Yes
      METHOD:REQUEST Yes
      BEGIN:VEVENT Yes
      ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:${to} Yes
      DTSTART:${dtstart} Yes You must use the import export map to map dtstart to a start time field on the custom table.
      DTEND:${dtend} Yes You must use the import export map to map dtend to an end time field on the custom table.
      UID:${sys_id} Yes You must provide the name of a field that uniquely identifies the record, such as the sys_id or the record number field.
      DTSTAMP:${dtstamp} Yes
      DESCRIPTION:${description} No To include a multiple line description, you must use the import export map to map description to a text field on the custom table. The field mapping ensures that the system encodes line breaks correctly for the iCalendar file format.
      SUMMARY:${u_meeting_summary} No To include a summary from a text field on the custom table, provide the name of the field, such as u_meeting_summary. The summary field value must not contain line breaks. You do not need to create a field mapping.
      END:VEVENT Yes
      END:VCALENDAR Yes
  13. Create an email notification to trigger the iCalendar invitation and ensure the following fields are set accordingly:
    • Table: Select the custom table.
    • Type: Select Meeting Invitation.
    • Content type: Select Plain text only.
    • Email template: Select the template you created.