Meetings
Use Meetings to schedule workspace meetings, invite teammates (and external guests by email), connect a workspace Zoom or Google Meet account, and set one reminder before start.
Access
- Workspace must have the Meetings module installed (included by default; requires Calendar).
- Your role needs
meetings.view(andcreate/update/deletefor edits). - Connecting Zoom/Google requires
meetings.manage_integrations.
Visibility
| Role | What you see |
|---|---|
Staff (no view_all) | Meetings you created, host, or are invited to |
Owner / Admin / Manager (meetings.view_all) | All workspace meetings |
Invitees use the Meetings list/detail as their source of truth. Calendar shows the host’s projected event (Calendar ACLs remain organizer-scoped).
Schedule a meeting
- Open Meetings from the CRM sidebar section.
- Click New meeting.
- Enter title, start/end (times use the workspace Timezone from Settings → General — same zone as Daily Reminder Time, task/follow-up dues, and attendance), optional agenda.
- Choose a provider:
- None — optional manual join URL
- Google Meet / Zoom — requires a connected workspace account
- Add internal invitees and optional external guests (
Name <email@domain>per line). - Optionally set one reminder (15 minutes, 1 hour, 24 hours, or custom minutes before start).
- Save.
Host defaults to you. Users with meetings.assign_host can reassign the host.
Connect Zoom or Google Meet
- Open Meetings → Integrations (owners/admins with
meetings.manage_integrations). - Click the info icon next to Zoom or Google Meet for step-by-step setup (create the provider OAuth app, required scopes, and how to connect in EloSync).
- Create an OAuth app in Google Cloud / Zoom Marketplace for your organization.
- Paste the shown OAuth callback URL into that app’s redirect settings (copy from Integrations or the setup guide).
- For Zoom, add scopes
meeting:write:meeting,meeting:read:meeting,meeting:delete:meeting, anduser:read:user(missing write → create error 4711; missing delete → remote cancel fails while EloSync still cancels locally). - For Google, enable the Meet API and register a localhost or HTTPS redirect URI (Google rejects
http://*.test). Meet creates a joinable space link (not a full Calendar conference). - Save your workspace Client ID and Client secret (optional webhook secret is reserved for a future native webhook integration).
- Click Connect account and approve access with the workspace Google/Zoom user.
Staff then schedule using those workspace connections — not personal accounts or platform-wide keys.
If a selected provider is not connected, scheduling with that provider is blocked. If you change Zoom/Google scopes later, disconnect and connect again so a new token is issued.
Reminder
Creators can set one reminder offset. At that time, the creator, host, and invitees receive an in-app notification and web push (when subscribed). Meeting emails (invite, update, cancel, reminder — including external guests) are optional and off by default; enable Meeting events under Settings → Notifications. Completing, cancelling, or rescheduling the meeting updates or cancels the pending reminder.
Complete, cancel, and delete
- Mark as completed — keeps the record, sets status
completedwithcompleted_at. Pending reminders stop. The Calendar projection stays as a historicalscheduledevent (Calendar does not use a completed status). Remote Zoom/Google links are left as-is. - Auto-complete — every five minutes, scheduled meetings whose end time has passed are marked completed automatically (same outcome as Mark as completed).
- Cancel — keeps the record, marks status
cancelled, cancels the Calendar projection and pending reminder. Remote Zoom/Google delete is best-effort: if the provider rejects delete (often missingmeeting:delete:meeting), the meeting stays cancelled in EloSync andprovider_sync_errorexplains the remote failure. - Delete — soft-deletes the meeting and removes the Calendar projection (same best-effort remote delete).
Completed and cancelled meetings cannot be edited, reassigned, cancelled, or completed again. Use list filters Upcoming, Completed, and Cancelled to find them.
Settings
Workspace Settings → General includes Default meeting provider (meetings_default_provider: none | google_meet | zoom) used to preselect the schedule form.