# Calendly on boxd

> Calendly is an appointment scheduling tool that automates meeting invitations, availability checks, and reminders, helping individuals and teams avoid email back-and-forth.

- Page: https://boxd.sh/integrations/calendly/
- CLI: `run calendly` (56 commands, 14 marked common)
- SDK: `import { calendly } from "@boxd/run"`; every parameter and response type is at `@boxd/run/calendly`
- Triggers: none
- Connect: `run auth calendly` (Sign in with Calendly), or https://app.boxd.sh/integrations/detail/calendly
- All integrations: https://boxd.sh/integrations/ (Markdown: https://boxd.sh/integrations/index.md)

## From the shell

```sh
run auth calendly      # once: prints a link to connect your account
run calendly           # list its commands
run calendly get-user
```

Parameters are flags (`--flag value`); object and array parameters take a JSON string. Output is YAML, or JSON with `--json`. Calls use your own connection; `--scope <name>` uses a connection shared with your team.

## From a script

```ts
import { every, calendly } from "@boxd/run";

every("1 hour", async () => {
  const result = await calendly.getUser({});
  console.log(result);
});
```

Run it with `run calendly.run.ts`. Calendly has no triggers; `every()` polls on a schedule, keeps the script running as a job, and wakes the machine when it is due.

## Commands

Required flags are listed; `run calendly <command> --help` lists the optional ones. "common" marks what `run calendly` shows without `--all`.

