npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@firfi/huly-cli

v0.48.2

Published

Feature-complete CLI for self-hosted Huly project management, issue tracking, automation, CI, and AI agents with 500+ native commands

Readme

Huly CLI

npm npm downloads CI Package smoke Node.js 22.19+ License: MIT

Huly CLI is a feature-complete command-line interface for Huly, with full Huly operation parity with @firfi/huly-mcp. Every shared Huly operation is available as a native, schema-aware command.

Use readable terminal output interactively or --json in scripts and coding-agent workflows. The CLI invokes the shared operation registry directly: it does not start an MCP server or translate commands through JSON-RPC.

Visit the Huly CLI website for focused examples, automation patterns, and a Huly MCP vs CLI comparison.

[!IMPORTANT] Hosted Huly is being discontinued. If you use https://huly.app, export and migrate your data. See Huly's backup and restore guide and self-hosting repository. Self-hosted deployments are not affected.

Highlights

  • Full operation parity with Huly MCP, enforced against the shared operation registry.
  • Native commands for projects, issues, documents, chat, calendar, time tracking, workspace administration, and more.
  • Generated, schema-aware command help with clear flags and named positionals.
  • Human-readable output for interactive use and structured JSON output for automation.
  • JSON, file-backed text, upload, download, and binary/image workflows.
  • Typed errors, visible warnings, and explicit --yes confirmation for consequential operations.

Installation

Requires Node.js 22.19.0 or later.

Run without installing:

pnpm dlx @firfi/huly-cli@latest --help
# or, with the npm package runner
npx -y @firfi/huly-cli@latest --help

Or install the huly command globally:

pnpm add --global @firfi/huly-cli

huly --help

Quick start

Log in once and run a command:

huly auth login
huly auth status --json
huly projects list

Login prompts for the Huly URL, workspace, email, and password. Only the returned workspace token is stored; the password is never written to disk.

Environment-only configuration remains available for CI and ephemeral execution:

export HULY_URL=https://your-huly-instance.example.com
export HULY_WORKSPACE=yourworkspace
export [email protected]
export HULY_PASSWORD=yourpassword

huly projects list

Use HULY_TOKEN instead of HULY_EMAIL and HULY_PASSWORD when your deployment provides an API token.

Configuration

The CLI supports named profiles plus the same Huly connection settings as the MCP server. Each environment variable overrides the corresponding active-profile value, so CI can remain fully environment-driven without modifying user configuration.

| Variable | Required | Description | | --- | --- | --- | | HULY_URL | Yes | Reachable self-hosted or replacement hosted Huly instance URL. | | HULY_WORKSPACE | Yes | Workspace identifier. | | HULY_EMAIL | Auth* | Account email. | | HULY_PASSWORD | Auth* | Account password. | | HULY_TOKEN | Auth* | API token; use instead of email/password. | | HULY_CONNECTION_TIMEOUT | No | Connection timeout in milliseconds. |

*Auth: provide either HULY_EMAIL and HULY_PASSWORD, or HULY_TOKEN.

Authentication and profiles

# Interactive login, sanitized inspection, and logout.
huly auth login --profile work
huly auth status --json
huly auth logout --profile work

# Named contexts with an optional default project.
huly profile create work --url https://huly.example.com --workspace main --default-project HULY
huly profile list --json
huly profile select work
huly profile update work --default-project CLI

Configuration precedence is:

  1. HULY_* environment variables, independently by field;
  2. the selected profile's URL, workspace, stored token, and optional default project; and
  3. no implicit fallback.

Profiles are stored in the operating system's user configuration directory: $XDG_CONFIG_HOME/huly (or ~/.config/huly) on Linux, ~/Library/Application Support/huly on macOS, and %APPDATA%\huly on Windows. Profile metadata and credentials are separate schema-validated JSON files. On systems that support POSIX permissions, directories use mode 0700 and files use 0600.

Usage

Help is progressive: huly --help lists top-level command domains, huly <domain> --help lists its immediate commands, and leaf help shows the complete schema-derived inputs. Generate shell completion with huly --completions sh, huly --completions bash, huly --completions fish, or huly --completions zsh.

huly projects list
huly issues get PROJ 123 --json
huly issues create --project PROJ --title "Fix login flow" --description-file ./body.md
huly comments delete --project PROJ --issue-identifier 123 --comment-id 0123456789abcdef --yes
huly attachments download 0123456789abcdef --output ./attachment.bin
huly search "customer import"

JSON and automation

Every command supports --json, --input-json '<object>', and --input-file path/to/input.json. JSON sources make nested objects, arrays, unions, and explicit null available without awkward shell syntax.

# Inspect structured output.
huly projects list --json | jq '.projects[] | {identifier, name}'

# Supply a complete operation input from a file.
huly issues create --input-file ./new-issue.json --json

# Override fields from JSON with explicit flags.
huly issues create \
  --input-json '{"project":"PROJ","title":"Draft title"}' \
  --title "Final title" \
  --json

Inputs are merged from lowest to highest precedence: JSON sources in command-line order, named positionals, explicit field flags, then file-backed field flags.

On failure, stdout remains empty. With --json, stderr contains one JSON document:

{
  "code": "NOT_FOUND",
  "message": "Issue HULY-404 was not found.",
  "retryable": false,
  "hint": "Optional next action",
  "details": { "tag": "IssueNotFoundError" }
}

hint and details are optional. The stable exit taxonomy is:

| Failure code | Exit status | Meaning | | --- | ---: | --- | | INTEGRATION_FAILED | 1 | Huly or a required integration failed; inspect retryable. | | INVALID_INPUT | 2 | CLI input or confirmation is invalid or missing. | | AUTHENTICATION_FAILED | 3 | Credentials are absent, invalid, or expired. | | AUTHORIZATION_DENIED | 4 | The authenticated account lacks permission. | | NOT_FOUND, AMBIGUOUS_RESULT, CONFLICT | 5 | A stable domain lookup or state conflict prevented the operation. | | INTERNAL_ERROR | 70 | An unexpected CLI defect, distinct from expected failures. |

