This is completely optional. The ICS+ tool works without any GHL connection. This setup is for GoHighLevel users who want to automatically store meeting records in GHL so the details — including Zoom link, Google Calendar link, and Outlook link — are available as merge tags in follow-up automations and email sequences.
Plan requirement: Custom Objects require a GHL plan that supports this feature. If you do not see Objects or Custom Objects in your GHL Settings, check your plan level or contact GHL support before proceeding.
Part 1: Create the Meetings Custom Object
A custom object is a separate record type in GHL that links to contacts. You will create one called Meeting / Meetings to store one record per meeting booked through the ICS+ tool.
- In your GHL account go to Settings.
- Navigate to Objects.
- Click Create Object. Fill in the dialog exactly as follows:
| Field | Value | Notes |
|---|---|---|
| Custom Object (Singular) | Meeting |
Exactly as shown |
| Custom Object (Plural) | Meetings |
Exactly as shown |
| Primary Display Field Name | Meeting ID |
This is the unique identifier shown in list view |
| Field Type | Single Line Text Field | Default — do not change |
| Mark Primary Field as Unique | Checked | Prevents duplicate meeting records |
| Icon | Your preference | A calendar icon works well |
| Custom Object Description | Stores meeting records from ICS+ Tool | 100 character limit |
- Click Create Custom Object.
Part 2: Add Custom Fields to the Meetings Object
After creating the object, add the following fields. For each one click Add Field, select the type shown, enter the label exactly as shown, and save.
Note:
Meeting ID was already created as the Primary Display Field in Part 1. Do not create it again here.
| Field Label | Field Type |
|---|---|
| Meeting Title | Single Line |
| Meeting Start Date | Single Line |
| Meeting Start Time | Single Line |
| Meeting End Date | Single Line |
| Meeting End Time | Single Line |
| Meeting Duration | Number |
| Recurrence Type | Single Line |
| Recurrence End Type | Single Line |
| Zoom Join URL | Single Line |
| Google Calendar Link | Single Line |
| Outlook Calendar Link | Single Line |
Part 3: Create the Inbound Webhook Trigger
- Go to Automation and create a new Workflow.
- Set the trigger to Inbound Webhook.
- Copy the webhook URL that GHL generates — you will need it in Part 5.
-
Before you can save the trigger, GHL requires a test request. Send the following sample payload to your webhook URL using a tool like reqbin.com or hoppscotch.io:
- Method:
POST - URL: your webhook URL from step 3
- Header:
Content-Type: application/json - Body:
{ "contact_email": "test@example.com", "contact_name": "Test User", "meeting_title": "Test Meeting", "meeting_start_date": "2026-04-01", "meeting_start_time": "10:00 AM", "meeting_end_date": "2026-04-01", "meeting_end_time": "11:00 AM", "meeting_duration": 60, "recurrence_type": "", "recurrence_end_type": "", "zoom_join_url": "", "google_calendar_url": "", "outlook_calendar_url": "" } - Method:
- Once GHL receives the request it will show the available fields. Complete the field mapping and save the trigger.
Part 4: Build the Workflow
Inside the workflow add the following steps in order:
- Find Contact — look up by email using
contact_emailfrom the webhook payload. - If/Else branch:
- If contact found: proceed to step 3.
- If not found: add a Create Contact step using
contact_nameandcontact_email, then proceed.
- Create Meetings Object Record — create a new record and map each payload field to the matching custom field from Part 2. Use the payload reference table below as your guide.
- Link Record to Contact — associate the new Meetings record with the contact.
- Add any additional steps you need: confirmation email using merge tags from the Meetings fields, tags, pipeline moves, SMS, etc.
- Activate the workflow.
Part 5: Add Webhook URL to ICS+ Tool Config
- Return to the ICS+ Tool.
- Click the Settings gear icon.
- Paste your GHL webhook URL into the GHL Webhook URL field.
- Click Save Settings. The Add to GHL button will now appear in your results.
That's it. Every time you generate calendar links and click Add to GHL, a new Meetings record will be created in your GHL account linked to the contact, ready to use in automations.
Webhook Payload Reference
When you click Add to GHL the tool sends the following fields to your webhook. Use these as merge tags in your GHL email templates.
| Field | Description | GHL Custom Field |
|---|---|---|
contact_email | Organizer email (used for contact lookup) | Contact record only |
contact_name | Organizer name | Contact record only |
meeting_title | Event title | Meeting Title |
meeting_start_date | Start date | Meeting Start Date |
meeting_start_time | Start time | Meeting Start Time |
meeting_end_date | End date | Meeting End Date |
meeting_end_time | End time | Meeting End Time |
meeting_duration | Duration in minutes | Meeting Duration |
recurrence_type | Recurrence pattern or blank | Recurrence Type |
recurrence_end_type | When recurrence ends or blank | Recurrence End Type |
zoom_join_url | Zoom join URL (blank if Zoom not used) | Zoom Join URL |
google_calendar_url | Full Google Calendar add link | Google Calendar Link |
outlook_calendar_url | Full Outlook Calendar add link | Outlook Calendar Link |