
Step 1: Connect your stack
27 native integrations. 3,200+ tools via managed connectors. Most are one-click OAuth, some use API keys - Viktor handles auth and starts working. No webhooks, no Zapier zaps.
Viktor is an AI employee that connects to Calendly and helps you schedule meetings and manage appointment bookings, running 12 Calendly actions for you like Get Event, List Groups, and List Events. Ask in plain English from your workspace; Viktor does the work in Calendly and reports back. Viktor connects in one click via OAuth.
A Calendly AI agent is an AI that connects to your Calendly account and completes work in it - it doesn't just answer questions about Calendly, it takes the actions. Viktor is an AI employee that works in Calendly on your behalf and delivers the finished result to your workspace.
Unlike workflow builders such as Zapier or Make, there is nothing to configure - no triggers to map, no workflows to maintain. You describe the outcome in plain English, and Viktor picks the right Calendly actions, chains them with the other 3,200+ tools it connects to, and asks for approval before anything sensitive runs.
About Calendly
Calendly is an appointment scheduling tool that automates meeting invitations, availability checks, and reminders, helping individuals and teams avoid email back-and-forth
You ask in your workspace
Describe what you need in plain English
Viktor picks the actions
Selects from 12 Calendly actions, chains them together
Runs in Calendly
Helps you schedule meetings and manage appointment bookings - your real data.
Reports back
Delivers the finished result to your workspace
Messages you'd actually send. Paste one into your workspace, swap in your specifics, and Viktor takes it from there.
“Find a time that works for everyone and send a Calendly booking link.”
— you, to @Viktor
“Check Calendly for tomorrow's bookings and send me a morning summary.”
— you, to @Viktor
“Watch Calendly for a cancellation and offer the slot to the next person on the waitlist.”
— you, to @Viktor
“Reschedule everything on my Calendly calendar affected by this conflict.”
— you, to @Viktor

27 native integrations. 3,200+ tools via managed connectors. Most are one-click OAuth, some use API keys - Viktor handles auth and starts working. No webhooks, no Zapier zaps.
Message Viktor in Slack like you'd message a teammate. "Reconcile this month's invoices and flag anything weird." "Pause Meta campaigns above $40 CPA and move the budget to winners." Plain English, any tool.
Viktor opens the tools, runs the work, and posts back what changed. Sensitive actions wait for your approval. Everything is logged. You stop doing the work and start reviewing it.
Ask in plain English from your workspace. Viktor picks the right Calendly actions, runs the work, and reports back. No workflows to build.
Get a list of Webhook Subscriptions for an Organization or User via GET /webhooksubscriptions. Requires organizationUri when scope is organization, or userUri when scope is user. Run List Organization Memberships first to obtain an organization or user URI. Example: call with scope set to organization and organizationUri set to to return that organization's webhook subscriptions.
List the availability schedules of the given user via GET /useravailabilityschedules. Run List Organization Memberships first to obtain a user URI. Example: call with user set to to return that user's named availability schedules (e.g. Working Hours) with their weekly rules.
List the members of a Calendly organization via GET /organizationmemberships, returning each membership's user URI, role, and email. Use this as the companion lookup action for user and organization URIs consumed by other tools. Supports optional role and email filters plus pagination. Example: called with no props, returns the authenticated user's memberships such as { user: { name: "Jane Doe", uri: " }, organization: " role: "owner" } — pass those URIs as the user/organization props in other actions.
List the groups within a Calendly organization via GET /groups (requires organization admin/owner privilege). Use this to discover valid Group UUIDs for scoping List Events to a specific group. Run List Organization Memberships first to obtain an organization URI. Example: call with organization set to to get groups such as { name: "Sales Team", uri: " }; pass the trailing BBBBBBBBBBBBBBBB segment as the Group UUID to List Events.
List scheduled Calendly events. Scope the results by providing at most one of Organization URI, User URI, or Group UUID; if none is provided, events for the authenticated user are returned (supplying more than one raises a configuration error). Narrow the results further with an invitee email to return only events scheduled with that invitee. Filter by date range using Min Start Time and/or Max Start Time, both ISO 8601 datetimes in UTC (e.g. 2026-08-01T00:00:00Z). Each returned event includes a uri; the trailing UUID segment is the event UUID used by downstream actions such as Get Event, List Event Invitees, Get Event Invitee, and Cancel Event. Example: called with no props, returns the authenticated user's upcoming events, each like { name: "30 Minute Meeting", uri: " status: "active" }.
Retrieve the event types available to a user or organization via GET /eventtypes. Use this to discover valid event type URIs and UUIDs for scheduling flows. Provide either an Organization URI or a User URI; if neither is provided the authenticated user is used. Use List Organization Memberships to find user and organization URIs. Example: called with no props, returns the authenticated user's event types such as { name: "30 Minute Meeting", uuid: "AAAAAAAAAAAAAAAA" } — pass that uuid as the owner prop in Create a Scheduling Link.
List the invitees for a scheduled event via GET /scheduledevents/{uuid}/invitees. Run List Events first to obtain the event UUID. Example: call with eventId set to a1b2c3d4-e5f6-7890-abcd-ef1234567890 and status set to active to return only that event's non-canceled invitees, each with a uri whose trailing segment is the invitee UUID used by Get Event Invitee and Create Invitee No Show.
Retrieve the full invitee resource (including email, name, status, rescheduleurl, and noshow) via GET /scheduledevents/{eventuuid}/invitees/{inviteeuuid}. Use the returned rescheduleurl to direct an invitee to self-reschedule. Run List Events to find event UUIDs, then List Event Invitees to find invitee UUIDs. Example: with eventUuid set to a1b2c3d4-e5f6-7890-abcd-ef1234567890 and inviteeUuid set to f7e6d5c4-b3a2-1098-fedc-ba9876543210, returns that invitee's email, name, and status: "active".
Gets information about a scheduled event via GET /scheduledevents/{uuid}. Provide either the Event UUID (from List Events) or the full Event URL. Example: with eventId set to a1b2c3d4-e5f6-7890-abcd-ef1234567890, returns the event's name, start/end times, status, and location.
Ask for outcomes that span tools - Viktor pulls from Calendly, cross-references the rest of your stack, and delivers one finished result.
Yes. Calendly is one of the 3,200+ tools Viktor connects to, via a managed connector. Once connected, anyone on your team can put Viktor to work in Calendly from their workspace - no workflow builder, no code.
One hire. The output of a team.
Viktor works nights, remembers every decision, and connects to 3,200 tools. Start free with $100 in credits, then $50 a month.