Skip to main content

TabCalendar Scopes and Permissions

Last updated: March 10, 2026 (America/Los_Angeles)

Applies to version/build: TabCalendar Production (controlled access) docs baseline (updated February 19, 2026; see changelog)

This page summarizes TabCalendar’s HubSpot OAuth scopes and the feature areas that depend on them.

If you’re doing a least-privilege review, start here and keep the scope discussion tied to shipped behavior.

Principles

  • Least privilege: request only scopes required for shipped behavior.
  • Company-centric model: availability planning is anchored to Company context.
  • Change discipline: scope changes should ship with docs updates and changelog entries.

Scope dependency summary

Scope nameWhy it is neededFeature dependency
oauthRequired for install authorization and token lifecycle.App install and authenticated HubSpot API access.
crm.objects.companies.readReads Company record context and mapped calendar data.Company-centric calendar rendering and context resolution.
crm.objects.companies.writeIncluded in the app’s default CRM write scope set for Company-context write/association operations.Company-linked create flows and association writes.
crm.objects.contacts.readUsed for HubSpot engagement/notes authorization paths.Note-related reads where applicable.
crm.objects.contacts.writeUsed for HubSpot engagement/notes write paths.Calendar-triggered Note creation flows.
crm.objects.deals.readReads Deal data for mapped date layers and calendar overlays.Deal layer rendering in yearly calendar view.
crm.objects.deals.writeCreates/updates deal data from day-level actions.Calendar-triggered deal creation flows.

Boundary notes

  • Workflow Action metadata exists, but the Workflow Action remains unpublished.
  • Google integration is import-focused and does not claim bidirectional sync.
  • HubSpot deploy rejects `crm.objects.notes.*` as unrecognized scopes; TabCalendar uses contacts scopes for notes/engagement authorization.
  • ICS subscription feeds are optional and may be disabled by default.

Related docs

Support intake checklist

If install/auth fails or your security review needs scope clarification, send support:

  • Portal ID
  • The install timestamp with timezone
  • A screenshot of the scope consent screen (if available)
  • Any error text you see (copy/paste)