Calendar Module
Personal calendar events for tenant workspaces. Week/Day time grids, Month, and Agenda views with org-wide visibility for owners/admins. Meetings (book + assign host + Zoom/Meet) project onto Calendar for the host and for internal invitees (view-only).
Guides
| Audience | Document |
|---|---|
| Operators / workspace users | calendar.md |
| Engineers | calendar.md |
| Production / ops | calendar.md |
| Module Development Standard | module-development.md |
| Tenant API | tenant-v1-calendar.md |
Capabilities (v1)
- Personal events (
organizer_id= creator) - Week (default) + Day views with vertical hourly time slots (Google Calendar–style)
- Side-by-side layout for overlapping events
- Drag-and-drop reschedule on Week/Day (
calendar.update) - Month + Agenda views
- Create / update / cancel / delete
- Workspace timezone-aware display and editing
calendar.view_allfor workspace Owner / Admin / Manager oversight- Upcoming events dashboard widget
- Overlays — Meetings (host + internal invitees, view-only for invitees), Projects (start/end all-day), Tasks (due datetime), and Leads (next follow-up) project sourced events (
source=meeting|project|task|lead) - Module licensing (
module:calendar) + Spatie permissions — catalog 1.6.0 - Event shares (1.3.0) — share a manual event with workspace users as viewer (read-only) or editor (can edit/delete with Spatie permissions)
- Google / Outlook sync (1.4.0–1.6.0) — push manual + Meeting/Task/Lead overlays; pull provider events as read-only External events (1.6.0). See "Google / Outlook sync" below.
- Meeting invitee list/view ACL for projected meetings (1.2.0)
- Activity logging (
LogsActivity) - API
read_onlyflag for invitee / sharee / non-organizer viewers
Permissions
calendar.view · create · update · delete · view_all · manage_integrations
Google / Outlook sync
- Personal, per-user connect — Settings live at Calendar → Sync (requires
calendar.manage_integrations, granted to the admin role by default). - Push (EloSync → provider): manual events + Meeting / Task / Lead overlays (1.5.0).
- Pull (provider → EloSync): provider events appear as read-only External events (1.6.0). Use Sync now or wait for the hourly pull. EloSync-owned events are not overwritten from the provider.
- Not pushed: Project / Contact / Company overlays (still deferred).
- Requires the platform operator to configure a Google and/or Microsoft OAuth app (see deployment); if not configured, the Connect button is disabled with a "not configured on this platform" badge.
- Disconnecting stops future push/pull; it does not delete events already created on the provider's calendar.
Explicitly deferred
- Calendar assignment / assignee / create-on-behalf
- Named team calendars / department auto-share
- Webhook / push-notification driven inbound (polling only in 1.6.0)
- Pushing Project / Contact / Company overlay events to providers
- Customer Portal visibility into calendar sync
Meetings, Zoom, and Google Meet are documented under Meetings.