Work with Calendly from chat — manage events, invitees, scheduling links, webhooks, and availability via the Calendly API with OAuth authentication.
This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure Calendly API access yourself.
Step 1: InstallStep 2: Pair AccountStep 3: Connect Calendly
_App-specific connection GIF coming soon_Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect Calendly
text
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Calendly API │
│ (User Chat) │ │ (OAuth) │ │ (Events/Scheduling)│
└─────────────────┘ └──────────────┘ └──────────────────┘
│ │ │
│ 1. Install Plugin │ │
│ 2. Pair Device │ │
│ 3. Connect Calendly │ │
│ │ 4. Secure Token │
│ │ 5. Proxy Requests │
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ SKILL │ │ Dashboard│ │ Calendly │
│ File │ │ Auth │ │ Scheduling│
└──────────┘ └──────────┘ └──────────┘
Install the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.
bash
openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
Then tell the user: "OpenClaw has been restarted. Send /new as a standalone message to start a fresh chat, then ask for Calendly again."
bash
# List scheduled events
clawlink_call_tool --tool "calendly_list_scheduled_events" --params '{"user": "https://api.calendly.com/users/USER_UUID"}'
# List event types
clawlink_call_tool --tool "calendly_list_event_types" --params '{"user": "https://api.calendly.com/users/USER_UUID"}'
# Get event invitees
clawlink_call_tool --tool "calendly_list_event_invitees" --params '{"event": "https://api.calendly.com/scheduled_events/EVENT_UUID"}'
All Calendly tool calls are authenticated automatically by ClawLink using the user's connected Calendly account.
No API key is required in chat. ClawLink stores the OAuth token securely and injects it into every Calendly API request on the user's behalf.
clawlink_begin_pairing if it is not configured yet.clawlink_list_integrations to verify the connection is active.bash
clawlink_list_integrations
Response: Returns all connected integrations. Look for calendly in the list.
bash
clawlink_list_tools --integration calendly
Response: Returns the live tool catalog for Calendly.
If Calendly tools are missing or the connection shows an error:
clawlink_list_integrations to verifyclawlink_list_tools --integration calendlyToolDescriptionModecalendly_list_scheduled_eventsList scheduled events for a user or organizationReadcalendly_get_eventGet a specific event by UUIDReadcalendly_cancel_scheduled_eventPermanently cancel a scheduled event (sends notifications)Writecalendly_list_event_inviteesList invitees for a specific eventReadcalendly_get_event_inviteeGet a specific invitee's detailsReadcalendly_invitee_no_showMark an invitee as a no-showWrite
ToolDescriptionModecalendly_list_event_typesList all event types for a user or organizationReadcalendly_get_event_typeGet a specific event type by UUIDReadcalendly_create_event_typeCreate a new one-on-one event typeWritecalendly_update_event_typeUpdate an existing event typeWritecalendly_list_event_type_membershipsList hosts for an event typeReadcalendly_get_event_type_availabilityGet availability rules for an event typeReadcalendly_list_event_type_available_timesGet available time slots for an event typeRead
ToolDescriptionModecalendly_create_scheduling_linkCreate a reusable scheduling link with max bookingsWritecalendly_create_single_use_scheduling_linkCreate a one-time scheduling linkWritecalendly_create_shareCreate a shareable link with event type overridesWrite
ToolDescriptionModecalendly_get_userGet user detailsReadcalendly_get_organizationGet organization detailsReadcalendly_list_organization_membershipsList organization membersReadcalendly_list_user_busy_timesGet user's busy time intervalsReadcalendly_list_user_availability_schedulesList user's availability schedulesReadcalendly_get_user_availability_scheduleGet a specific availability scheduleReadcalendly_organization_invitationInvite a user to an organizationWritecalendly_revoke_user_s_organization_invitationRevoke a pending invitationWritecalendly_remove_user_from_organizationRemove a user from an organizationWrite
ToolDescriptionModecalendly_list_routing_formsList routing forms for an organizationReadcalendly_get_routing_formGet a specific routing formReadcalendly_get_routing_form_submissionGet a routing form submissionRead
ToolDescriptionModecalendly_list_groupsList groups in an organizationReadcalendly_get_groupGet a specific groupReadcalendly_list_group_relationshipsList user's group memberships and rolesRead
ToolDescriptionModecalendly_list_webhook_subscriptionsList webhook subscriptions for an organizationReadcalendly_get_webhook_subscriptionGet a specific webhook subscriptionReadcalendly_create_webhooksCreate a webhook subscriptionWritecalendly_delete_webhook_subscriptionDelete a webhook subscriptionWritecalendly_get_sample_webhook_dataGet sample webhook payload for testingRead
ToolDescriptionModecalendly_list_activity_log_entriesList activity log entries (Enterprise only)Readcalendly_delete_invitee_dataDelete invitee data for GDPR compliance (Enterprise)Writecalendly_delete_scheduled_event_dataDelete scheduled event data in a time range (Enterprise)Write
bash
clawlink_call_tool --tool "calendly_list_scheduled_events" \
--params '{
"user": "https://api.calendly.com/users/YOUR_USER_UUID",
"status": "active",
"count": 20
}'
bash
clawlink_call_tool --tool "calendly_create_scheduling_link" \
--params '{
"owner": "https://api.calendly.com/users/YOUR_USER_UUID",
"max_event_count": 5,
"applies_to": "events"
}'
bash
clawlink_call_tool --tool "calendly_cancel_scheduled_event" \
--params '{
"event": "https://api.calendly.com/scheduled_events/EVENT_UUID",
"reason": "Rescheduled by organizer"
}'
bash
clawlink_call_tool --tool "calendly_create_webhooks" \
--params '{
"organization": "https://api.calendly.com/organizations/YOUR_ORG_UUID",
"scope": "organization",
"callback_url": "https://your-server.com/webhooks/calendly",
"events": ["invitee.created", "invitee.canceled"]
}'
clawlink_list_integrations to confirm Calendly is connected.clawlink_list_tools --integration calendly to see the live catalog.clawlink_search_tools with a short query and integration calendly.text
┌─────────────────────────────────────────────────────────────┐
│ READ OPERATIONS (Safe) │
│ list → get → describe → call │
│ │
│ Example: List events → Get event details → Show results │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ WRITE OPERATIONS (Require Confirmation) │
│ list → get → describe → preview → confirm → call │
│ │
│ Example: Describe tool → Preview changes → User approves │
│ → Execute update │
└─────────────────────────────────────────────────────────────┘
clawlink_describe_tool first.whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.clawlink_preview_tool first.clawlink_call_tool. Pass confirmation only after the preview matches the user's intent.https://api.calendly.com/scheduled_events/UUID).Status / ErrorMeaningTool not foundThe tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration calendly.Missing connectionCalendly is not connected. Direct the user to https://claw-link.dev/dashboard?add=calendly.not_foundEvent, user, or resource does not exist. Check the UUID.InvalidArgumentInvalid parameter or missing required field. Review the tool schema with clawlink_describe_tool.Write rejectedUser did not confirm a write action. Always confirm before executing writes.
Check that the ClawLink plugin is installed: bash
openclaw plugins list
If the plugin is installed but tools are missing, tell the user to send /new as a standalone message to reload the catalog.
If a fresh chat does not help, run: bash
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
After restart, tell the user to send /new again and retry.
calendly.clawlink_describe_tool to verify parameter names and types before calling.clawlink_preview_tool first.Powered by ClawLink — an integration hub for OpenClaw
