Skip to content

Create a meeting

client.Meeting.New(ctx, body) (*MeetingCreateResponse, error)
POST/v1/meetings

Creates a new meeting record. This endpoint only supports creation of meetings in the past. The $title, $startDate, and $endDate fields are required. Only the $transcript relationship is writable on create; all other meeting relationships are system-managed. The response is privacy-aware and includes a read-only accessLevel. See Uploading meeting transcripts for the full file upload and transcript attachment flow.

Supports idempotency via the Idempotency-Key header.

Required scope: meetings:create

Rate limit category: Write

ParametersExpand Collapse
body MeetingNewParams
Fields param.Field[MeetingNewParamsFields]

Field values for the new MANUAL meeting. System fields use a $ prefix (for example $title, $startDate, $endDate). Required: $title, $startDate, and $endDate. $organizerEmail accepts a single email address when provided; $attendeeEmails accepts an array of email addresses. See Fields and relationships for value type details.

EndDate string

The end time of the meeting in ISO 8601 format. Must be in the past.

StartDate string

The start time of the meeting in ISO 8601 format. Must be in the past.

Title string

The title of the meeting.

AttendeeEmails []stringOptional

A list of attendee email addresses.

Description stringOptional

A description of the meeting.

MeetingURL stringOptional

The URL for the meeting.

OrganizerEmail stringOptional

The email address of the meeting organizer. This field accepts a single email address.

PrivacySetting stringOptional

The privacy setting for the meeting (FULL or METADATA).

One of the following:
const MeetingNewParamsFieldsPrivacySettingFull MeetingNewParamsFieldsPrivacySetting = "FULL"
const MeetingNewParamsFieldsPrivacySettingMetadata MeetingNewParamsFieldsPrivacySetting = "METADATA"
AutoCreateRecords param.Field[bool]Optional

When true, the initial post-create meeting sync may auto-create account and contact records for external attendees.

Relationships param.Field[MeetingNewParamsRelationships]Optional

Relationships to set on the new meeting. Only $transcript is writable on create; all other meeting relationships are system-managed.

Transcript MeetingNewParamsRelationshipsTranscriptUnion

The ID of the file to attach as the meeting transcript when creating the meeting. Only one transcript can be attached to a meeting.

One of the following:
string
type MeetingNewParamsRelationshipsTranscriptArray []string
ReturnsExpand Collapse
type MeetingCreateResponse struct{…}
ID string

Unique identifier for the entity.

AccessLevel MeetingCreateResponseAccessLevel

The caller’s resolved access level for this meeting.

One of the following:
const MeetingCreateResponseAccessLevelFull MeetingCreateResponseAccessLevel = "FULL"
const MeetingCreateResponseAccessLevelMetadata MeetingCreateResponseAccessLevel = "METADATA"
CreatedAt string

ISO 8601 timestamp of when the entity was created.

Fields map[string, MeetingCreateResponseField]

Map of field names to their typed values. System fields are prefixed with $ (e.g. $name, $email); custom attributes use their bare slug.

Value MeetingCreateResponseFieldValueUnion

The field value, or null if unset.

One of the following:
string
float64
bool
type MeetingCreateResponseFieldValueArray []string
type MeetingCreateResponseFieldValueAddress struct{…}
City stringOptional

City name.

Country stringOptional

2-letter ISO 3166-1 alpha-2 country code.

Latitude float64Optional

Latitude coordinate.

Longitude float64Optional

Longitude coordinate.

PostalCode stringOptional

Postal or ZIP code.

State stringOptional

State or province.

Street stringOptional

Street address line 1.

Street2 stringOptional

Street address line 2.

type MeetingCreateResponseFieldValueFullName struct{…}
FirstName stringOptional

The contact’s first name.

LastName stringOptional

The contact’s last name.

ValueType string

The data type of the field.

