This connects Claude directly to your Google Calendar and turns natural language into booked meetings. You describe the meeting ("30-min discovery with sara@acme.com this week"), and it finds three free slots, places tentative holds on your calendar, and emails the invitee a picker. When they choose a time, it confirms that slot and clears the others automatically. No back-and-forth emails, no sending Calendly links, no manual cleanup. The whole flow happens through Claude: find_times checks availability, propose_meeting creates the holds, send_invitee_email delivers the picker. Built for customer-facing teams who spend half their day scheduling calls. Free tier covers 5 meetings per month.
Public tool metadata for what this MCP can expose to an agent.
find_timesPreview candidate meeting slots (no holds placed). Returns 3 slots labeled `1`, `2`, `3` chronologically, each with `previous_event` / `next_event` — the host's nearest events on either side, with gap + title. **Chat response — keep it SHORT and lead with the iframe.** The ifr...10 paramsPreview candidate meeting slots (no holds placed). Returns 3 slots labeled `1`, `2`, `3` chronologically, each with `previous_event` / `next_event` — the host's nearest events on either side, with gap + title. **Chat response — keep it SHORT and lead with the iframe.** The ifr...
window_endstringduration_minvaluewindow_startstringcurrent_slotsarraypropose_labelstring1 · 2 · 3co_host_emailsarrayinvitee_timezonestringtarget_starts_atstringworkday_end_hourintegerworkday_start_hourintegerpropose_meetingPropose a meeting to an external invitee (anyone outside the host's workspace). Heldly places tentative holds on every host's Google Calendar synchronously and persists the meeting. When the invitee picks, Heldly confirms the chosen slot and deletes the siblings on every host'...16 paramsPropose a meeting to an external invitee (anyone outside the host's workspace). Heldly places tentative holds on every host's Google Calendar synchronously and persists the meeting. When the invitee picks, Heldly confirms the chosen slot and deletes the siblings on every host'...
slotsarrayauto_sendbooleanhost_namestringhost_emailstringwindow_endstringduration_minvaluehost_messagestringinvitee_namestringwindow_startstringinvitee_emailstringmeeting_topicstringco_host_emailsarraymeeting_agendastringinvitee_messagestringexpiration_hoursvalueadditional_invitee_emailsarraylist_meetingsList meetings you've proposed or are co-hosting, most recent first. Use `query` to find a specific meeting by invitee, host, or topic. Each row includes a `picker_url` the host can paste into Slack / LinkedIn / a DM when the invitee says they never got the email — single-use,...4 paramsList meetings you've proposed or are co-hosting, most recent first. Use `query` to find a specific meeting by invitee, host, or topic. Each row includes a `picker_url` the host can paste into Slack / LinkedIn / a DM when the invitee says they never got the email — single-use,...
limitintegerquerystringstatusstringawaiting_invitee_pick · confirmed · expired · cancelledsince_daysintegerrecent_inviteesReturn the host's recent invitees deduped by `invitee_email`, most-recent-first, each carrying the previous meeting's `last_meeting_topic` + `last_meeting_agenda` and `meeting_count`. Call this on any "book another with Sara" / "set up a follow-up with the Acme person" intent...2 paramsReturn the host's recent invitees deduped by `invitee_email`, most-recent-first, each carrying the previous meeting's `last_meeting_topic` + `last_meeting_agenda` and `meeting_count`. Call this on any "book another with Sara" / "set up a follow-up with the Acme person" intent...
limitintegerquerystringget_meetingFetch the full details of a single meeting, including the timeline of events.1 paramsFetch the full details of a single meeting, including the timeline of events.
meeting_idstringcheck_meeting_statusQuick status snapshot of a single meeting — the right tool for "did Sara book?" / "is the Acme meeting confirmed?". Returns `status` + `hint`, the `booked_slot` (with pre-formatted local time) if one was picked, the invitee name, and onboarding narration when relevant. For ful...1 paramsQuick status snapshot of a single meeting — the right tool for "did Sara book?" / "is the Acme meeting confirmed?". Returns `status` + `hint`, the `booked_slot` (with pre-formatted local time) if one was picked, the invitee name, and onboarding narration when relevant. For ful...
meeting_idstringsend_invitee_emailSend the invitee picker email. This is both the **first-send** tool (after propose_meeting with auto_send=false, which is the default — call this once the host has confirmed the topic, agenda, and slots) AND the **resend / reminder** tool (if the host asks 'nudge Sara again')....1 paramsSend the invitee picker email. This is both the **first-send** tool (after propose_meeting with auto_send=false, which is the default — call this once the host has confirmed the topic, agenda, and slots) AND the **resend / reminder** tool (if the host asks 'nudge Sara again')....
meeting_idstringcancel_meetingCancel a meeting. Heldly releases active picker slots and deletes every tentative or confirmed event we placed on any host's calendar — synchronously, in one call. The invitee gets a cancellation email if the meeting was already booked. Cannot cancel meetings that are already...2 paramsCancel a meeting. Heldly releases active picker slots and deletes every tentative or confirmed event we placed on any host's calendar — synchronously, in one call. The invitee gets a cancellation email if the meeting was already booked. Cannot cancel meetings that are already...
reasonstringmeeting_idstringupdate_meeting_detailsEdit a meeting's topic, agenda, or invitee name WITHOUT re-emailing the invitee and WITHOUT changing any times. The right tool for typo fixes, agenda refinements, and correcting an invitee name the host wrote wrong. Allowed on `awaiting_invitee_pick` and `confirmed` meetings....4 paramsEdit a meeting's topic, agenda, or invitee name WITHOUT re-emailing the invitee and WITHOUT changing any times. The right tool for typo fixes, agenda refinements, and correcting an invitee name the host wrote wrong. Allowed on `awaiting_invitee_pick` and `confirmed` meetings....
meeting_idstringinvitee_namestringmeeting_topicstringmeeting_agendastringadd_co_hostAdd a workspace member as a co-host on an existing meeting without going through `reschedule_meeting` (which is heavy: deletes events + re-emails the invitee). The right tool for "actually loop Pat in on the Sara meeting too." Available on every plan. The new co-host must be a...2 paramsAdd a workspace member as a co-host on an existing meeting without going through `reschedule_meeting` (which is heavy: deletes events + re-emails the invitee). The right tool for "actually loop Pat in on the Sara meeting too." Available on every plan. The new co-host must be a...
meeting_idstringco_host_emailstringreschedule_meetingReschedule an existing meeting to new slots. Works for both: • `confirmed` meetings — Heldly deletes the booked event on every host's calendar, places fresh tentatives on the new slots, flips status back to awaiting_invitee_pick, and emails the invitee a 'moved to...' picker....6 paramsReschedule an existing meeting to new slots. Works for both: • `confirmed` meetings — Heldly deletes the booked event on every host's calendar, places fresh tentatives on the new slots, flips status back to awaiting_invitee_pick, and emails the invitee a 'moved to...' picker....
slotsarrayreasonstringmeeting_idstringwindow_endstringwindow_startstringnotify_inviteebooleaninvite_workspace_memberInvite a new member to your Heldly workspace (Business plan, admin only). Use this when the host wants to co-host a meeting with someone who isn't in the workspace yet — find_times and propose_meeting return `co_host_not_in_workspace` for those emails. The invitee receives an...3 paramsInvite a new member to your Heldly workspace (Business plan, admin only). Use this when the host wants to co-host a meeting with someone who isn't in the workspace yet — find_times and propose_meeting return `co_host_not_in_workspace` for those emails. The invitee receives an...
notestringrolestringmember · adminemailstringget_workspace_insightsWorkspace-wide insights for managers (Team admins only). Returns the funnel (proposed → opened → picked → confirmed), per-week volume, and time-to-pick percentiles. Use when the host asks any of: • 'how many meetings did the team book last week?' • 'what's our pick rate this q...2 paramsWorkspace-wide insights for managers (Team admins only). Returns the funnel (proposed → opened → picked → confirmed), per-week volume, and time-to-pick percentiles. Use when the host asks any of: • 'how many meetings did the team book last week?' • 'what's our pick rate this q...
metricstringfunnel · volume · time_to_pick · allsince_daysinteger