---
sourceDocument: Yokohama ServiceNow AI Platform Administration
sourceDocumentLink: https://www.servicenow.com/docs/r/yokohama/platform-administration

 Release :

    - yokohama

ft:locale :

    - en-US

ft:publication_title :

    - Yokohama ServiceNow AI Platform Administration

ft:clusterId :

    - platadm

bundleId :

    - platadm

workflow :

    - Platform


---

# iCalendar invitations for custom tables

# Create iCalendar invitations for custom tables {#ariaid-title1}

* Release version: Yokohama
* 
* Updated January 30, 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes to read

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 <var class="keyword varname">${dtstart}</var> and <var class="keyword varname">${dtend}</var> variables.
2. In the navigation filter, enter <kbd class="ph userinput">sys_impex_map.list</kbd>.
3. Select 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.
   {#t_CRiCalendarInvCustomTables__ul_yfg_bt4_kr}
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 <var class="keyword varname">dtstart</var> and <var class="keyword varname">dtend</var>.  
   For example, map the External Name <var class="keyword varname">dtstart</var> to theu_meeting_start_time field in u_my_custom_table.  
   Note:  
   These variables are required.
9. Select Submit.
10. Create field mappings for any of the following iCalendar fields as necessary.  
    * dstart
    * dtend
    * location
    * alarm_time
    {#t_CRiCalendarInvCustomTables__ul_mxl_cpb_wrb}
11. Select Update.  
    Here are sample field mappings between iCalendar variables and custom fields in a custom table, u_my_custom_table:  
    {#t_CRiCalendarInvCustomTables__table_q13_bw4_kr__entry__4}

    | 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 |
    [Table 1. Sample field mappings]

    {#t_CRiCalendarInvCustomTables__table_q13_bw4_kr}
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} 
           SUMMARY:${u_meeting_summary} 
           END:VEVENT 
           END:VCALENDAR

       Note:  
       Mail script is not allowed or processed in meeting invitation email templates.  
       {#t_CRiCalendarInvCustomTables__table_yqb_nw4_kr__entry__3}

       | 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 | The ${to} contains the recipients as defined in the notification. |
       | 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 |   |
       | 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 |   |
       [Table 2. iCalendar invitation template details]

       {#t_CRiCalendarInvCustomTables__table_yqb_nw4_kr}
    {#t_CRiCalendarInvCustomTables__substeps_uhv_4s4_kr}
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.
    {#t_CRiCalendarInvCustomTables__ul_wvc_dx4_kr}