Never blindly retry a consequential write. Retry only when retryable is true and the operation is known to be safe to repeat.

Files and binary output

Text inputs can be read from files with command-specific flags such as --description-file. Upload commands accept their documented path, URL, or base64 sources. Commands that return supported attachment or image bytes can write them with --output.

huly issues create --project PROJ --title "Release notes" --description-file ./release-notes.md
huly attachments download 0123456789abcdef --output ./attachment.bin

Consequential operations

Commands that delete data, change access, or perform other consequential actions require --yes. The CLI refuses them before creating a Huly client when confirmation is absent.

huly comments delete --project PROJ --issue-identifier 123 --comment-id 0123456789abcdef --yes

Capability overview

| Area | Examples | | --- | --- | | Planning and delivery | Projects, issues, milestones, components, time tracking, test management, processes. | | Documents and storage | Teamspaces, documents, snapshots, Drive, attachments, drawings, templates. | | Collaboration | Channels, direct messages, comments, activity, notifications, approvals, virtual office. | | Business workflows | Boards, cards, inventory, leads, recruiting, support, mail, calendar. | | People and workspace | Contacts, collaborators, workspace members, profiles, preferences, user statuses. | | Administration | Spaces, labels, tags, custom fields, workflows, permissions, sequences, SDK discovery. |

Full operation parity

The CLI exposes exactly one native command for every operation in the shared Huly operation registry. Inputs, outputs, warnings, and typed failures therefore stay aligned with Huly MCP, and parity drift fails the project quality gate.

“Full operation parity” describes Huly capabilities rather than MCP protocol mechanics. The CLI provides native command-line equivalents where presentation differs:

  • generated root and command help instead of MCP tool discovery;
  • flags, named positionals, and JSON/file inputs instead of JSON-RPC arguments;
  • terminal or JSON output instead of MCP content envelopes;
  • file output and safe metadata for supported attachment and image bytes; and
  • terminal warning sections or JSON warnings for agent-visible diagnostics.

MCP resources, prompts, proxy discovery, toolset filtering, and transport negotiation remain server-only protocol features; they are not missing Huly operations.

Output, warnings, and exit status

Successful commands write their result to stdout and exit with status 0. Without --json, catalog-owned rendering metadata selects useful table columns. Reusable identifiers are never ellipsized; narrow terminals omit lower-priority presentation fields. ANSI styling is emitted only to a compatible TTY and is disabled by NO_COLOR. With --json, the CLI writes the same lossless structured value regardless of terminal width or styling.

Operation warnings are part of a successful result. Human-readable output appends a visible Warnings: section to stdout; empty result sets remain explicit. JSON output includes warnings alongside result. Errors—including invalid input, missing --yes confirmation, authentication failures, connection failures, and failed operations—are written to stderr and produce a documented non-zero exit status.

Agent Skill

The published package includes an installable huly-cli Agent Skill at skills/huly-cli. After a global pnpm installation, compatible coding agents can copy it into their skill directory:

cp -R "$(pnpm root --global)/@firfi/huly-cli/skills/huly-cli" "${CODEX_HOME:-$HOME/.codex}/skills/huly-cli"

The compact skill teaches authentication, progressive command discovery, structured automation, safe confirmation, and representative workflows. It deliberately does not duplicate all 500+ commands. Repository contributors can run pnpm verify-cli-skill to reject drift from the command tree and failure contract, and pnpm verify-cli-skill-package to smoke-test the published tarball contents.

Telemetry

Aggregate CLI analytics are enabled by default. Disable them with:

export HULY_CLI_TELEMETRY=0

The CLI uses the same PostHog project as @firfi/huly-mcp, with surface=cli and package_name=@firfi/huly-cli tags so the two surfaces can be measured separately. Set HULY_CLI_TELEMETRY_DEBUG=1 to print telemetry diagnostics to stderr.

Updating

@latest asks the package runner for the newest published release:

pnpm dlx @firfi/huly-cli@latest --help

For a global installation, rerun the install command with @latest:

pnpm add --global @firfi/huly-cli@latest

Troubleshooting

  • Run huly <command> --help to inspect the exact accepted flags, positionals, alternatives, and defaults.
  • Use --json when another program consumes stdout; successful operation warnings remain part of that structured output, while errors are written to stderr.
  • If authentication fails, verify that HULY_URL is reachable and provide either token auth or the complete email/password pair.
  • Quote shell-sensitive environment values, especially passwords containing characters such as *, %, !, or #.
  • Increase HULY_CONNECTION_TIMEOUT when a self-hosted deployment needs more time to connect.

Project

Complete command reference

This release provides 522 native commands for 522 shared Huly operations.

All commands also accept --json, --input-json <object>, and --input-file <path>. Explicit field flags override JSON sources. Structured fields accept JSON. Named positionals are required and are not duplicated as flags. Required non-positional inputs may instead be supplied through either JSON source.

