---
title: Create iCalendar invitations for custom tables
description: To generate iCalendar invitations that use field values from custom tables, create an import export map that computes the values of the iCalendar fields.
locale: en-US
canonical_url: https://www.servicenow.com/docs/r/australia/platform-administration/t\_CRiCalendarInvCustomTables.html
release: australia
topic_type: task
last_updated: "2026-03-12"
reading_time_minutes: 2
breadcrumb: [Calendar integration, Email templates, Email and SMS notifications, System notifications, Notifications, Configure core features, Administer the ServiceNow AI Platform]
---
# 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.
`. 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*.
For example, map the **External Name** *dtstart* to the**u\_meeting\_start\_time** field in u\_my\_custom\_table.
**Note:** These variables are required.
9. Click **Submit**.
10. Create field mappings for any of the following iCalendar fields as necessary.
- dstart
- dtend
- location
- alarm\_time
11. Click **Update**.
Here are sample field mappings between iCalendar variables and custom fields in a custom table, u\_my\_custom\_table:
|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|
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.
|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| |
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.
**Parent Topic:**[Calendar integration](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/platform-administration/r_CalendarIntegration.md)