Usa Calendly MCP con
Sokko.
Conecta Calendly MCP y dile a Sokko qué hacer. Ejecuta las acciones que pides y reacciona a lo que ocurre, sin workflows ni código.
Funciona con más de 1.000 herramientas · Sin código
Acciones
Todo lo que Sokko puede hacer en Calendly MCP
Cada acción de Calendly MCP que Sokko puede ejecutar. Pídela en una frase y listo.
Availability-get user availability schedule
Use: Fetch details for one named availability schedule.
When: User asks about specific schedule rules or needs rules for a named schedule.
Needs: Schedule URI from `availability-list_user_availability_schedules`.
Do: Read `rules` array and `timezone` for display or to inform event-type updates.
Avoid: Writing to this schedule—use event-type-level update for changes.
Then: Report schedule details to user or use rules for availability queries.
Availability-list user availability schedules
Use: List all named availability schedules for the connected user.
When: User asks about availability schedules or you need to identify one by name.
Needs: User URI from `users-get_current_user`.
Do: Use returned `uri` to fetch schedule details or associate with an event type.
Avoid: Confusing user availability schedules with event-type-level schedules.
Then: Use schedule URI in `availability-get_user_availability_schedule` for details.
Availability-list user busy times
Use: List a user's busy time blocks within a date range.
When: User asks a general yes/no "what's my schedule", "am I free/busy", or "do I have any meetings" question with no named event type, invitee, or specific meeting. Default here even when the user says "meetings" — see `meetings-list_events` instead when the user wants to see or list which meetings they have.
Needs: User URI from `users-get_current_user` and ISO 8601 start/end range.
Do: Pass user URI and date range; use returned intervals to report conflicts.
Avoid: Substituting for `event_types-list_event_type_available_times` (event-type bookable slots) or `meetings-list_events` (only booked Calendly meetings, not full calendar busy blocks) — they differ.
Then: Use busy intervals to inform scheduling recommendations.
Event types-create event type
Use: Create a new event type on the connected account.
When: User explicitly asks to create a new event type.
Needs: Host user URI from `users-get_current_user`.
Do: Set name, duration, and host URI; omit optional fields unless user specified them.
Avoid: Creating duplicates—call `event_types-list_event_types` first to check for existing types.
Then: Confirm the new event type URI and share the scheduling URL.
Event types-get event type
Use: Fetch full details for one event type by URI.
When: Before updating an event type or confirming its current configuration.
Needs: Event type URI.
Do: Use the returned fields as the baseline for any patch payload.
Avoid: Constructing update payloads without reading current state first.
Then: Proceed with `event_types-update_event_type` using the returned data as base.
Event types-list event type availability schedule
Use: Read the current availability schedule (rules) for an event type.
When: Before calling `event_types-update_event_type_availability_schedule`.
Needs: Event type URI.
Do: Retain the full `rules` array verbatim—it is the required base for updates.
Avoid: Calling the update endpoint without first reading the current rules.
Then: Pass the rules to `event_types-update_event_type_availability_schedule` with only the needed edits.
Event types-list event type available times
Use: List bookable time slots for an event type within a date range.
When: User wants slots, or to confirm availability before booking.
Needs: Event type URI and start/end date range (ISO 8601).
Do: Pass `start_time` verbatim to subsequent tool calls; do not rewrite UTC values.
Avoid: Stale data, or trusting a prior local label—re-check UTC `start_time` if questioned.
Then: Pass UTC `start_time` to `meetings-create_invitee`.
Event types-list event types
Use: List all event types for the connected user or org.
When: Start of any event-type task, or when selecting an event type by name.
Needs: User URI from `users-get_current_user`.
Do: Filter by current user URI unless user explicitly asks about a different host or org.
Avoid: Assuming a cached list is current—call fresh each session.
Then: Carry the selected `uri` into get, update, or availability tools.
Event types-update event type
Use: Update fields on an existing event type.
When: User asks to change name, duration, description, or other settings.
Needs: Event type URI from `event_types-list_event_types` or `event_types-get_event_type`.
Do: Read current state first with `event_types-get_event_type`; patch only requested fields.
Avoid: Sending fields not read from current state—partial writes may reset unset fields.
Then: Confirm changes with `event_types-get_event_type`.
Event types-update event type availability schedule
Use: Overwrite the availability schedule for an event type.
When: User requests schedule changes (hours, days, one-off date overrides) for an event type.
Needs: Event type URI and current rules from `event_types-list_event_type_availability_schedule`.
Do: Must copy existing rules verbatim, modify only requested entries, send full rules array with IANA timezone. wday rules need `wday` field; date rules need `date` field (YYYY-MM-DD); `intervals` is list of `{from, to}` in HH:MM 24h.
Avoid: Constructing rules from scratch or sending a partial array—this endpoint overwrites all rules.
Then: Re-read schedule with `event_types-list_event_type_availability_schedule` to confirm.
List calendly skills
List or search available Calendly skill guides. Each skill gives domain-specific context, recommended tool usage, and best practices for working with Calendly MCP tools. Call this when the user's goal has no obvious single tool (e.g. reschedule or move a meeting). Load a matching skill before using related workflow tools. Use `keywords` to search by name or description (any keyword may match), and `include_header=true` to include each skill's description and related skills.
Load calendly skill
Load a Calendly skill guide that provides domain-specific context, recommended queries, and best practices for working with Calendly tools. Required after listing when a skill matches; do not guess multi-step flows from tool names alone. Use `list_calendly_skills` to discover available skills, or load directly by name. Set `header_only=true` to preview a skill's description and related skills without loading full content.
Locations-list user meeting locations
Use: List allowed meeting location kinds for a user.
When: Before creating bookings that need a `location` payload.
Needs: User URI from `users-get_current_user`.
Do: Read supported location `kind` values; choose one compatible with the event type.
Avoid: Submitting a location kind not configured for the host or event type.
Then: Use chosen kind in `meetings-create_invitee` location payload.
Meetings-cancel event
Use: Cancel a scheduled meeting on behalf of the connected host
When: User confirms they want to cancel a specific meeting.
Needs: Meeting URI from `meetings-list_events` or `meetings-get_event`.
Do: Pass meeting URI and optional cancellation reason.
Avoid: Canceling without confirmation; this notifies all invitees. For reschedule, surface `reschedule_url` instead.
Then: Inform user the meeting is canceled and optionally list remaining meetings.
Meetings-create invitee
Use: Book a meeting slot for an invitee on a Calendly event type.
When: User provides invitee name, email, and a confirmed available time slot.
Needs: Event type URI, `start_time` from `event_types-list_event_type_available_times`, invitee name and email. Include `location` if the event type has configured locations.
Do: Set invitee name/email as the person being booked; host is the connected user from `users-get_current_user`. Never swap host and invitee fields.
Avoid: Booking without confirming slot availability first, or omitting `location` when event type requires it.
Then: Confirm booking with invitee details and meeting URI.
Meetings-create invitee no show
Use: Mark an invitee as a no-show for a past meeting.
When: User reports an invitee did not attend.
Needs: Invitee URI from `meetings-list_event_invitees`.
Do: Pass invitee URI; operation is idempotent.
Avoid: Marking no-show before the meeting end time.
Then: Confirm no-show is recorded and carry forward the no-show URI.
Meetings-delete invitee no show
Use: Remove a no-show mark from an invitee.
When: User asks to undo a no-show marking.
Needs: No-show URI from `meetings-create_invitee_no_show`.
Do: Pass no-show URI; operation is idempotent.
Avoid: Calling without confirming a no-show record exists.
Then: Confirm no-show has been removed.
Meetings-get event
Use: Fetch details for a single scheduled meeting.
When: User asks about a specific meeting or before canceling/examining invitees.
Needs: Meeting URI from `meetings-list_events`.
Do: Use returned `event_type`, `start_time`, `end_time`, and `location` for display or next actions.
Avoid: Calling this without a known meeting URI. list meetings first.
Then: Use meeting URI in `meetings-list_event_invitees` or `meetings-cancel_event`.
Meetings-get event invitee
Use: Fetch details for a single meeting invitee.
When: User asks about a specific attendee's booking details.
Needs: Meeting URI from `meetings-list_events` and Invitee URI from `meetings-list_event_invitees`.
Do: Use returned fields for display or no-show status. Reschedule: surface `reschedule_url`.
Avoid: Calling without known meeting and invitee URIs.
Then: Use invitee URI in no-show tools if needed.
Meetings-get invitee no show
Use: Fetch the no-show record for a meeting invitee.
When: User asks whether a no-show was recorded for an invitee.
Needs: No-show URI from `meetings-create_invitee_no_show`.
Do: Check returned record for no-show status and timestamp.
Avoid: Calling if no no-show has been recorded—returns 404.
Then: Report no-show status to user.
Meetings-list event invitees
Use: List all invitees for a scheduled meeting.
When: User asks who is attending a meeting or you need invitee URIs.
Needs: Meeting URI from `meetings-list_events`.
Do: Use returned invitee `uri` for no-show marking or detail lookups.
Avoid: Calling without a meeting URI. list meetings first.
Then: Use invitee URI in `meetings-get_event_invitee` or `meetings-create_invitee_no_show`. For reschedule, surface each invitee's `reschedule_url`.
Meetings-list events
Use: List scheduled meetings for user/org.
When: Upcoming/past meetings or to find meetings by date.
Needs: User/org URI via `users-get_current_user`.
Do: Filter status (active/canceled), date range; carry `uri`.
Avoid: Fetching unfiltered when the user has a specific date. Not for a yes/no busy/free check phrased as "meetings" (e.g. "do I have any meetings tomorrow") — use `availability-list_user_busy_times` instead.
Then: Enrich via `meetings-list_event_invitees` before listing/naming meetings, unless asked for only a count; then `uri` in `meetings-get_event`/`meetings-cancel_event`.
Organizations-create organization invitation
Use: Invite a user to the organization by email.
When: User asks to add a new member.
Needs: Org URI and invitee email address.
Do: Check `organizations-list_organization_invitations` first to avoid duplicate invites.
Avoid: Calling without confirming no pending invite exists for this email.
Then: Confirm invitation sent and optionally show pending invitations.
Organizations-get organization
Use: Fetch details for the connected user's organization.
When: User asks about the org or you need the org URI for org-scoped list tools.
Needs: Org URI from `users-get_current_user` (`resource.current_organization`).
Do: Use returned `uri` for org-scoped event type or membership queries.
Avoid: Calling without an org URI.
Then: Use org URI in `organizations-list_organization_memberships`.
Organizations-get organization membership
Use: Fetch details for a single org membership.
When: You need role or status for a specific member.
Needs: Membership URI from `organizations-list_organization_memberships`.
Do: Check `role` and `status` fields for permissions context.
Avoid: Calling without a known membership URI.
Then: Use membership data to confirm before invite or removal actions.
Organizations-list organization invitations
Use: List pending invitations for the organization.
When: User asks to see pending invites or check if someone was already invited.
Needs: Org URI from `users-get_current_user`.
Do: Check returned list before sending a new invite to avoid duplicates.
Avoid: Sending a new invitation without checking for existing pending ones.
Then: Use invitation URI in `organizations-revoke_organization_invitation` if needed.
Organizations-list organization memberships
Use: List all members of an organization.
When: User asks who is in the org or you need to find a member's user URI.
Needs: Org URI from `users-get_current_user`.
Do: Use returned `user.uri` for per-user event-type or availability queries.
Avoid: Fetching the full list when you only need the connected user—use `users-get_current_user` instead.
Then: Use member URI in user-scoped tools or `organizations-get_organization_membership`.
Organizations-revoke organization invitation
Use: Revoke a pending organization invitation.
When: User asks to cancel a pending invite.
Needs: Organization URI from `users-get_current_user` and Invitation URI from `organizations-list_organization_invitations`.
Do: Confirm with user before revoking; this cannot be undone.
Avoid: Revoking without confirming the invite is still pending.
Then: Confirm revocation and optionally refresh invitations list.
Routing forms-get routing form
Use: Fetch details for a single routing form.
When: User asks about a specific form or its questions.
Needs: Routing form URI from `routing_forms-list_routing_forms`.
Do: Use returned question IDs for submission filtering.
Avoid: Calling without a known form URI.
Then: Use form details to answer user questions or list submissions.
Routing forms-get routing form submission
Use: Fetch details for a single routing form submission.
When: User asks about a specific submission or response.
Needs: Submission URI from `routing_forms-list_routing_form_submissions`.
Do: Read `questions_and_answers` for the submitted values.
Avoid: Calling without a known submission URI.
Then: Report submission details to user.
Routing forms-list routing forms
Use: List routing forms for the org.
When: User asks about routing forms or you need to find a form by name.
Needs: Org URI from `users-get_current_user`.
Do: Use returned `uri` to fetch form details.
Avoid: Assuming form names without listing first.
Then: Use form URI in `routing_forms-get_routing_form`.
Routing forms-list routing form submissions
Use: List submissions for a routing form.
When: User asks to see form responses or analyze routing data.
Needs: Routing form URI from `routing_forms-list_routing_forms`.
Do: Use pagination params for large result sets.
Avoid: Fetching all submissions without date/count filters on high-volume forms.
Then: Use submission URI in `routing_forms-get_routing_form_submission`.
Scheduling links-create single use scheduling link
Use: Create a single-use scheduling link using the event type's settings unchanged.
When: User wants a one-time link with no overrides. For per-link customization (duration, scheduling window, location, availability), use `shares-create_share` instead.
Needs: Event type URI from `event_types-list_event_types`.
Do: Each call creates a new link; store the returned `booking_url`.
Avoid: Using when any override is requested — this endpoint cannot customize the link. Don't create more links than needed; each call creates a distinct non-reusable link.
Then: Share `booking_url` with the intended invitee.
Shares-create share
Use: Create a single-use share link for a one-on-one event type with per-link overrides
When: User wants a single-use link with any customization (duration, scheduling window, location, or availability).
Needs: Event type URI from `event_types-list_event_types`.
Do: Set only fields to override; omitted fields inherit from event type.
Avoid: Group event types (one-on-one only).
Then: Share the returned `booking_url`. To prefill the invitee's name on the booking page, append a `name` query parameter with the URL-encoded value, e.g. `{booking_url}?name=Pat+Tester`.
Users-get current user
Use: Resolve the connected host account and canonical user URI.
When: Start any scheduling, booking, event-type, or availability workflow.
Needs: No inputs.
Do: Call once and keep `resource.uri`, `timezone`, and `scheduling_url` for downstream calls.
Avoid: Skipping this and guessing host identity.
Then: Use `resource.uri` in list/get tools unless the user explicitly names another host.
Users-get user
Use: Fetch profile for a specific user by URI.
When: User asks about another person's account or you hold a user URI from org/membership data.
Needs: User URI.
Do: Pass the user URI from org/membership data; do not use this to look up the connected user.
Avoid: Calling this without a known URI - use `users-get_current_user` for the connected user.
Then: Use returned `resource.uri` and `resource.timezone` for event-type or availability lookups scoped to that user.
Conéctate
En tu Slack en dos minutos.
Sin flujos que configurar. Activa las herramientas que ya usas y tu agente se pone a trabajar.
Añadir a Slack
1
Añade Sokko a Slack
Un clic desde el marketplace de Slack. Todo tu equipo tiene Sokko de una vez.
2
Conecta tus herramientas
Sokko funciona con más de 1000 apps y cualquier servidor MCP.
Martin
9:53 AM
@Sokko
¿Qué puedes hacer con Calendly MCP?
3
Pon a Sokko a trabajar
@menciona a Sokko en cualquier canal y arranca. Minutos, no un fin de semana.
Preguntas, respondidas.
Sokko es un asistente de IA que vive en tu Slack. Conecta tus apps, pide lo que necesitas en lenguaje natural y Sokko se encarga del trabajo por ti.
Regístrate en Sokko, pídele a Sokko que se conecte a Calendly MCP y aprueba la conexión cuando se te solicite. A partir de ahí puedes pedirle a Sokko que haga cosas en Calendly MCP cuando quieras.
No. No hay nada que crear ni configurar. Le pides a Sokko en Slack igual que se lo pedirías a un colega, y Sokko se encarga del resto.
Sí. Pídelo una vez y dile a Sokko cuándo repetirlo, como cada lunes a las 9 h, y se convierte en una rutina que se ejecuta sin ti.
Leer y actuar sobre los datos de Calendly MCP, y lanzar workflows cuando algo cambia. Dile a Sokko el resultado que quieres y se encarga del resto.
Sí. Sokko se conecta a más de 1.000 apps y a cualquier servidor MCP, así que puedes pedir tareas que abarquen Calendly MCP y el resto de tu stack en una sola petición.