Create and maintain meeting records
Log a past meeting, update allowed fields, and delete or restore it with the Meetings API.
Create a manual record for a meeting that already happened, or maintain a meeting synced into Lightfield. This does not schedule a calendar event or invite a recording bot. Use Meetings for recording and summaries, and the transcript upload guide to attach a transcript.
Log a past meeting
Section titled “Log a past meeting”Grant meetings:create and meetings:read. Create a meeting requires a title and start/end times in the past:
curl https://api.lightfield.app/v1/meetings \ -H "Authorization: Bearer $LIGHTFIELD_API_KEY" \ -H "Lightfield-Version: 2026-03-01" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: northwind-renewal-meeting-001" \ -d '{"fields":{"$title":"Northwind renewal call","$startDate":"2026-10-01T15:00:00Z","$endDate":"2026-10-01T15:30:00Z","$attendeeEmails":["ada@northwind.example"]}}'Save id and inspect the returned fields and accessLevel. Use actual attendee addresses. Account and opportunity relationships are derived through the meeting’s contacts; do not write those derived relationships directly.
Read and update a meeting
Section titled “Read and update a meeting”Retrieve the meeting to verify it immediately, or list meetings with limit and offset to discover IDs. Definitions describe the available fields; not every returned field is writable.
curl "https://api.lightfield.app/v1/meetings/$MEETING_ID" \ -H "Authorization: Bearer $LIGHTFIELD_API_KEY" \ -H "Lightfield-Version: 2026-03-01"
curl "https://api.lightfield.app/v1/meetings?limit=20&offset=0" \ -H "Authorization: Bearer $LIGHTFIELD_API_KEY" \ -H "Lightfield-Version: 2026-03-01"Update accepts $privacySetting, $attendeeEmails, $meetingPrep, $postMeetingSummary and the $transcript.replace relationship. Prep and summary edits are Markdown; regeneration as new activity arrives replaces your edit. null or an empty string clears them until regeneration. Attendee changes replace the whole list and require a meeting that has ended. Read the current list first and preserve attendees you still want.
Adding an address on a workspace blocklist or a teammate’s Do not track list hides the meeting after the next sync; an admin must remove the blocking entry to bring it back. Check the intended addresses before sending:
curl "https://api.lightfield.app/v1/meetings/$MEETING_ID" \ -X POST \ -H "Authorization: Bearer $LIGHTFIELD_API_KEY" \ -H "Lightfield-Version: 2026-03-01" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: northwind-meeting-attendees-001" \ -d '{"fields":{"$attendeeEmails":["ada@northwind.example","ben@northwind.example"]}}'This needs meetings:update and meeting edit access. Check the returned attendee list and read-only manual-attendee fields. For changing transcripts, follow Upload a meeting transcript without changing privacy as a side effect.
Delete and restore
Section titled “Delete and restore”Delete moves the meeting to trash. Only meeting participants or workspace admins with the required delete scope can do this. A second deletion returns 404, so re-read state before interpreting that result as an unknown original ID.
curl "https://api.lightfield.app/v1/meetings/$MEETING_ID" \ -X DELETE \ -H "Authorization: Bearer $LIGHTFIELD_API_KEY" \ -H "Lightfield-Version: 2026-03-01"
curl "https://api.lightfield.app/v1/meetings/$MEETING_ID/restore" \ -X POST \ -H "Authorization: Bearer $LIGHTFIELD_API_KEY" \ -H "Lightfield-Version: 2026-03-01"Restore brings a trashed meeting back to active; an already-active meeting is unchanged. Find deleted IDs using the list endpoint with status=trashed, and retrieve the meeting after restoring it.
For 400, check past timestamps and the operation’s writable fields. For 403, check edit access as well as scopes. An absent transcript or redacted response requires the transcript access checks, not another upload or a broader privacy setting.