Back to site

Calendar

Use the admin calendar for the portal's schedule and Settings → Calendar for Google integration and client visibility. Managing the integration requires write access.

Connect your Google account

  1. Choose Connect Google Calendar, review the data-use explanation, then choose Continue to Google and complete Google's authorization flow in the same browser. Cancel leaves the connection unchanged.
  2. Select the destination under Sync events to this calendar. The initial destination is the primary calendar.
  3. Check for Google access verified, then use Sync now and review the result and Last successful sync timestamp.
  4. Use Reconnect if authorization expires or you need to connect another Google account.

Each admin connects their own Google account. A different admin's connection is not automatically yours. If the deployment says the integration is unavailable, the platform must configure its Google OAuth connection before you can connect.

The connection requests permission to list your calendars and to read, create, update and delete events. The app uses the calendar you select; it does not request permission to change calendar sharing or delete entire calendars. It does not fetch your Google profile or email to identify the connection.

Older connections may still have the permissions originally granted. New connection requests use narrower permissions, but do not revoke existing grants. To deliberately replace an old grant, disconnect the affected connection, remove Contractor Codex from your Google Account connections, then reconnect and review the permissions. Removing Google's grant may affect other connections using the same Google account and app. Review the selected destination and sync result afterward.

What sync does—and does not do

The integration supports outgoing portal calendar events and incoming Google calendar changes. Supported work-session and project/document helpers can create associated calendar entries. Sync now pushes pending local changes, retries earlier failed changes, and pulls Google updates; it is not a promise of continuous, instant two-way synchronization.

The first import starts 30 days in the past and includes upcoming events. Later syncs request changes since the last completed checkpoint. A large backlog may need more than one run: review the result and run Sync now again when it says changes remain. Retried portal creations use stable event IDs to avoid duplicates after an interrupted response.

Complete means the current run finished without reported errors or queued changes. Partial means some work completed but changes still need attention. Failed means the run did not finish successfully; read the explanation before retrying. The last-success timestamp advances only after a complete run. A timestamp from an older app version is explicitly marked as unverified, not silently treated as proof of success.

Only one sync runs for an admin's connection at a time. If a sync is already running, wait for it to finish. Expired Google sync checkpoints trigger one fresh import attempt; an incomplete recovery is not reported as successful, and cached local history is not erased.

Incoming changes update the calendar representation. Moving a work-session event in Google does not rewrite the recorded work session or its billable hours. Correct actual time in the portal's time-tracking workflow.

Imported Google events are not automatically client-visible. Keep the selected calendar and imported contents in mind when deciding what to share.

Calendar data and assistants

Imported events are stored in your business's calendar and are available to authorized staff. When an authorized assistant requests calendar records, event titles, times, locations and linked client or project details can be sent to your configured AI provider or an outside assistant connected through MCP. This lookup does not include event descriptions or Google access tokens. Use a dedicated Google calendar if you do not want personal events imported into the business workspace.

This access is separate from sharing events with clients. Disabling client calendar visibility does not disable authorized administrator or assistant access. The Privacy Policy explains how providers process data and how to request deletion.

Choose the destination before syncing events. Once the connection has linked Google events, the app blocks a switch to a different calendar so old event IDs cannot accidentally be used against the new destination. Moving those linked events requires a separate, deliberate migration. Before any remote events exist, changing the destination resets the baseline and prior sync status. Saving the same primary calendar does not reset anything.

Client visibility has two controls

The organization-wide client-calendar setting is off by default. When off, the client calendar page shows an unavailable message rather than loading events.

When enabled, an event must also be marked client visible. A client can see eligible events linked to that client, their projects, or general events with no client/project link. A generic client-visible event can therefore be seen by multiple clients.

Review the event's title, description, location, and client/project assignment before sharing it. The client calendar is a view of shared events, not permission to edit the admin calendar.

Open a client from the admin dashboard and use View portal to inspect Admin Preview, then test actual client sign-in separately when validating access.

Disconnect or troubleshoot

Disconnect stops future synchronization through that connection and deletes its saved credentials. The app also attempts to revoke the token with Google; if that fails, you can remove access in your Google Account connections.

Events already in Google remain there. Portal history, including imported Google events, is also retained and remains available to authorized staff and assistants. Disconnecting does not erase earlier information sent to an AI provider or outside assistant. To request removal of retained calendar records, email support@contractorcodex.com. Disconnecting and requesting deletion are separate actions.

For missing changes, check the selected calendar, connection status, Sync now results, and the event's client-visibility settings. A successful sign-in to Google alone does not demonstrate a completed sync.

Google access verified means the current settings page could read your writable-calendar list. It does not mean all events have synced. Reconnect Google Calendar means Google rejected the authorization; reconnect, review the destination, and run Sync now. Temporary network failures and Google rate limits ask you to retry instead of treating the account as disconnected.