Calendar integrations
Two-way Google Calendar and Outlook sync design for scheduled jobs, crews, changes, and conflict review.
Live OAuth is not enabled in this demo. Production setup needs provider app credentials, encrypted token storage, HTTPS webhook URLs, and signed/verified notification handling before calendars can be changed.
Gate 6 integration readiness
Queue conflicts for human review when FieldOps and provider events both changed.
Google and Microsoft OAuth apps, encrypted token storage, webhook URLs, and background sync workers are not configured.
Google Calendar provider contract: complete
Outlook / Microsoft 365 provider contract: complete
Conflict detection policy: complete
Live OAuth callbacks: blocked_until_credentials
Webhook receiver verification: blocked_until_credentials
Supported providers
2
Sync direction
Two-way design ready
Live OAuth and sync workers are not enabled yet.
Conflict handling
Review before overwrite
No silent updates when both sides changed.
Provider contract coverage
| Provider | Contract status | Scopes | Webhook verification | Live enabled |
|---|---|---|---|---|
| Google Calendar | mock_contract_ready | https://www.googleapis.com/auth/calendar.events | channel_id_resource_id_and_channel_token_required | No |
| Outlook / Microsoft 365 Calendar | mock_contract_ready | offline_access, Calendars.ReadWrite | client_state_and_subscription_id_required | No |
Connection slots
| Provider | Calendar | Account | Direction | Status | Last sync |
|---|---|---|---|---|---|
| Google Calendar | Operations dispatch calendar | ops@example.test | two_way | sandbox_connected | 2026-06-16T08:20:00+00:00 |
| Outlook / Microsoft 365 Calendar | Service team calendar | dispatch@example.test | two_way | sandbox_conflict_review | 2026-06-16T08:10:00+00:00 |
Google Calendar
oauth2Use Calendar API sync tokens for inbound changes and event watches for webhook prompts.
two_way_events
incremental_sync
push_notifications
recurring_events
external_event_links
Required scopes
https://www.googleapis.com/auth/calendar.events
Outlook / Microsoft 365 Calendar
oauth2Use Microsoft Graph calendarView delta queries and subscriptions for change prompts.
two_way_events
incremental_sync
change_notifications
recurring_events
external_event_links
Required scopes
offline_access, Calendars.ReadWrite
Two-way sync rules
FieldOps job to calendar
Create or update external events when a job is scheduled, rescheduled, cancelled, or reassigned.
Calendar to FieldOps job
Import provider changes through sync tokens or delta links, then queue safe job updates for review when conflicts exist.
Conflict protection
If both sides changed since the last sync, flag the event as conflicted instead of silently overwriting a job.
Tenant isolation
Every connection, event link, webhook event, and queued sync job is scoped by tenant_id.
Linked job events
Kitchen Faucet Repair
Google Calendar · google-demo-evt-1001
HVAC Annual Maintenance
Outlook / Microsoft 365 Calendar · outlook-demo-evt-2001
EV Charger Breaker Fault
Google Calendar · google-demo-evt-1002
Cold Room Temperature Drift
Outlook / Microsoft 365 Calendar · outlook-demo-evt-2002
Potential Client Site Survey
Google Calendar · google-demo-evt-1003
Provider sync strategy
Google Calendar
Inbound: Store nextSyncToken and refresh via Calendar Events list with syncToken.
Webhook: Create Events watch channels and renew before channel expiration.
Outbound: Upsert Calendar API events using stored FieldOps job links.
Outlook / Microsoft 365 Calendar
Inbound: Store Microsoft Graph deltaLink for each tracked calendar view.
Webhook: Create Graph subscriptions for /me/events and renew before expiration.
Outbound: Upsert Microsoft Graph event resources using stored event ids and change keys.