| Command | Purpose and behavior | Required positionals | Required inputs (flag or JSON) | Optional flags and alternatives | | --- | --- | --- | --- | --- | | huly activity filters list | List Activity Filters | — | — | --limit <value> — Maximum number of activity filters to return (default: 50) Type: integer. Pass null to clear the field. | | huly activity list | List Activity | — | — | --project <value> — Project identifier for issue activity, e.g. 'HULY'. Type: string. Choose one input alternative: { project, issueIdentifier } | { teamspace, document } | { channel } | { objectId, objectClass }.--issue-identifier <value> — Issue identifier for issue activity, e.g. 'HULY-123' or '123'. Type: string. Choose one input alternative: { project, issueIdentifier } | { teamspace, document } | { channel } | { objectId, objectClass }.--limit <value> — Maximum number of activity messages to return (default: 50) Type: integer.--teamspace <value> — Teamspace name or ID for document activity. Type: string. Choose one input alternative: { project, issueIdentifier } | { teamspace, document } | { channel } | { objectId, objectClass }.--document <value> — Document title or ID for document activity. Type: string. Choose one input alternative: { project, issueIdentifier } | { teamspace, document } | { channel } | { objectId, objectClass }.--channel <value> — Channel name or ID for channel activity. Type: string. Choose one input alternative: { project, issueIdentifier } | { teamspace, document } | { channel } | { objectId, objectClass }.--object-id <value> — Internal Huly object ID to get activity for. Type: string. Choose one input alternative: { project, issueIdentifier } | { teamspace, document } | { channel } | { objectId, objectClass }.--object-class <value> — Internal Huly object class for objectId, such as 'tracker:class:Issue'. Type: string. Choose one input alternative: { project, issueIdentifier } | { teamspace, document } | { channel } | { objectId, objectClass }. | | huly activity mentions list | List Mentions | — | — | --limit <value> — Maximum number of mentions to return (default: 50) Type: integer. Pass null to clear the field. | | huly activity messages get <messageId> | Get Activity Message | <messageId> — ID of the activity message to retrieve. Type: string. | — | — | | huly activity messages pin <messageId> <pinned> | Pin Activity Message | <messageId> — ID of the activity message to pin or unpin. Type: string.<pinned> — Whether the activity message should be pinned. Type: boolean. | — | — | | huly activity messages save <messageId> | Save Message | <messageId> — ID of the activity message to save/bookmark Type: string. | — | — | | huly activity messages unsave <messageId> | Unsave Message | <messageId> — ID of the saved activity message to remove from bookmarks Type: string. | — | — | | huly activity reactions add <messageId> <emoji> | Add Reaction | <messageId> — ID of the activity message to react to Type: string.<emoji> — Emoji to add (e.g., ':thumbsup:', ':heart:', or unicode emoji) Type: string. | — | — | | huly activity reactions list <messageId> | List Reactions | <messageId> — ID of the activity message to list reactions for Type: string. | — | --limit <value> — Maximum number of reactions to return (default: 50) Type: integer. Pass null to clear the field. | | huly activity reactions remove <messageId> <emoji> | Remove Reaction Requires --yes. | <messageId> — ID of the activity message Type: string.<emoji> — Emoji to remove Type: string. | — | — | | huly activity references list <objectId> <objectClass> | List Activity References | <objectId> — Internal Huly object ID to list activity references for. Type: string.<objectClass> — Internal Huly object class to list activity references for. Type: string. | — | --direction <value> — Reference direction. 'from' lists references created by this object, 'to' lists references pointing at this object, 'both' lists either direction (default: both). Allowed values: "from" | "to" | "both". Type: string. Pass null to clear the field.--limit <value> — Maximum number of activity references to return (default: 50) Type: integer. Pass null to clear the field. | | huly activity replies add <messageId> <body> | Add Activity Reply | <messageId> — ID of the activity message to reply to. Type: string.<body> — Reply body in markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Huly references; external URLs and other-workspace browse URLs stay normal links. Type: string. | — | --body-file <path> — read body as text | | huly activity replies delete <replyId> | Delete Activity Reply Requires --yes. | <replyId> — ID of the reply activity message to delete. Type: string. | — | — | | huly activity replies list <messageId> | List Activity Replies | <messageId> — ID of the activity message whose replies should be listed. Type: string. | — | --limit <value> — Maximum number of replies to return (default: 50) Type: integer. Pass null to clear the field. | | huly activity replies update <replyId> <body> | Update Activity Reply | <replyId> — ID of the reply activity message to update. Type: string.<body> — New reply body in markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Huly references; external URLs and other-workspace browse URLs stay normal links. Type: string. | — | --body-file <path> — read body as text | | huly activity saved list | List Saved Messages | — | — | --limit <value> — Maximum number of saved messages to return (default: 50) Type: integer. Pass null to clear the field. | | huly approvals add <attachedTo> <attachedToClass> | Add an approval request; pass --requested and --tx as JSON Requires --yes. | <attachedTo> — Raw Huly target document _id that the approval request attaches to. Type: string.<attachedToClass> — Raw Huly target document class id. Type: string. | --requested <value> — People who must decide the approval. Type: array. Pass arrays or objects as JSON.--tx <value> — Opaque Huly SDK transaction applied when the request completes. | --space <value> — Raw Huly target space id; omit to resolve it from the target. Type: string. Pass null to clear the field.--collection <value> — Parent collection name; defaults to requests. Type: string. Pass null to clear the field.--required-approves-count <value> — Number of approvals required; defaults to the unique requested person count. Type: integer. Pass null to clear the field.--rejected-tx <value> — Optional opaque Huly SDK transaction applied when the request is rejected. Pass null to clear the field. | | huly approvals approve <request> | Approve a request as the current Huly actor Requires --yes. | <request> — Approval Request document _id. Type: string. | — | --comment <value> — Optional decision comment to attach before approving. Type: string. Pass null to clear the field. | | huly approvals cancel <request> | Cancel Approval Request Requires --yes. | <request> — Approval Request document _id. Type: string. | — | — | | huly approvals comments add <request> <body> | Add Approval Request Comment | <request> — Approval Request document _id. Type: string.<body> — Comment body in markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Huly references; external URLs and other-workspace browse URLs stay normal links. Type: string. | — | --body-file <path> — read body as text | | huly approvals get <request> | Get Approval Request | <request> — Approval Request document _id. Type: string. | — | — | | huly approvals list | List Approval Requests | — | — | --status <value> — Optional approval request status filter. Allowed values: "Active" | "Completed" | "Rejected" | "Cancelled". Type: string. Pass null to clear the field.--attached-to <value> — Optional raw Huly target document _id. Type: string. Pass null to clear the field.--attached-to-class <value> — Optional raw Huly target document class id. Type: string. Pass null to clear the field.--limit <value> — Maximum number of approval requests to return (default: 50). Type: integer. Pass null to clear the field. | | huly approvals reject <request> <comment> | Reject a request as the current Huly actor Requires --yes. | <request> — Approval Request document _id. Type: string.<comment> — Required rejection decision comment. Type: string. | — | — | | huly associations create <sourceClass> <targetClass> <sourceRole> <targetRole> <cardinality> | Create a generic association definition | <sourceClass> — Source Huly class ID. core:class:* system classes are rejected. Type: string.<targetClass> — Target Huly class ID. core:class:* system classes are rejected. Type: string.<sourceRole> — Role name stored on the source side of the association. Type: string.<targetRole> — Role name stored on the target side of the association. Type: string.<cardinality> — Association cardinality: one-to-one, one-to-many, or many-to-many. Allowed values: "one-to-one" | "one-to-many" | "many-to-many". Type: string. | — | --automation-only / --no-automation-only — Whether Huly automation owns relation writes. Defaults to false. Type: boolean. Pass null to clear the field.--if-exists <value> — return_existing returns an identical association; fail reports it as an error. Allowed values: "return_existing" | "fail". Type: string. Pass null to clear the field. | | huly associations delete <association> | Delete an unused association definition Requires --yes. | <association> — Association ID or unambiguous name. A missing association is a successful no-op. Type: string. | — | — | | huly attachments add <objectId> <objectClass> <space> <filename> <contentType> | Add an attachment to a raw Huly object. filePath is read by the CLI process, fileUrl is fetched by the CLI process, data is canonical base64, and --data-base64-file encodes local bytes as base64. Provide exactly one source. | <objectId> — ID of the parent object (issue, document, etc.) Type: string.<objectClass> — Class of the parent object (e.g., 'tracker:class:Issue', 'document:class:Document') Type: string.<space> — Space ID where the parent object resides Type: string.<filename> — Name of the file Type: string.<contentType> — MIME type of the file (e.g., 'image/png', 'application/pdf') Type: string. | — | --file-path <value> — Filesystem path read by the CLI process.--file-url <value> — Remote URL fetched from the CLI process network.--data <value> — Canonical RFC 4648 base64 file content; use --data-base64-file for local bytes.--description <value> — Attachment description Type: string. Pass null to clear the field.--pinned / --no-pinned — Whether to pin the attachment (default: false) Type: boolean. Pass null to clear the field.--kind <value> — Attachment subclass to create: attachment, embedding, or photo (default: attachment). Allowed values: "attachment" | "embedding" | "photo". Type: string. Pass null to clear the field.--description-file <path> — read description as text--data-base64-file <path> — encode local bytes as canonical base64 | | huly attachments add-to-document | Add an attachment to a document. filePath is read by the CLI process, fileUrl is fetched by the CLI process, data is canonical base64, and --data-base64-file encodes local bytes as base64. Provide exactly one source. | — | --teamspace <value> — Teamspace name or ID Type: string.--document <value> — Document title or ID Type: string.--filename <value> — Name of the file Type: string.--content-type <value> — MIME type of the file (e.g., 'image/png', 'application/pdf') Type: string. | --file-path <value> — Filesystem path read by the CLI process.--file-url <value> — Remote URL fetched from the CLI process network.--data <value> — Canonical RFC 4648 base64 file content; use --data-base64-file for local bytes.--description <value> — Attachment description Type: string. Pass null to clear the field.--pinned / --no-pinned — Whether to pin the attachment (default: false) Type: boolean. Pass null to clear the field.--kind <value> — Attachment subclass to create: attachment, embedding, or photo (default: attachment). Allowed values: "attachment" | "embedding" | "photo". Type: string. Pass null to clear the field.--description-file <path> — read description as text--data-base64-file <path> — encode local bytes as canonical base64 | | huly attachments add-to-issue | Add an attachment to an issue. filePath is read by the CLI process, fileUrl is fetched by the CLI process, data is canonical base64, and --data-base64-file encodes local bytes as base64. Provide exactly one source. | — | --project <value> — Project identifier (e.g., 'HULY') Type: string.--identifier <value> — Issue identifier (e.g., 'HULY-123') Type: string.--filename <value> — Name of the file Type: string.--content-type <value> — MIME type of the file (e.g., 'image/png', 'application/pdf') Type: string. | --file-path <value> — Filesystem path read by the CLI process.--file-url <value> — Remote URL fetched from the CLI process network.--data <value> — Canonical RFC 4648 base64 file content; use --data-base64-file for local bytes.--description <value> — Attachment description Type: string. Pass null to clear the field.--pinned / --no-pinned — Whether to pin the attachment (default: false) Type: boolean. Pass null to clear the field.--kind <value> — Attachment subclass to create: attachment, embedding, or photo (default: attachment). Allowed values: "attachment" | "embedding" | "photo". Type: string. Pass null to clear the field.--description-file <path> — read description as text--data-base64-file <path> — encode local bytes as canonical base64 | | huly attachments delete <attachmentId> | Delete Attachment Requires --yes. | <attachmentId> — Attachment ID to delete Type: string. | — | — | | huly attachments download <attachmentId> | Resolve or download an attachment Supports --output <path>. | <attachmentId> — Attachment ID Type: string. | — | — | | huly attachments get <attachmentId> | Get attachment metadata | <attachmentId> — Attachment ID Type: string. | — | — | | huly attachments list | List attachments | — | --object-id <value> — ID of the parent object (issue, document, etc.) Type: string.--object-class <value> — Class of the parent object (e.g., 'tracker:class:Issue', 'document:class:Document') Type: string. | --limit <value> — Maximum number of attachments to return (default: 50) Type: integer. Pass null to clear the field. | | huly attachments pin <attachmentId> <pinned> | Pin Attachment | <attachmentId> — Attachment ID Type: string.<pinned> — Whether to pin (true) or unpin (false) Type: boolean. | — | — | | huly attachments read-image <attachmentId> | Read a supported image attachment; use --output to write its decoded bytes Supports --output <path>. | <attachmentId> — Attachment ID whose image content should be returned. Type: string. | — | — | | huly attachments save <attachmentId> | Save Attachment | <attachmentId> — Attachment ID to save/bookmark. Type: string. | — | — | | huly attachments saved list | List Saved Attachments | — | — | --limit <value> — Maximum number of saved attachments to return (default: 50) Type: integer. Pass null to clear the field. | | huly attachments unsave <attachmentId> | Unsave Attachment | <attachmentId> — Attachment ID to save/bookmark. Type: string. | — | — | | huly attachments update <attachmentId> | Update Attachment | <attachmentId> — Attachment ID Type: string. | — | --description <value> — New description (null to clear) Type: string. Choose one input alternative: { description } | { pinned }. Pass null to clear the field.--pinned / --no-pinned — Pin or unpin the attachment Type: boolean. Choose one input alternative: { description } | { pinned }. Pass null to clear the field.--description-file <path> — read description as text | | huly boards archive <board> | Archive Board | <board> — Board locator: board _id or exact board name. Names must match exactly; use list_boards to discover IDs when names are ambiguous. Type: string. | — | — | | huly boards cards archive <board> <card> | Archive Board Card | <board> — Board locator: board _id or exact board name. Names must match exactly; use list_boards to discover IDs when names are ambiguous. Type: string.<card> — Board card locator scoped to the board: card _id, CARD-123 identifier, bare number 123, or exact card title. Type: string. | — | — | | huly boards cards create <board> <title> | Create Board Card | <board> — Board locator: board _id or exact board name. Names must match exactly; use list_boards to discover IDs when names are ambiguous. Type: string.<title> — Board card title. Type: string. | — | --description <value> — Board card description in markdown. Stored as inline Huly Markup. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Huly references; external URLs and other-workspace browse URLs stay normal links. Type: string. Pass null to clear the field.--kind <value> — Board card task type _id or exact task type name. Omit to use the unambiguous board card task type for the board project type. Type: string. Pass null to clear the field.--status <value> — Workflow status _id or exact status name. Omit to use the first status configured on the board project type. Type: string. Pass null to clear the field.--assignee <value> — Assignee Employee _id, exact email address, or exact person display name. Type: string. Pattern: ^[^@]+@[^@]+$. Pass null to clear the field.--members <value> — Initial card members. Each entry accepts Employee _id, exact email, or exact person display name. Type: array. Pass arrays or objects as JSON. Pass null to clear the field.--location <value> — Optional card location text. Type: string. Pass null to clear the field.--cover <value> — Cover settings for a board card. Type: object. JSON shape alternatives: { color, size }. Pass arrays or objects as JSON. Pass null to clear the field.--start-date <value> — Start date timestamp in milliseconds. Type: integer. Pass null to clear the field.--due-date <value> — Due date timestamp in milliseconds. Type: integer. Pass null to clear the field.--description-file <path> — read description as text | | huly boards cards delete <board> <card> | Delete Board Card Requires --yes. | <board> — Board locator: board _id or exact board name. Names must match exactly; use list_boards to discover IDs when names are ambiguous. Type: string.<card> — Board card locator scoped to the board: card _id, CARD-123 identifier, bare number 123, or exact card title. Type: string. | — | — | | huly boards cards get <board> <card> | Get Board Card | <board> — Board locator: board _id or exact board name. Names must match exactly; use list_boards to discover IDs when names are ambiguous. Type: string.<card> — Board card locator scoped to the board: card _id, CARD-123 identifier, bare number 123, or exact card title. Type: string. | — | — | | huly boards cards labels add <board> <card> <label> | Add Board Card Label | <board> — Board name or ID. Type: string.<card> — Board card title or ID. Type: string.<label> — Board label ID or exact title. Type: string. | — | --color <value> — Color for the board label definition when label is a new title (default: 0). Existing labels are not recolored. Type: integer. Pass null to clear the field.--category <value> — Category for the board label definition when label is a new title. Existing labels are not recategorized. Type: string. Pass null to clear the field. | | huly boards cards labels list <board> <card> | List Board Card Labels | <board> — Board name or ID. Type: string.<card> — Board card title or ID. Type: string. | — | — | | huly boards cards labels remove <board> <card> <label> | Remove Board Card Label Requires --yes. | <board> — Board name or ID. Type: string.<card> — Board card title or ID. Type: string.<label> — Board label ID or exact title. Type: string. | — | — | | huly boards cards list <board> | List Board Cards | <board> — Board locator: board _id or exact board name. Names must match exactly; use list_boards to discover IDs when names are ambiguous. Type: string. | — | --include-archived / --no-include-archived — Include archived board cards in results (default: false, showing only active cards). Type: boolean. Pass null to clear the field.--title-search <value> — Search board cards by title substring (case-insensitive SQL LIKE). Type: string. Pass null to clear the field.--limit <value> — Maximum number of board cards to return (default: 50). Type: integer. Pass null to clear the field. | | huly boards cards unarchive <board> <card> | Unarchive Board Card Requires --yes. | <board> — Board locator: board _id or exact board name. Names must match exactly; use list_boards to discover IDs when names are ambiguous. Type: string.<card> — Board card locator scoped to the board: card _id, CARD-123 identifier, bare number 123, or exact card title. Type: string. | — | — | | huly boards cards update <board> <card> | Update Board Card | <board> — Board locator: board _id or exact board name. Names must match exactly; use list_boards to discover IDs when names are ambiguous. Type: string.<card> — Board card locator scoped to the board: card _id, CARD-123 identifier, bare number 123, or exact card title. Type: string. | — | --title <value> — New board card title. Type: string. Choose one input alternative: { title } | { description } | { status } | { assignee } | { members } | { addMembers } | { removeMembers } | { location } | { cover } | { startDate } | { dueDate }. Pass null to clear the field.--description <value> — New board card description in markdown; null clears it. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Huly references; external URLs and other-workspace browse URLs stay normal links. Type: string. Choose one input alternative: { title } | { description } | { status } | { assignee } | { members } | { addMembers } | { removeMembers } | { location } | { cover } | { startDate } | { dueDate }. Pass null to clear the field.--status <value> — New workflow status _id or exact status name in the board project type. Type: string. Choose one input alternative: { title } | { description } | { status } | { assignee } | { members } | { addMembers } | { removeMembers } | { location } | { cover } | { startDate } | { dueDate }. Pass null to clear the field.--assignee <value> — New assignee Employee _id, exact email, or exact person display name; null unassigns. Type: string. Pattern: ^[^@]+@[^@]+$. Choose one input alternative: { title } | { description } | { status } | { assignee } | { members } | { addMembers } | { removeMembers } | { location } | { cover } | { startDate } | { dueDate }. Pass null to clear the field.--members <value> — Replace card members with this exact list. Cannot be combined with addMembers or removeMembers. Type: array. Choose one input alternative: { title } | { description } | { status } | { assignee } | { members } | { addMembers } | { removeMembers } | { location } | { cover } | { startDate } | { dueDate }. Pass arrays or objects as JSON. Pass null to clear the field.--add-members <value> — Members to add without replacing existing members. Type: array. Choose one input alternative: { title } | { description } | { status } | { assignee } | { members } | { addMembers } | { removeMembers } | { location } | { cover } | { startDate } | { dueDate }. Pass arrays or objects as JSON. Pass null to clear the field.--remove-members <value> — Members to remove without replacing existing members. Type: array. Choose one input alternative: { title } | { description } | { status } | { assignee } | { members } | { addMembers } | { removeMembers } | { location } | { cover } | { startDate } | { dueDate }. Pass arrays or objects as JSON. Pass null to clear the field.--location <value> — New card location; null clears it. Type: string. Choose one input alternative: { title } | { description } | { status } | { assignee } | { members } | { addMembers } | { removeMembers } | { location } | { cover } | { startDate } | { dueDate }. Pass null to clear the field.--cover <value> — New card cover; null clears the cover. Type: object. JSON shape alternatives: { color, size }. Choose one input alternative: { title } | { description } | { status } | { assignee } | { members } | { addMembers } | { removeMembers } | { location } | { cover } | { startDate } | { dueDate }. Pass arrays or objects as JSON. Pass null to clear the field.--start-date <value> — New start date timestamp in milliseconds; null clears it. Type: integer. Choose one input alternative: { title } | { description } | { status } | { assignee } | { members } | { addMembers } | { removeMembers } | { location } | { cover } | { startDate } | { dueDate }. Pass null to clear the field.--due-date <value> — New due date timestamp in milliseconds; null clears it. Type: integer. Choose one input alternative: { title } | { description } | { status } | { assignee } | { members } | { addMembers } | { removeMembers } | { location } | { cover } | { startDate } | { dueDate }. Pass null to clear the field.--description-file <path> — read description as text | | huly boards common-preference get | Get Board Common Preference | — | — | — | | huly boards create <name> | Create Board | <name> — Board name. Creation is idempotent by exact active board name. Type: string. | — | --description <value> — Plain text board description. Type: string. Pass null to clear the field.--private / --no-private — Whether the board is private (default: false). Type: boolean. Pass null to clear the field.--project-type <value> — Optional board project type _id or exact name. Omit to use the unambiguous project type whose descriptor is board.descriptors.BoardType. Type: string. Pass null to clear the field.--description-file <path> — read description as text | | huly boards get <board> | Get Board | <board> — Board locator: board _id or exact board name. Names must match exactly; use list_boards to discover IDs when names are ambiguous. Type: string. | — | — | | huly boards labels create <title> | Create Board Label | <title> — Board label title. Creation is idempotent by exact board label title when there is one match. Type: string. | — | --color <value> — Huly platform color palette index from 0 through 23 (default: 0). Type: integer. Pass null to clear the field.--description <value> — Board label description. Type: string. Pass null to clear the field.--category <value> — Board label category _id or exact label. If omitted, uses the board card tag default category or board.category.Other. Type: string. Pass null to clear the field.--description-file <path> — read description as text | | huly boards labels delete <label> | Delete Board Label Requires --yes. | <label> — Board label ID or exact title. Type: string. | — | — | | huly boards labels list | List Board Labels | — | — | --category <value> — Board label category ID or exact label. Type: string. Pass null to clear the field.--title-search <value> — Case-insensitive label title search. Type: string. Pass null to clear the field.--limit <value> — Maximum number of labels to return (default: 50). Type: integer. Pass null to clear the field. | | huly boards labels update <label> | Update Board Label | <label> — Board label TagElement _id or exact title. Type: string. | — | --title <value> — New board label title. Type: string. Choose one input alternative: { title } | { color } | { description } | { category }. Pass null to clear the field.--color <value> — New Huly platform color palette index from 0 through 23. Type: integer. Choose one input alternative: { title } | { color } | { description } | { category }. Pass null to clear the field.--description <value> — New board label description; null clears it. Type: string. Choose one input alternative: { title } | { color } | { description } | { category }. Pass null to clear the field.--category <value> — New board label category _id or exact label. Type: string. Choose one input alternative: { title } | { color } | { description } | { category }. Pass null to clear the field.--description-file <path> — read description as text | | huly boards list | List Boards | — | — | --include-archived / --no-include-archived — Include archived boards in results (default: false, showing only active boards). Type: boolean. Pass null to clear the field.--limit <value> — Maximum number of boards to return (default: 50). Type: integer. Pass null to clear the field. | | huly boards menu-pages list | List Board Menu Pages | — | — | --page <value> — Board menu page ID, exact name, or label. Type: string. Pass null to clear the field.--limit <value> — Maximum number of rows to return (default: 50). Type: integer. Pass null to clear the field. | | huly boards saved-views get <savedView> | Get Board Saved View | <savedView> — FilteredView _id or exact saved view name scoped to attachedTo = board.app.Board. Type: string. | — | — | | huly boards saved-views list | List Board Saved Views | — | — | --visibility <value> — Saved-view visibility filter. Allowed values: "own" | "shared" | "all". Type: string. Pass null to clear the field.--name-search <value> — Case-insensitive saved-view name search. Type: string. Pass null to clear the field.--limit <value> — Maximum number of rows to return (default: 50). Type: integer. Pass null to clear the field. | | huly boards unarchive <board> | Unarchive Board Requires --yes. | <board> — Board locator: board _id or exact board name. Names must match exactly; use list_boards to discover IDs when names are ambiguous. Type: string. | — | — | | huly boards update <board> | Update Board | <board> — Board locator: board _id or exact board name. Names must match exactly; use list_boards to discover IDs when names are ambiguous. Type: string. | — | --name <value> — New exact board name. Type: string. Choose one input alternative: { name } | { description } | { private }. Pass null to clear the field.--description <value> — New plain text board description; null clears it. Type: string. Choose one input alternative: { name } | { description } | { private }. Pass null to clear the field.--private / --no-private — Whether the board is private. Type: boolean. Choose one input alternative: { name } | { description } | { private }. Pass null to clear the field.--description-file <path> — read description as text | | huly boards viewlets list | List Board Viewlets | — | — | --viewlet <value> — Board viewlet ID, exact title, variant, or descriptor ID. Type: string. Pass null to clear the field.--limit <value> — Maximum number of rows to return (default: 50). Type: integer. Pass null to clear the field. | | huly calendar calendars list | List Calendars | — | — | — | | huly calendar events create <title> <date> | Create a calendar event | <title> — Event title Type: string.<date> — Start date/time (timestamp) Type: integer. | — | --description <value> — Event description in markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Huly references; external URLs and other-workspace browse URLs stay normal links. Type: string. Pass null to clear the field.--due-date <value> — End date/time (timestamp). If omitted, Huly MCP uses date + 1 hour. Type: integer. Pass null to clear the field.--all-day / --no-all-day — All-day event (default: false) Type: boolean. Pass null to clear the field.--location <value> — Event location Type: string. Pass null to clear the field.--participants <value> — Participants to invite. Each entry may be a plain email string or an object with email, exact name, or personId. Type: array. Pass arrays or objects as JSON. Pass null to clear the field.--external-participants <value> — External participant email addresses that are not resolvable workspace contacts. Type: array. Pass arrays or objects as JSON. Pass null to clear the field.--reminders <value> — Reminder timestamps in milliseconds. Type: array. Pass arrays or objects as JSON. Pass null to clear the field.--access <value> — Event access level. Allowed values: "freeBusyReader" | "reader" | "writer" | "owner". Type: string. Pass null to clear the field.--time-zone <value> — IANA time zone for the event, for example 'America/New_York'. Type: string. Pass null to clear the field.--block-time / --no-block-time — Whether this event blocks the user's time on the calendar. Type: boolean. Pass null to clear the field.--visibility <value> — Event visibility (public, freeBusy, private) Allowed values: "public" | "freeBusy" | "private". Type: string. Pass null to clear the field.--calendar-id <value> — Target writable calendar ID. If omitted, uses the authenticated user's primary personal calendar. Use list_calendars to discover valid calendar IDs. Type: string. Pass null to clear the field.--calendar-name <value> — Target writable calendar name. Use when you know the calendar's displayed name but not its ID. Do not provide with calendarId. Type: string. Pass null to clear the field.--description-file <path> — read description as text | | huly calendar events delete <eventId> | Delete Event Requires --yes. | <eventId> — Event ID Type: string. | — | — | | huly calendar events get <eventId> | Get Event | <eventId> — Event ID Type: string. | — | — | | huly calendar events instances list <recurringEventId> | List Event Instances | <recurringEventId> — Recurring event ID Type: string. | — | --from <value> — Start date filter (timestamp) Type: integer. Pass null to clear the field.--to <value> — End date filter (timestamp) Type: integer. Pass null to clear the field.--limit <value> — Maximum number of instances to return (default: 50) Type: integer. Pass null to clear the field.--include-participants / --no-include-participants — Include full participant info (requires extra lookups, default: false) Type: boolean. Pass null to clear the field. | | huly calendar events list | List Events | — | — | --from <value> — Start date filter (timestamp) Type: integer. Pass null to clear the field.--to <value> — End date filter (timestamp) Type: integer. Pass null to clear the field.--limit <value> — Maximum number of events to return (default: 50) Type: integer. Pass null to clear the field. | | huly calendar events recurring create <title> <startDate> | Create a recurring event; pass --rules as JSON | <title> — Event title Type: string.<startDate> — First occurrence start date/time (timestamp) Type: integer. | --rules <value> — Recurring rules (RFC5545 RRULE format) Type: array. Pass arrays or objects as JSON. | --description <value> — Event description in markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Huly references; external URLs and other-workspace browse URLs stay normal links. Type: string. Pass null to clear the field.--due-date <value> — First occurrence end date/time (timestamp). If omitted, Huly MCP uses startDate + 1 hour. Type: integer. Pass null to clear the field.--all-day / --no-all-day — All-day event (default: false) Type: boolean. Pass null to clear the field.--location <value> — Event location Type: string. Pass null to clear the field.--participants <value> — Participants to invite. Each entry may be a plain email string or an object with email, exact name, or personId. Type: array. Pass arrays or objects as JSON. Pass null to clear the field.--external-participants <value> — External participant email addresses that are not resolvable workspace contacts. Type: array. Pass arrays or objects as JSON. Pass null to clear the field.--reminders <value> — Reminder timestamps in milliseconds. Type: array. Pass arrays or objects as JSON. Pass null to clear the field.--time-zone <value> — Time zone (e.g., 'America/New_York') Type: string. Pass null to clear the field.--access <value> — Event access level. Allowed values: "freeBusyReader" | "reader" | "writer" | "owner". Type: string. Pass null to clear the field.--block-time / --no-block-time — Whether this event blocks the user's time on the calendar. Type: boolean. Pass null to clear the field.--visibility <value> — Event visibility (public, freeBusy, private) Allowed values: "public" | "freeBusy" | "private". Type: string. Pass null to clear the field.--calendar-id <value> — Target writable calendar ID. If omitted, uses the authenticated user's primary personal calendar. Use list_calendars to discover valid calendar IDs. Type: string. Pass null to clear the field.--calendar-name <value> — Target writable calendar name. Use when you know the calendar's displayed name but not its ID. Do not provide with calendarId. Type: string. Pass null to clear the field.--description-file <path> — read description as text | | huly calendar events recurring list | List Recurring Events | — | — | --limit <value> — Maximum number of recurring events to return (default: 50) Type: integer. Pass null to clear the field. | | huly calendar events update <eventId> | Update a calendar event | <eventId> — Event ID Type: string. | — | --title <value> — New event title Type: string. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass null to clear the field.--description <value> — New event description in markdown. Markdown links to current-workspace Huly browse URLs with _class, _id, and label become native Huly references; external URLs and other-workspace browse URLs stay normal links. Pass null to clear; empty string is also accepted. Type: string. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass null to clear the field.--date <value> — New start date/time (timestamp) Type: integer. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass null to clear the field.--due-date <value> — New end date/time (timestamp) Type: integer. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass null to clear the field.--all-day / --no-all-day — All-day event Type: boolean. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass null to clear the field.--location <value> — New event location. Pass null to clear; empty string is also accepted. Type: string. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass null to clear the field.--visibility <value> — New event visibility Allowed values: "public" | "freeBusy" | "private". Type: string. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass null to clear the field.--participants <value> — Replace all workspace participants with these resolved participants. Type: array. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass arrays or objects as JSON. Pass null to clear the field.--add-participants <value> — Resolve and add these workspace participants, preserving existing participants. Type: array. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass arrays or objects as JSON. Pass null to clear the field.--remove-participants <value> — Resolve and remove these workspace participants, preserving other participants. Type: array. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass arrays or objects as JSON. Pass null to clear the field.--external-participants <value> — Replace all external participant email addresses. Type: array. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass arrays or objects as JSON. Pass null to clear the field.--add-external-participants <value> — Add external participant email addresses, preserving existing external participants. Type: array. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass arrays or objects as JSON. Pass null to clear the field.--remove-external-participants <value> — Remove external participant email addresses, preserving other external participants. Type: array. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass arrays or objects as JSON. Pass null to clear the field.--reminders <value> — Replace event reminders with these reminder timestamps. Type: array. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass arrays or objects as JSON. Pass null to clear the field.--access <value> — New event access level. Allowed values: "freeBusyReader" | "reader" | "writer" | "owner". Type: string. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass null to clear the field.--time-zone <value> — New IANA time zone for the event. Type: string. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass null to clear the field.--block-time / --no-block-time — Whether this event blocks time. Type: boolean. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass null to clear the field.--calendar-id <value> — Move the event to this writable calendar ID. Do not provide with calendarName. Type: string. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass null to clear the field.--calendar-name <value> — Move the event to this writable calendar name. Do not provide with calendarId. Type: string. Choose one input alternative: { title } | { description } | { date } | { dueDate } | { allDay } | { location } | { visibility } | { participants } | { addParticipants } | { removeParticipants } | { externalParticipants } | { addExternalParticipants } | { removeExternalParticipants } | { reminders } | { access } | { timeZone } | { blockTime } | { calendarId } | { calendarName }. Pass null to clear the field.--description-file <path> — read description as text | | huly calendar schedules create <title> | Create a calendar schedule; pass --availability as JSON | <title> — Schedule title. Type: string. | --meeting-duration <value> — Default meeting duration in minutes. Type: integer.--meeting-interval <value> — Minimum interval between meetings in minutes. Type: integer.--availability <value> — Weekly schedule availability. Type: object. Pass arrays or objects as JSON.--time-zone <value> — IANA time zone for this schedule. Type: string. | --owner <value> — Schedule owner locator: employee/person ID, exact display name, or email. Omit to use the authenticated user. Type: string. Pass null to clear the field.--description <value> — Schedule description. Type: string. Pass null to clear the field.--calendar-id <value> — Optional target calendar ID for booked events. Do not provide with calendarName. Type: string. Pass null to clear the field.--calendar-name <value> — Optional target calendar name for booked events. Do not provide with calendarId. Type: string. Pass null to clear the field. | | huly calendar schedules delete <scheduleId> | Delete Schedule Requires --yes. | <scheduleId> — Schedule ID. Type: string. | — | — | | huly calendar schedules get <scheduleId> | Get Schedule | <scheduleId> — Schedule ID. Type: string. | — | — | | huly calendar schedules list | List Schedules | — | — | --owner <value> — Optional schedule owner locator: employee/person ID, exact display name, or email. Omit to list schedules for all readable owners. Type: string. Pass null to clear the field.--limit <value> — Maximum number of schedules to return (default: 50). Type: integer. Pass null to clear the field. | | huly calendar schedules update <scheduleId> | Update a calendar schedule; pass --availability as JSON | <scheduleId> — Schedule ID. Type: string. | — | --owner <value> — New schedule owner locator: employee/person ID, exact display name, or email. Type: string. Choose one input alternative: { owner } | { title } | { description } | { meetingDuration } | { meetingInterval } | { availability } | { timeZone }