DEMO MODE Reset Exit Demo

Calendar integrations

Two-way Google Calendar and Outlook sync design for scheduled jobs, crews, changes, and conflict review.

Review OAuth setup
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.
Two-way sync contract tested / live OAuth disabled
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

ProviderContract statusScopesWebhook verificationLive 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

ProviderCalendarAccountDirectionStatusLast 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

oauth2

Use 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

oauth2

Use 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
clean
HVAC Annual Maintenance
Outlook / Microsoft 365 Calendar · outlook-demo-evt-2001
pending_review
EV Charger Breaker Fault
Google Calendar · google-demo-evt-1002
clean
Cold Room Temperature Drift
Outlook / Microsoft 365 Calendar · outlook-demo-evt-2002
provider_changed_after_fieldops
Potential Client Site Survey
Google Calendar · google-demo-evt-1003
customer_requested

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.