ScheduleMeeting
Stored in the schedulemeetings collection. createdAt and updatedAt are maintained automatically.
Returned by GET /meeting, POST /meeting, GET /meeting/:id.
Example
One real ScheduleMeeting as returned by GET /meeting, taken from the data array. Recorded from a live response, so the defaults, denormalised snapshots and populated fields are the actual ones:
{
"_id": "6a957378859eafb47bf227ed",
"company": "6a9572df859eafb47bf225d7",
"createdBy": {
"_id": "6a9572df859eafb47bf225d9",
"name": "Docs Test User",
"email": "test@test.test",
"status": "owner"
},
"updatedBy": {
"_id": "6a9572df859eafb47bf225d9",
"name": "Docs Test User",
"email": "test@test.test",
"status": "owner"
},
"host": {
"_id": "6a9572df859eafb47bf225d9",
"email": "test@test.test",
"status": "owner"
},
"title": "Discovery call — Northwind",
"description": "Understand current process and volumes.",
"provider": "offline",
"attendees": [],
"startTime": "2026-09-01T12:28:40.374Z",
"recurrence": {
"enabled": false,
"byWeekDays": []
},
"reminders": [],
"status": "scheduled",
"createdAt": "2026-08-31T12:28:40.387Z",
"updatedAt": "2026-08-31T12:28:40.387Z",
"__v": 0
}
:::note Trimmed for reading A populated reference is shown by the fields that identify it rather than in full — it arrives as the entire referenced document. Long arrays are cut to the first two entries and marked, long strings are truncated, and any field that could carry a credential is dropped rather than masked. :::
Fields
| Field | Type | Notes |
|---|---|---|
company | ObjectId -> Company | |
createdBy | ObjectId -> Member | |
updatedBy | ObjectId -> Member | |
host | ObjectId -> Member | |
title | string | required |
description | string | |
provider | string | required · default offline · one of zoom, google meet, offline |
appRef | string | one of ZoomAccount, GoogleCalendarAccount, OfflineLocation |
app | ObjectId | |
appSnapshot.name | string | |
appSnapshot.email | string | |
appSnapshot.address | string | |
appSnapshot.link | string | |
meetingLink | string | |
passcode | string | |
contact | ObjectId -> Contact | |
lead | ObjectId -> Lead | |
attendees | object[] | default [] |
attendees.member | ObjectId -> Member | |
attendees.contact | ObjectId -> Contact | |
attendees.name | string | |
attendees.email | string | |
attendees.responseStatus | string | default needsAction · one of needsAction, accepted, declined, tentative |
startTime | date | required |
endTime | date | |
duration | number | |
timezone | string | |
recurrence.enabled | boolean | default false |
recurrence.frequency | string | one of daily, weekly, monthly |
recurrence.interval | number | |
recurrence.byWeekDays | number[] | default [] |
recurrence.endDate | date | |
recurrence.count | number | |
reminders | object[] | default [] |
reminders.minutesBefore | number | |
reminders.sent | boolean | default false |
reminders._id | ObjectId | |
status | string | default scheduled · one of scheduled, started, completed, cancelled, rescheduled |
metadata | any | |
_id | ObjectId | |
createdAt | date | set once |
updatedAt | date |