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 and complete Google's authorization flow in the same browser.
  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.

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.

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. Events already pushed to Google remain there, and local calendar history is retained.

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.

For platform operators: a Google OAuth app left in external Testing mode can have short-lived refresh authorizations for Calendar access. Check the app's publishing status if reconnect requests recur; do not assume every sync failure is an expired grant.