| Command | SDK method | Required flags | Optional | Description |
|---|---|---|---|---|
| `cancel-scheduled-event` ·common | `calendly.cancelScheduledEvent()` | `--event-uuid` | 1 | Cancel a scheduled Calendly event by creating a cancellation record |
| `create-event-invitee` ·deprecated | `calendly.createEventInvitee()` | `--event-type` `--invitee` `--location` `--start-time` | 3 | Use post-invitee instead |
| `create-event-type` ·common | `calendly.createEventType()` | `--name` `--owner` | 7 | Create a new one-on-one event type (kind: solo) in Calendly |
| `create-one-off-event-type` | `calendly.createOneOffEventType()` | `--date-setting` `--duration` `--host` `--name` | 2 | Creates a temporary Calendly one-off event type for unique meetings outside regular availability, requiring valid host/co-host URIs, a future date/range for `date_setting`, and a positive `duration` |
| `create-scheduling-link` | `calendly.createSchedulingLink()` | `--owner` | 2 | Create a single-use scheduling link |
| `create-share` | `calendly.createShare()` | `--event-type` | 11 | Creates a customizable, one-time share link for a Calendly event type, allowing specific overrides to its settings (e.g., duration, availability, location) without altering the original event type |
| `create-single-use-scheduling-link` | `calendly.createSingleUseSchedulingLink()` | `--max-event-count` `--owner` `--owner-type` | 0 | Creates a one-time, single-use scheduling link for an active Calendly event type, expiring after one booking |
| `create-webhooks` ·common | `calendly.createWebhooks()` | `--events` `--organization` `--scope` `--url` | 3 | Create a webhook subscription for receiving Calendly event notifications |
| `delete-invitee-data` | `calendly.deleteInviteeData()` | `--emails` | 0 | Permanently removes all invitee data associated with the provided emails from past organization events, for data privacy compliance (requires Enterprise subscription; deletion may take up to one week) |
| `delete-invitee-no-show` | `calendly.deleteInviteeNoShow()` | `--uuid` | 0 | Deletes an Invitee No-Show record by its `uuid` to reverse an invitee's 'no-show' status; the `uuid` must refer to an existing record |
| `delete-organization-membership` ·common | `calendly.deleteOrganizationMembership()` | `--uuid` | 0 | Remove a user from a Calendly organization by membership UUID |
| `delete-scheduled-event-data` | `calendly.deleteScheduledEventData()` | `--end-time` `--start-time` | 0 | For Enterprise users, initiates deletion of an organization's scheduled event data between a `start_time` and `end_time` (inclusive, where `start_time` must be <= `end_time`); actual data deletion… |
| `delete-webhook-subscription` | `calendly.deleteWebhookSubscription()` | `--webhook-uuid` | 0 | Deletes an existing webhook subscription to stop Calendly sending event notifications to its registered callback URL; this operation is idempotent |
| `get-current-user` ·deprecated | `calendly.getCurrentUser()` | — | 0 | Use get-user instead |
| `get-event` | `calendly.getEvent()` | `--uuid` | 0 | Use to retrieve a specific Calendly scheduled event by its UUID, provided the event exists in the user's Calendly account |
| `get-event-invitee` | `calendly.getEventInvitee()` | `--event-uuid` `--invitee-uuid` | 0 | Retrieves detailed information about a specific invitee of a scheduled event, using their unique UUIDs |
| `get-event-type` | `calendly.getEventType()` | — | 1 | Retrieves details for a specific Calendly event type, identified by its UUID, which must be valid and correspond to an existing event type |
| `get-event-type-availability` ·common | `calendly.getEventTypeAvailability()` | `--event-type` | 1 | Retrieve availability schedules configured for a specific Calendly event type |
| `get-group` | `calendly.getGroup()` | `--uuid` | 0 | Retrieves all attributes of a specific Calendly group by its UUID; the group must exist |
| `get-group-relationship` | `calendly.getGroupRelationship()` | `--uuid` | 0 | Retrieves a specific Calendly group relationship by its valid and existing UUID, providing details on user-group associations and membership |
| `get-invitee-no-show` | `calendly.getInviteeNoShow()` | `--uuid` | 0 | Retrieves details for a specific Invitee No Show record by its UUID; an Invitee No Show is marked when an invitee does not attend a scheduled event |
| `get-organization` ·common | `calendly.getOrganization()` | `--uuid` | 0 | Retrieve information about a specific Calendly organization |
| `get-organization-invitation` | `calendly.getOrganizationInvitation()` | `--org-uuid` `--uuid` | 0 | Retrieves a specific Calendly organization invitation using its UUID and the parent organization's UUID |
| `get-organization-membership` | `calendly.getOrganizationMembership()` | `--uuid` | 0 | Retrieves a specific Calendly organization membership by its UUID, returning all its attributes |
| `get-routing-form` | `calendly.getRoutingForm()` | `--uuid` | 0 | Retrieves a specific routing form by its UUID, providing its configuration details including questions and routing logic |
| `get-routing-form-submission` | `calendly.getRoutingFormSubmission()` | `--uuid` | 0 | Retrieve details about a specific routing form submission by its UUID |
| `get-sample-webhook-data` | `calendly.getSampleWebhookData()` | `--event` `--organization` `--scope` | 1 | Retrieve sample webhook payload data for testing webhook subscriptions |
| `get-user` ·common | `calendly.getUser()` | — | 1 | Retrieves comprehensive details for an existing Calendly user |
| `get-user-availability-schedule` | `calendly.getUserAvailabilitySchedule()` | `--uuid` | 0 | Retrieves an existing user availability schedule by its UUID; this schedule defines the user's default hours of availability |
| `get-webhook-subscription` | `calendly.getWebhookSubscription()` | `--webhook-uuid` | 0 | Retrieves the details of an existing webhook subscription, identified by its UUID, including its callback URL, subscribed events, scope, and state |
| `invitee-no-show` | `calendly.inviteeNoShow()` | `--invitee` | 0 | Mark an invitee as a no-show for a scheduled event |
| `list-activity-log-entries` | `calendly.listActivityLogEntries()` | `--organization` | 9 | Retrieves a list of activity log entries for a specified Calendly organization (requires an active Enterprise subscription), supporting filtering, sorting, and pagination |
| `list-event-invitees` | `calendly.listEventInvitees()` | `--uuid` | 5 | Retrieves a list of invitees for a specified Calendly event UUID, with options to filter by status or email, and sort by creation time |
| `list-event-type-available-times` | `calendly.listEventTypeAvailableTimes()` | `--end-time` `--event-type` `--start-time` | 0 | Fetches available time slots for a Calendly event type within a specified time range; results are not paginated |
| `list-event-type-memberships` | `calendly.listEventTypeMemberships()` | `--event-type` | 2 | Retrieve a list of event type hosts (memberships) for a specific event type |
| `list-event-types` ·common | `calendly.listEventTypes()` | — | 8 | List all Event Types associated with a specified User or Organization |
| `list-events` ·deprecated | `calendly.listEvents()` | — | 10 | Use list-scheduled-events instead |
| `list-group-relationships` | `calendly.listGroupRelationships()` | — | 5 | Retrieves a list of group relationships defining an owner's role (e.g., member, admin) within a group; an owner can have one membership per group but multiple admin roles across different groups |
| `list-groups` | `calendly.listGroups()` | `--organization` | 2 | Returns a list of groups for a specified Calendly organization URI, supporting pagination |
| `list-organization-invitations` | `calendly.listOrganizationInvitations()` | `--uuid` | 5 | Retrieves a list of invitations for a specific organization, identified by its UUID |
| `list-organization-memberships` | `calendly.listOrganizationMemberships()` | — | 5 | Retrieves a list of organization memberships |
| `list-outgoing-communications` | `calendly.listOutgoingCommunications()` | `--organization` | 4 | Retrieves a list of outgoing SMS communications for a specified organization; requires an Enterprise subscription and if filtering by creation date, both `min_created_at` and `max_created_at` must be… |
| `list-routing-form-submissions` ·common | `calendly.listRoutingFormSubmissions()` | `--form` | 3 | List all submissions associated with a specific routing form |
| `list-routing-forms` | `calendly.listRoutingForms()` | `--organization` | 3 | Retrieves routing forms for a specified organization; routing forms are questionnaires used to direct invitees to appropriate booking pages or external URLs |
| `list-scheduled-events` ·common | `calendly.listScheduledEvents()` | — | 10 | Retrieve a list of scheduled Calendly events |
| `list-user-availability-schedules` | `calendly.listUserAvailabilitySchedules()` | `--user` | 0 | Retrieves all availability schedules for the specified Calendly user |
| `list-user-busy-times` | `calendly.listUserBusyTimes()` | `--end-time` `--start-time` `--user` | 0 | Fetches a user's busy time intervals (internal and external calendar events) in ascending order for a period up to 7 days; keyset pagination is not supported |
| `list-user-locations` | `calendly.listUserLocations()` | `--user` | 0 | Retrieve configured meeting location information for a given Calendly user |
| `list-user-s-event-types` ·deprecated | `calendly.listUserSEventTypes()` | — | 8 | Use list-event-types instead |
| `list-webhook-subscriptions` | `calendly.listWebhookSubscriptions()` | `--organization` `--scope` | 5 | Retrieves webhook subscriptions for a Calendly organization; `scope` determines if `user` or `group` URI is also required for filtering |
| `organization-invitation` ·common | `calendly.organizationInvitation()` | `--email` `--org-uuid` | 0 | Invite a user to a Calendly organization via email |
| `post-invitee` ·common | `calendly.postInvitee()` | `--event-type` `--invitee` `--start-time` | 4 | Create a new Event Invitee with standard notifications, calendar invites, reschedules, and workflows |
| `remove-user-from-organization` | `calendly.removeUserFromOrganization()` | `--uuid` | 0 | Removes a user (who is not an owner) from an organization by their membership UUID, requiring administrative privileges |
| `revoke-user-s-organization-invitation` | `calendly.revokeUserSOrganizationInvitation()` | `--org-uuid` `--uuid` | 0 | Revokes a pending and revokable (not yet accepted or expired) organization invitation using its UUID and the organization's UUID, rendering the invitation link invalid |
| `update-event-type` ·common | `calendly.updateEventType()` | `--uuid` | 8 | Update an existing one-on-one event type (kind: solo) in Calendly |
| `update-event-type-availability` ·common | `calendly.updateEventTypeAvailability()` | `--availability-rule` `--event-type` | 2 | Update an event type availability schedule in Calendly |

## Docs

- [run CLI](https://docs.boxd.sh/cli/run): Call connected integrations from the shell, connect new ones, and run automations.
- [Quickstart](https://docs.boxd.sh/guides/integrations/quickstart): Connect an integration, call it from the shell, and turn a script into an automation.
- [Connections](https://docs.boxd.sh/guides/integrations/connections): Connect an account once, for yourself or for your whole organization.
- [Scripts](https://docs.boxd.sh/guides/automations/scripts): Typed integrations, triggers, schedules and state in a .run.ts file.
- [Jobs](https://docs.boxd.sh/guides/automations/jobs): How a script becomes a background job: states, retries, sleep and wake.
- [Beyond the catalog](https://docs.boxd.sh/guides/automations/beyond-the-catalog): Reach your own APIs, databases and cloud accounts from a script.
