Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Meetings, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Meetings API.
Create individual or batched meeting records and link them to contacts, companies, and deals
Search meetings by title, owner, start time, or associated record
Update meeting outcomes, notes, or status with single PATCH or batch update calls
GET STARTED
For Agents
Log, search, and update HubSpot meeting engagement records, including batch operations and association links to contacts, deals, and companies.
Use for: I need to log a meeting that just happened with a contact, I want to sync meetings from Google Calendar into HubSpot, Search for all meetings owned by a specific rep this week, List every meeting associated with a deal
Not supported: Does not handle calendar booking pages, video conferencing links, or external calendar invites - use for HubSpot CRM meeting engagement records only.
The HubSpot CRM Meetings API manages the meeting engagement object that records calendar interactions between reps and contacts in the HubSpot CRM. It supports single-record CRUD, batch read, batch create, batch update, batch upsert, batch archive, and search across meeting properties and associations. Use it to log meetings from an external calendar, sync meeting outcomes back into HubSpot, or surface meeting history on a contact or deal timeline.
Archive meeting records that should no longer appear in active reporting
Upsert meetings by an external calendar event ID to keep HubSpot in sync with Google Calendar or Outlook
Patterns agents use Meetings API for, with concrete tasks.
★ Sync Calendar Meetings into HubSpot
Mirror meetings from Google Calendar or Microsoft Outlook into HubSpot so the CRM timeline shows every customer-facing interaction without manual logging by reps. Batch upsert keyed by an external calendar event ID handles both create and update in one call, which fits a webhook-driven sync that fires whenever a calendar event is created or updated.
POST /crm/v3/objects/meetings/batch/upsert with up to 100 meeting records keyed by google_calendar_event_id, each with associations to the matching contact and deal.
Surface Meeting History on a Deal
Build a deal-room view that lists every past and upcoming meeting with the deal's contacts so reps and AI agents have the full conversation history. The search endpoint accepts a filter on associated deal ID, and the response can be paginated to surface the most recent N meetings ordered by start time. Returns are typically sub-second for filtered queries against a single deal.
POST /crm/v3/objects/meetings/search with filterGroups for associations.deal equals the deal ID, sorted by hs_meeting_start_time descending, returning the first 50 records.
Agent-Driven Meeting Logging
An AI agent that participates in a meeting (transcription bot, sales copilot) can log the meeting record into HubSpot with notes and outcome at the end of the call. Through Jentic, the agent finds the meeting create operation by intent, loads its schema, and writes the record with associations to the contact and deal, all without manual rep entry.
POST /crm/v3/objects/meetings with hs_meeting_title, hs_meeting_body containing summary notes, hs_meeting_outcome set to COMPLETED, and an associations array linking the meeting to the contact and deal IDs.
11 endpoints — the hubspot crm meetings api manages the meeting engagement object that records calendar interactions between reps and contacts in the hubspot crm.
METHOD
PATH
DESCRIPTION
/crm/v3/objects/meetings
Create a meeting
/crm/v3/objects/meetings
List meetings
/crm/v3/objects/meetings/{meetingId}
Read a specific meeting
/crm/v3/objects/meetings/{meetingId}
Update a meeting
/crm/v3/objects/meetings/search
Search meetings by property filters
/crm/v3/objects/meetings/batch/upsert
Upsert meetings by unique property
/crm/v3/objects/meetings
Create a meeting
/crm/v3/objects/meetings
List meetings
/crm/v3/objects/meetings/{meetingId}
Read a specific meeting
/crm/v3/objects/meetings/{meetingId}
Update a meeting
/crm/v3/objects/meetings/search
Search meetings by property filters
Three things that make agents converge on Jentic-routed access.
Credential isolation
Your HubSpot token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'log a HubSpot meeting' or 'search meeting engagements', and Jentic returns the matching meeting operation with its input schema, including the associations array shape, so the agent calls the right endpoint without browsing the reference docs.
Time to first call
Alternatives and complements available in the Jentic catalogue.
Specific to using Meetings API through Jentic.
What authentication does the HubSpot Meetings API use?
OAuth 2.0 Bearer tokens or HubSpot Private App tokens in the Authorization header. Jentic stores the token encrypted in the vault and provides the agent with a scoped access reference, so the raw token never enters the agent's context.
Can I link a meeting to a contact and deal in the same call?
Yes. POST /crm/v3/objects/meetings accepts an associations array on the request body, so the meeting record is created and linked to one or more contacts, companies, and deals in a single request.
What are the rate limits for the HubSpot Meetings API?
Standard HubSpot quotas apply: 100 requests per 10 seconds for OAuth apps and 110 for Private Apps, with daily caps that vary by Hub tier. Batch endpoints accept up to 100 records per call and count as a single request, which is the recommended pattern for calendar-sync jobs.
How do I sync a calendar event into HubSpot through Jentic?
Run pip install jentic, call client.search('upsert a HubSpot meeting from a calendar event'), client.load to get the schema for POST /crm/v3/objects/meetings/batch/upsert, and client.execute with the calendar event ID as the unique property and the meeting properties and associations.
Can I search meetings by start-time range?
Yes. POST /crm/v3/objects/meetings/search accepts filterGroups with operators including BETWEEN on hs_meeting_start_time, so you can return all meetings within a date window for a given owner, contact, or deal.
Is this the same as the HubSpot Meetings (scheduling pages) API?
No. This API manages the meeting engagement record on a contact's timeline. The HubSpot scheduling pages product, which lets external visitors book time, is a separate API surface.
Can I limit what my agent is allowed to do with the HubSpot Meetings API?
Yes. Because your Jentic One instance is self-hosted, your own rules decide which meeting operations the agent may call and which credential it uses. You can allow only the operations you need, such as reading a meeting with GET /crm/v3/objects/meetings/{meetingId} and searching with POST /crm/v3/objects/meetings/search, while withholding write paths like PATCH updates or POST /crm/v3/objects/meetings/batch/upsert unless you add them. The agent can act only on the meetings object collection you expose, so it cannot reach operations you have not granted.
/crm/v3/objects/meetings/batch/upsert
Upsert meetings by unique property