One of the following:
const MeetingCreateResponseFieldValueTypeAddress MeetingCreateResponseFieldValueType = "ADDRESS"
const MeetingCreateResponseFieldValueTypeCheckbox MeetingCreateResponseFieldValueType = "CHECKBOX"
const MeetingCreateResponseFieldValueTypeCurrency MeetingCreateResponseFieldValueType = "CURRENCY"
const MeetingCreateResponseFieldValueTypeDatetime MeetingCreateResponseFieldValueType = "DATETIME"
const MeetingCreateResponseFieldValueTypeEmail MeetingCreateResponseFieldValueType = "EMAIL"
const MeetingCreateResponseFieldValueTypeFullName MeetingCreateResponseFieldValueType = "FULL_NAME"
const MeetingCreateResponseFieldValueTypeMarkdown MeetingCreateResponseFieldValueType = "MARKDOWN"
const MeetingCreateResponseFieldValueTypeMultiSelect MeetingCreateResponseFieldValueType = "MULTI_SELECT"
const MeetingCreateResponseFieldValueTypeNumber MeetingCreateResponseFieldValueType = "NUMBER"
const MeetingCreateResponseFieldValueTypeSingleSelect MeetingCreateResponseFieldValueType = "SINGLE_SELECT"
const MeetingCreateResponseFieldValueTypeSocialHandle MeetingCreateResponseFieldValueType = "SOCIAL_HANDLE"
const MeetingCreateResponseFieldValueTypeTelephone MeetingCreateResponseFieldValueType = "TELEPHONE"
const MeetingCreateResponseFieldValueTypeText MeetingCreateResponseFieldValueType = "TEXT"
const MeetingCreateResponseFieldValueTypeURL MeetingCreateResponseFieldValueType = "URL"
ObjectType MeetingCreateResponseObjectType

Always meeting.

Relationships map[string, MeetingCreateResponseRelationship]

Map of relationship names to their associated entities. System relationships are prefixed with $ (e.g. $owner, $contact).

Cardinality string

Whether the relationship is has_one or has_many.

ObjectType string

The type of the related object (e.g. account, contact).

Values []string

IDs of the related entities.

UpdatedAt string

ISO 8601 timestamp of when the entity was last updated, or null.

ExternalID stringOptional

External identifier for the entity, or null if unset.

Create a meeting

package main

import (
  "context"
  "fmt"

  "github.com/Lightfld/lightfield-go"
  "github.com/Lightfld/lightfield-go/option"
)

func main() {
  client := githubcomlightfldlightfieldgo.NewClient(
    option.WithAPIKey("My API Key"),
  )
  meetingCreateResponse, err := client.Meeting.New(context.TODO(), githubcomlightfldlightfieldgo.MeetingNewParams{
    Fields: githubcomlightfldlightfieldgo.MeetingNewParamsFields{
      EndDate: "$endDate",
      StartDate: "$startDate",
      Title: "$title",
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", meetingCreateResponse.ID)
}
{
  "id": "id",
  "accessLevel": "FULL",
  "createdAt": "createdAt",
  "fields": {
    "foo": {
      "value": "string",
      "valueType": "ADDRESS"
    }
  },
  "httpLink": "httpLink",
  "objectType": "meeting",
  "relationships": {
    "foo": {
      "cardinality": "cardinality",
      "objectType": "objectType",
      "values": [
        "string"
      ]
    }
  },
  "updatedAt": "updatedAt",
  "externalId": "externalId"
}
Returns Examples
{
  "id": "id",
  "accessLevel": "FULL",
  "createdAt": "createdAt",
  "fields": {
    "foo": {
      "value": "string",
      "valueType": "ADDRESS"
    }
  },
  "httpLink": "httpLink",
  "objectType": "meeting",
  "relationships": {
    "foo": {
      "cardinality": "cardinality",
      "objectType": "objectType",
      "values": [
        "string"
      ]
    }
  },
  "updatedAt": "updatedAt",
  "externalId": "externalId"
}