diff --git a/docker/toolkits.txt b/docker/toolkits.txt index b75b9c25..1cec819b 100644 --- a/docker/toolkits.txt +++ b/docker/toolkits.txt @@ -1,4 +1,5 @@ arcade-box-api +arcade-calendly-api arcade-slack-api arcade-stripe-api arcade-squareup-api diff --git a/toolkits/calendly_api/.pre-commit-config.yaml b/toolkits/calendly_api/.pre-commit-config.yaml new file mode 100644 index 00000000..7ef05991 --- /dev/null +++ b/toolkits/calendly_api/.pre-commit-config.yaml @@ -0,0 +1,18 @@ +files: ^.*/calendly_api/.* +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: "v4.4.0" + hooks: + - id: check-case-conflict + - id: check-merge-conflict + - id: check-toml + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace + + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.6.7 + hooks: + - id: ruff + args: [--fix] + - id: ruff-format diff --git a/toolkits/calendly_api/.ruff.toml b/toolkits/calendly_api/.ruff.toml new file mode 100644 index 00000000..9519fe6c --- /dev/null +++ b/toolkits/calendly_api/.ruff.toml @@ -0,0 +1,44 @@ +target-version = "py310" +line-length = 100 +fix = true + +[lint] +select = [ + # flake8-2020 + "YTT", + # flake8-bandit + "S", + # flake8-bugbear + "B", + # flake8-builtins + "A", + # flake8-comprehensions + "C4", + # flake8-debugger + "T10", + # flake8-simplify + "SIM", + # isort + "I", + # mccabe + "C90", + # pycodestyle + "E", "W", + # pyflakes + "F", + # pygrep-hooks + "PGH", + # pyupgrade + "UP", + # ruff + "RUF", + # tryceratops + "TRY", +] + +[lint.per-file-ignores] +"**/tests/*" = ["S101"] + +[format] +preview = true +skip-magic-trailing-comma = false diff --git a/toolkits/calendly_api/LICENSE b/toolkits/calendly_api/LICENSE new file mode 100644 index 00000000..dfbb8b76 --- /dev/null +++ b/toolkits/calendly_api/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025, Arcade AI + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/toolkits/calendly_api/Makefile b/toolkits/calendly_api/Makefile new file mode 100644 index 00000000..86da492a --- /dev/null +++ b/toolkits/calendly_api/Makefile @@ -0,0 +1,54 @@ +.PHONY: help + +help: + @echo "🛠️ github Commands:\n" + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +.PHONY: install +install: ## Install the uv environment and install all packages with dependencies + @echo "🚀 Creating virtual environment and installing all packages using uv" + @uv sync --active --all-extras --no-sources + @if [ -f .pre-commit-config.yaml ]; then uv run --no-sources pre-commit install; fi + @echo "✅ All packages and dependencies installed via uv" + +.PHONY: install-local +install-local: ## Install the uv environment and install all packages with dependencies with local Arcade sources + @echo "🚀 Creating virtual environment and installing all packages using uv" + @uv sync --active --all-extras + @if [ -f .pre-commit-config.yaml ]; then uv run pre-commit install; fi + @echo "✅ All packages and dependencies installed via uv" +.PHONY: build +build: clean-build ## Build wheel file using poetry + @echo "🚀 Creating wheel file" + uv build + +.PHONY: clean-build +clean-build: ## clean build artifacts + @echo "🗑️ Cleaning dist directory" + rm -rf dist + +.PHONY: test +test: ## Test the code with pytest + @echo "🚀 Testing code: Running pytest" + @uv run --no-sources pytest -W ignore -v --cov --cov-config=pyproject.toml --cov-report=xml + +.PHONY: coverage +coverage: ## Generate coverage report + @echo "coverage report" + @uv run --no-sources coverage report + @echo "Generating coverage report" + @uv run --no-sources coverage html + +.PHONY: bump-version +bump-version: ## Bump the version in the pyproject.toml file by a patch version + @echo "🚀 Bumping version in pyproject.toml" + uv version --no-sources --bump patch + +.PHONY: check +check: ## Run code quality tools. + @if [ -f .pre-commit-config.yaml ]; then\ + echo "🚀 Linting code: Running pre-commit";\ + uv run --no-sources pre-commit run -a;\ + fi + @echo "🚀 Static type checking: Running mypy" + @uv run --no-sources mypy --config-file=pyproject.toml diff --git a/toolkits/calendly_api/arcade_calendly_api/__init__.py b/toolkits/calendly_api/arcade_calendly_api/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/toolkits/calendly_api/arcade_calendly_api/tools/__init__.py b/toolkits/calendly_api/arcade_calendly_api/tools/__init__.py new file mode 100644 index 00000000..6f8b72c4 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/tools/__init__.py @@ -0,0 +1,1491 @@ +"""Arcade Starter Tools for calendly + +DO NOT EDIT THIS MODULE DIRECTLY. + +THIS MODULE WAS AUTO-GENERATED BY TRANSPILING THE API WRAPPER TOOL JSON DEFINITIONS +IN THE ../wrapper_tools DIRECTORY INTO PYTHON CODE. ANY CHANGES TO THIS MODULE WILL +BE OVERWRITTEN BY THE TRANSPILER. +""" + +import asyncio +from typing import Annotated, Any + +import httpx +from arcade_tdk import ToolContext, tool +from arcade_tdk.auth import OAuth2 + +# Retry configuration +INITIAL_RETRY_DELAY = 0.5 # seconds + +HTTP_CLIENT = httpx.AsyncClient( + timeout=httpx.Timeout(60.0, connect=10.0), + limits=httpx.Limits(max_keepalive_connections=20, max_connections=100), + transport=httpx.AsyncHTTPTransport(retries=3), + http2=True, + follow_redirects=True, +) + + +def remove_none_values(data: dict[str, Any]) -> dict[str, Any]: + return {k: v for k, v in data.items() if v is not None} + + +async def make_request( + url: str, + method: str, + params: dict[str, Any] | None = None, + headers: dict[str, Any] | None = None, + data: dict[str, Any] | None = None, + max_retries: int = 3, +) -> httpx.Response: + """Make an HTTP request with retry logic for 5xx server errors.""" + for attempt in range(max_retries): + try: + response = await HTTP_CLIENT.request( + url=url, + method=method, + params=params, + headers=headers, + data=data, + ) + response.raise_for_status() + except httpx.HTTPStatusError as e: + # Only retry on 5xx server errors + if e.response.status_code >= 500 and attempt < max_retries - 1: + # Exponential backoff: 0.5s, 1s, 2s + await asyncio.sleep(INITIAL_RETRY_DELAY * (2**attempt)) + continue + # Re-raise for 4xx errors or if max retries reached + raise + except httpx.RequestError: + # Don't retry request errors (network issues are handled by transport) + raise + else: + return response + + # This should never be reached, but satisfies type checker + raise httpx.RequestError("Max retries exceeded") # noqa: TRY003 + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_event_invitees( + context: ToolContext, + event_unique_identifier: Annotated[ + str, + "The unique identifier of the event to retrieve invitees for. Use this to specify which event's attendees you want to list.", # noqa: E501 + ], + invitee_status: Annotated[ + str | None, "Filter invitees by their status: 'active' or 'canceled'." + ] = None, + sort_order_by_creation: Annotated[ + str | None, + 'Specify the sort order of invitees by their created_at date. Use "asc" for ascending or "desc" for descending order.', # noqa: E501 + ] = None, + filter_by_email: Annotated[ + str | None, + "Filter results by the invitee's email address. Only invitees with this email will be returned.", # noqa: E501 + ] = None, + pagination_token: Annotated[ + str | None, "Token for fetching the next or previous portion of the event invitee list." + ] = None, + number_of_invitees_to_return: Annotated[ + float | None, + "The number of invitee records to return in the response. Determines how many invitees are included per request.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-event-invitees'."]: + """Fetch invitees for a specific scheduled event. + + Use this tool to retrieve a list of people invited to a specific event by providing the event's unique identifier. It helps in managing and viewing event attendees.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/scheduled_events/{uuid}/invitees".format( # noqa: UP032 + uuid=event_unique_identifier + ), + method="GET", + params=remove_none_values({ + "status": invitee_status, + "sort": sort_order_by_creation, + "email": filter_by_email, + "page_token": pagination_token, + "count": number_of_invitees_to_return, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def list_scheduled_events( + context: ToolContext, + user_uri: Annotated[ + str | None, + "The URI identifying the user to retrieve scheduled events for. This can be used alone for personal events or with `organization` for specific user events within an organization. Requires appropriate privileges.", # noqa: E501 + ] = None, + organization_uri: Annotated[ + str | None, + "Returns events scheduled with the specified organization's URI. Requires admin or owner privilege.", # noqa: E501 + ] = None, + invitee_email: Annotated[ + str | None, + "Email address to filter events scheduled with the invitee. Use to retrieve events specific to an invitee.", # noqa: E501 + ] = None, + event_status: Annotated[ + str | None, "Specifies whether to retrieve events that are 'active' or 'canceled'." + ] = None, + order_results_by: Annotated[ + str | None, + "Specify the field and direction to order results (e.g., 'start_time:asc'). Supported field: start_time; Directions: asc, desc.", # noqa: E501 + ] = None, + start_time_after: Annotated[ + str | None, + 'Include events with start times after this specified UTC time (e.g., "2020-01-02T03:04:05.678123Z").', # noqa: E501 + ] = None, + max_start_time: Annotated[ + str | None, + 'Include events with start times prior to this UTC time. Format: "2020-01-02T03:04:05.678123Z".', # noqa: E501 + ] = None, + pagination_token: Annotated[ + str | None, + "Token used for paginating results, allowing access to the next or previous portion of the event collection.", # noqa: E501 + ] = None, + number_of_events_to_return: Annotated[ + float | None, "Specifies the number of events to be returned in the query result." + ] = None, + group_uri: Annotated[ + str | None, + "URI of the group to retrieve scheduled events for. Requires appropriate admin privileges.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-scheduled-events'."]: + """Retrieve a list of scheduled events from Calendly. + + This tool retrieves a list of scheduled events for a specified user, group, or organization in Calendly. Use it to view events you have access to, based on your role and privileges.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/scheduled_events", + method="GET", + params=remove_none_values({ + "user": user_uri, + "organization": organization_uri, + "invitee_email": invitee_email, + "status": event_status, + "sort": order_results_by, + "min_start_time": start_time_after, + "max_start_time": max_start_time, + "page_token": pagination_token, + "count": number_of_events_to_return, + "group": group_uri, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def list_user_or_org_event_types( + context: ToolContext, + organization_uri: Annotated[ + str | None, + "The URI of the organization to view its event types. Specify this to retrieve organization event types.", # noqa: E501 + ] = None, + user_uri: Annotated[ + str | None, + "Specify the user's URI to view their personal, team, and organization event types.", + ] = None, + user_availability_schedule_filter: Annotated[ + str | None, + "Filter Event Types for a user based on the primary availability schedule. Requires the 'user' parameter to be used.", # noqa: E501 + ] = None, + order_event_types_by: Annotated[ + str | None, + "Order results by specified fields and directions. Use a comma-separated format: {field}:{direction}. Supported fields are: name, position, created_at, updated_at. Directions can be 'asc' or 'desc'.", # noqa: E501 + ] = None, + pagination_token: Annotated[ + str | None, + "Token used for paginating through results. Pass it to get the next or previous portion of the collection.", # noqa: E501 + ] = None, + number_of_rows_to_return: Annotated[ + float | None, + "Specify the number of event type entries to retrieve. Determines how many rows are returned in the response.", # noqa: E501 + ] = None, + filter_active_event_types: Annotated[ + bool | None, + "Return only active event types if true, only inactive if false, or all event types if omitted.", # noqa: E501 + ] = None, + only_admin_managed_event_types: Annotated[ + bool | None, + "Return only admin managed event types if true, exclude if false, or include all if omitted.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-event-types'."]: + """Retrieve Event Types for a user or organization. + + Use this tool to get all Event Types for a specific user or organization. Specify either the 'organization' or 'user' as a query parameter when calling this tool.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/event_types", + method="GET", + params=remove_none_values({ + "active": filter_active_event_types, + "organization": organization_uri, + "user": user_uri, + "user_availability_schedule": user_availability_schedule_filter, + "sort": order_event_types_by, + "admin_managed": only_admin_managed_event_types, + "page_token": pagination_token, + "count": number_of_rows_to_return, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_user_info( + context: ToolContext, + user_identifier: Annotated[ + str, 'Provide a unique user identifier or use "me" to refer to the current caller.' + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-user'."]: + """Retrieve information about a specified Calendly user. + + Use this tool to obtain detailed information about a specific Calendly user by providing their unique identifier. Ideal for accessing user settings, profile details, and preferences.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/users/{uuid}".format(uuid=user_identifier), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_user_account_info( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-current-user'."]: + """Retrieve basic information about your Calendly account.""" + response = await make_request( + url="https://api.calendly.com/users/me", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_event_invitee_info( + context: ToolContext, + event_unique_identifier: Annotated[ + str, + "A unique string identifier for the event to identify which event's invitee information to retrieve.", # noqa: E501 + ], + invitee_unique_identifier: Annotated[ + str, + "The unique identifier for the invitee of a specific event. Required to retrieve invitee details.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-scheduled-event-invitees'."]: + """Retrieve information about a specific event invitee. + + Use this tool to get detailed information about a specified invitee for an event, including their attendance status and personal details.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/scheduled_events/{event_uuid}/invitees/{invitee_uuid}".format( # noqa: UP032 + event_uuid=event_unique_identifier, invitee_uuid=invitee_unique_identifier + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_event_details( + context: ToolContext, + event_unique_identifier: Annotated[ + str, "A unique identifier for the event to retrieve its details." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-scheduled-event'."]: + """Retrieve details about a specific scheduled event. + + Use this tool to obtain information about a particular event that has been scheduled, by specifying its unique identifier.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/scheduled_events/{uuid}".format(uuid=event_unique_identifier), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_event_type_info( + context: ToolContext, + event_type_uuid: Annotated[ + str, + "A unique identifier for the Event Type. Provide this to get information about the specific Event Type.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-event-type'."]: + """Retrieve information about a specified Event Type. + + Use this tool to fetch details of a specific Event Type by providing its unique identifier.""" + response = await make_request( + url="https://api.calendly.com/event_types/{uuid}".format(uuid=event_type_uuid), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_organization_invitations( + context: ToolContext, + organization_unique_identifier: Annotated[ + str, + "The unique identifier for the organization whose member invitations you want to retrieve.", + ], + number_of_rows_to_return: Annotated[ + float | None, "Specifies the number of invitation rows to return." + ] = None, + pagination_token: Annotated[ + str | None, "Token to retrieve the next or previous set of organization invitation results." + ] = None, + sort_order: Annotated[ + str | None, + "Specify field name and sort direction (asc or desc). Use a comma-separated list for multiple fields.", # noqa: E501 + ] = None, + filter_by_email: Annotated[ + str | None, + "Filter results by a specific email address. Provide the email to narrow down the invitations.", # noqa: E501 + ] = None, + filter_by_status: Annotated[ + str | None, 'Filter results by invitation status: "pending", "accepted", or "declined".' + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-organization-invitations'."]: + """Retrieve invitations sent to organization members. + + Use this tool to obtain a list of invitations that have been sent to the members of an organization. It retrieves all organization member invitations.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/organizations/{uuid}/invitations".format( # noqa: UP032 + uuid=organization_unique_identifier + ), + method="GET", + params=remove_none_values({ + "count": number_of_rows_to_return, + "page_token": pagination_token, + "sort": sort_order, + "email": filter_by_email, + "status": filter_by_status, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def revoke_org_invitation( + context: ToolContext, + organization_unique_identifier: Annotated[ + str, "The unique identifier for the organization whose invitation is to be revoked." + ], + invitation_uuid: Annotated[ + str, "The unique identifier for the organization invitation to be revoked." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'revoke-organization-invitation'."]: + """Revoke an organization's invitation link. + + Use this tool to revoke an existing invitation to an organization. Once revoked, the invitation link becomes invalid and cannot be used.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/organizations/{org_uuid}/invitations/{uuid}".format( # noqa: UP032 + org_uuid=organization_unique_identifier, uuid=invitation_uuid + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def fetch_organization_invitation( + context: ToolContext, + organization_unique_identifier: Annotated[ + str, + "The unique identifier for the organization. Used to fetch the relevant invitation details.", # noqa: E501 + ], + invitation_unique_identifier: Annotated[ + str, + "The unique identifier for the organization invitation. Required to fetch specific invitation details.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-organization-invitation'."]: + """Fetches an organization's member invitation details. + + Use this tool to obtain details of an invitation sent to members of a specific organization by providing the organization and invitation identifiers.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/organizations/{org_uuid}/invitations/{uuid}".format( # noqa: UP032 + org_uuid=organization_unique_identifier, uuid=invitation_unique_identifier + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_organization_membership( + context: ToolContext, + organization_membership_unique_identifier: Annotated[ + str, "The unique identifier for the organization membership to retrieve details for." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-organization-membership'."]: + """Retrieve details about a user's organization membership. + + Use this tool to get detailed information on a user's organization membership by providing their unique identifier.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/organization_memberships/{uuid}".format( # noqa: UP032 + uuid=organization_membership_unique_identifier + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def remove_organization_member( + context: ToolContext, + organization_membership_id: Annotated[ + str, + "The unique identifier for the organization membership to be removed. Required for identifying the specific user.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-organization-membership'."]: + """Removes a user from an organization as an admin. + + Use this tool to remove a user from an organization if you have admin rights. Note that an organization owner cannot be removed.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/organization_memberships/{uuid}".format( # noqa: UP032 + uuid=organization_membership_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def list_organization_memberships_calendly( + context: ToolContext, + pagination_token: Annotated[ + str | None, "Token to fetch the next or previous set of results in the collection." + ] = None, + number_of_rows_to_return: Annotated[ + float | None, "Specify the number of organization membership records to return." + ] = None, + filter_by_email: Annotated[ + str | None, "Filter results to include members with the specified email address." + ] = None, + filter_by_organization: Annotated[ + str | None, + "Filter results to include only members from a specified organization by its identifier.", + ] = None, + filter_by_user: Annotated[ + str | None, "Filter results by a specific user's email address or ID." + ] = None, + filter_by_role: Annotated[str | None, "Filter results by role: owner, admin, or user."] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-organization-memberships'."]: + """Retrieve organization memberships and associated details. + + Use this tool to list organization memberships for users within an organization. You can either look up a user's membership or find all users in the organization. This tool also retrieves the organization's URI.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/organization_memberships", + method="GET", + params=remove_none_values({ + "page_token": pagination_token, + "count": number_of_rows_to_return, + "email": filter_by_email, + "organization": filter_by_organization, + "user": filter_by_user, + "role": filter_by_role, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_webhook_subscriptions( + context: ToolContext, + organization_identifier: Annotated[ + str, "Specify the organization that owns the subscriptions. This field is mandatory." + ], + filter_by_scope: Annotated[ + str, + "Filter the subscriptions by organization, user, or group. Expected values are 'organization', 'user', or 'group'.", # noqa: E501 + ], + user_filter: Annotated[ + str | None, + "Filter results by user. Required if scope is set to `user`. Provide the user ID.", + ] = None, + filter_by_group: Annotated[ + str | None, + "Filter results by group if the `scope` is set to `group`. Provide the group identifier.", + ] = None, + pagination_token: Annotated[ + str | None, + "The token used to navigate to the next or previous part of the collection results.", + ] = None, + number_of_rows_to_return: Annotated[ + float | None, "Specify the number of webhook subscription rows to return." + ] = None, + sort_order: Annotated[ + str | None, + "Specify the sort order for the results using a comma-separated list of field:direction pairs (e.g., 'created_at:asc'). Currently, only 'created_at' is supported, with directions 'asc' for ascending and 'desc' for descending.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-webhook-subscriptions'."]: + """Retrieve webhook subscriptions for an organization or user. + + This tool fetches a list of webhook subscriptions associated with a specified organization or user. Use it to manage or review existing webhook connections.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/webhook_subscriptions", + method="GET", + params=remove_none_values({ + "organization": organization_identifier, + "user": user_filter, + "group": filter_by_group, + "page_token": pagination_token, + "count": number_of_rows_to_return, + "sort": sort_order, + "scope": filter_by_scope, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_webhook_subscription( + context: ToolContext, + webhook_uuid: Annotated[ + str, "The unique identifier for the webhook subscription to retrieve details for." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-webhook-subscription'."]: + """Retrieve details of a specified webhook subscription. + + Use this tool to get information about a specific webhook subscription by providing the webhook UUID.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/webhook_subscriptions/{webhook_uuid}".format( # noqa: UP032 + webhook_uuid=webhook_uuid + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def delete_webhook_subscription( + context: ToolContext, + webhook_uuid: Annotated[ + str, "The unique identifier for the webhook subscription to be deleted." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-webhook-subscription'."]: + """Delete a webhook subscription in Calendly. + + Use this tool to delete an existing webhook subscription in Calendly when it's no longer needed.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/webhook_subscriptions/{webhook_uuid}".format( # noqa: UP032 + webhook_uuid=webhook_uuid + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def retrieve_invitee_no_show_info( + context: ToolContext, + invitee_no_show_uuid: Annotated[ + str, + "The unique identifier for the specific invitee no show entry. This is required to retrieve the details.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-invitee-no-show'."]: + """Retrieve details of an invitee marked as a no show. + + This tool retrieves specific information about an invitee who did not show up for an event as scheduled. Use it to get details when you have the unique identifier for the invitee no show entry.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/invitee_no_shows/{uuid}".format(uuid=invitee_no_show_uuid), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def undo_no_show_mark_calendly( + context: ToolContext, + invitee_identifier: Annotated[ + str, "The unique identifier of the invitee whose no-show status needs to be undone." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-invitee-no-show'."]: + """Undo marking an invitee as a no-show in Calendly. + + Use this tool to reverse the status of an invitee marked as a no-show in Calendly. This is useful when a no-show marking needs to be undone.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/invitee_no_shows/{uuid}".format(uuid=invitee_identifier), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_group_information( + context: ToolContext, + group_unique_identifier: Annotated[ + str, "The unique identifier for the group you want to retrieve information about." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-group'."]: + """Returns information about a specified Group. + + Use this tool to get details about a specific group by providing its UUID.""" + response = await make_request( + url="https://api.calendly.com/groups/{uuid}".format(uuid=group_unique_identifier), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def list_group_relationships( + context: ToolContext, + number_of_rows_to_return: Annotated[ + float | None, "Specify the number of rows to return in the response." + ] = None, + pagination_token: Annotated[ + str | None, + "Token for paginating through results, used for accessing the next or previous portion of the collection.", # noqa: E501 + ] = None, + filter_by_organization: Annotated[ + str | None, + "Indicates the results should be filtered by organization. Provide the organization's URI.", + ] = None, + filter_by_owner: Annotated[ + str | None, + "Filter results by owner using a specific URI format: Organization Membership or Organization Invitation.", # noqa: E501 + ] = None, + filter_by_group: Annotated[ + str | None, + "Indicate the group to filter the results by. Provide the group identifier as the value.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-group-relationships'."]: + """Retrieve group relationships for a Calendly owner. + + This tool returns a list of group relationships for a given owner in Calendly, which includes one membership record and multiple admin records, if available.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/group_relationships", + method="GET", + params=remove_none_values({ + "count": number_of_rows_to_return, + "page_token": pagination_token, + "organization": filter_by_organization, + "owner": filter_by_owner, + "group": filter_by_group, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_group_relationship_by_uuid( + context: ToolContext, + group_relationship_uuid: Annotated[ + str, + "The UUID of the group relationship to retrieve details for. This is a unique identifier for the group within Calendly.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-group-relationship'."]: + """Retrieve a group relationship using its UUID. + + Use this tool to get details about a specific group relationship by providing its UUID. It is useful for obtaining information about group connections within Calendly.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/group_relationships/{uuid}".format( # noqa: UP032 + uuid=group_relationship_uuid + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_organization_details( + context: ToolContext, + organization_unique_identifier: Annotated[ + str, "The unique identifier for the organization to retrieve details from Calendly." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-organization'."]: + """Retrieve details of a specified organization by UUID. + + Use this tool to get detailed information about a specific organization on Calendly by providing its UUID.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/organizations/{uuid}".format( # noqa: UP032 + uuid=organization_unique_identifier + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def list_routing_forms( + context: ToolContext, + organization_uri: Annotated[ + str, + "The URI of the organization to view its routing forms. Use the organization's URI to identify it.", # noqa: E501 + ], + rows_to_return: Annotated[ + float | None, "Specify the number of Routing Form entries to retrieve." + ] = None, + paging_token: Annotated[ + str | None, "Token for retrieving the next or previous set of Routing Forms in pagination." + ] = None, + sort_order: Annotated[ + str | None, + "Specify sorting order for results using a comma-separated list of {field}:{direction}. Supported fields: created_at. Directions: asc, desc.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-routing-forms'."]: + """Retrieve a list of Routing Forms for your organization. + + Use this tool to get a comprehensive list of Routing Forms within a specified organization. Ideal for gathering form data for review or analysis.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/routing_forms", + method="GET", + params=remove_none_values({ + "organization": organization_uri, + "count": rows_to_return, + "page_token": paging_token, + "sort": sort_order, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_specific_routing_form( + context: ToolContext, + routing_form_uuid: Annotated[ + str, "The unique identifier (UUID) for the specific routing form to be retrieved." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-routing-form'."]: + """Retrieve details of a specified routing form using UUID. + + Use this tool to obtain information about a particular routing form in Calendly by providing the unique identifier (UUID).""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/routing_forms/{uuid}".format(uuid=routing_form_uuid), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def list_routing_form_submissions( + context: ToolContext, + routing_form_uri: Annotated[str, "The URI of the routing form to view its submissions."], + number_of_rows_to_return: Annotated[ + float | None, "Specify the number of form submission rows to return." + ] = None, + pagination_token: Annotated[ + str | None, + "Token used for retrieving the next or previous set of routing form submissions based on pagination.", # noqa: E501 + ] = None, + order_results_by_field: Annotated[ + str | None, + "Comma-separated list to order results by {field}:{direction}, e.g., 'created_at:asc'.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-routing-form-submissions'."]: + """Retrieve submissions for a specific routing form. + + Get a list of submissions made to a specific routing form in Calendly.""" + response = await make_request( + url="https://api.calendly.com/routing_form_submissions", + method="GET", + params=remove_none_values({ + "form": routing_form_uri, + "count": number_of_rows_to_return, + "page_token": pagination_token, + "sort": order_results_by_field, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_routing_form_submission( + context: ToolContext, + submission_uuid: Annotated[ + str, "The unique identifier for the routing form submission to retrieve." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-routing-form-submission'."]: + """Retrieve details of a specified routing form submission. + + Use this tool to get detailed information about a specific routing form submission by providing its unique identifier (UUID).""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/routing_form_submissions/{uuid}".format(uuid=submission_uuid), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def list_event_type_available_times( + context: ToolContext, + event_type_uri: Annotated[ + str, "The URI associated with the specific event type to query available times for." + ], + availability_start_time: Annotated[ + str, "The start time for the availability request. Ensure the date is not in the past." + ], + end_time: Annotated[ + str, + "End time of the requested availability range. This date must be later than the start_time and within 7 days.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-event-type-available-times'."]: + """Get available times for an event type within a date range. + + Use this tool to retrieve available times for a specific event type within a 7-day date range. Ideal for scheduling and planning purposes.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/event_type_available_times", + method="GET", + params=remove_none_values({ + "event_type": event_type_uri, + "start_time": availability_start_time, + "end_time": end_time, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_activity_log_entries( + context: ToolContext, + organization_uri: Annotated[ + str, "The URI of the organization for which to return activity log entries." + ], + filter_by_search_term: Annotated[ + str | None, + 'Specify terms to filter log entries. Use operators like |, +, " ", -, (), *. Eg: "email@website.com" or (term1 + term2).', # noqa: E501 + ] = None, + actor_uris: Annotated[ + list[str] | None, + "An array of URIs for users whose entries should be returned. Include multiple URIs for multiple users.", # noqa: E501 + ] = None, + sort_order: Annotated[ + list[str] | None, + "Order results by the specified field and direction using {field}:{direction} format. Example: 'date:asc'.", # noqa: E501 + ] = None, + include_entries_after_time: Annotated[ + str | None, + 'Include entries that occurred after this specified UTC time (e.g., "2020-01-02T03:04:05.678Z").', # noqa: E501 + ] = None, + end_time_utc: Annotated[ + str | None, + "Specify entries occurring before this UTC time (e.g., '2020-01-02T03:04:05.678Z').", + ] = None, + next_page_token: Annotated[ + str | None, + "Provide the token to retrieve the subsequent portion of the activity log collection.", + ] = None, + number_of_rows_to_return: Annotated[ + int | None, "Specifies the number of activity log entries to return." + ] = None, + entry_categories: Annotated[ + list[str] | None, "Specify categories of activity log entries to retrieve." + ] = None, + filter_by_actions: Annotated[ + list[str] | None, + "A list of actions to filter activity log entries. Provide actions associated with the entries.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-activity-log-entries'."]: + """Retrieve a list of activity log entries. + + Use this tool to get a list of activity log entries from Calendly. This endpoint requires an Enterprise subscription.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/activity_log_entries", + method="GET", + params=remove_none_values({ + "organization": organization_uri, + "search_term": filter_by_search_term, + "actor": actor_uris, + "sort": sort_order, + "min_occurred_at": include_entries_after_time, + "max_occurred_at": end_time_utc, + "page_token": next_page_token, + "count": number_of_rows_to_return, + "namespace": entry_categories, + "action": filter_by_actions, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def list_user_busy_times( + context: ToolContext, + user_uri: Annotated[str, "The URI associated with the user to retrieve busy times for."], + availability_start_time: Annotated[ + str, + "Start time of the requested availability range. The date cannot be in the past and must be formatted correctly.", # noqa: E501 + ], + availability_end_time: Annotated[ + str, "End time for the requested availability range; must be after the start time." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-user-busy-times'."]: + """Retrieve user's scheduled events in a date range. + + Get an ascending list of user's internal and external events within a specified date range, up to 7 days. External events are returned for configured calendars only.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/user_busy_times", + method="GET", + params=remove_none_values({ + "user": user_uri, + "start_time": availability_start_time, + "end_time": availability_end_time, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_user_availability_schedules( + context: ToolContext, + user_uri_reference: Annotated[ + str, "A string representing the URI of the user to retrieve availability for." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'list-user-availability-schedules'." +]: + """Retrieve the user's availability schedules. + + This tool returns the availability schedules for a specified user. Call this tool when you need to know a user's available times for scheduling purposes.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/user_availability_schedules", + method="GET", + params=remove_none_values({"user": user_uri_reference}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_user_availability_schedule( + context: ToolContext, + user_availability_uuid: Annotated[ + str, "The UUID of the user's availability schedule to fetch." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-user-availability-schedule'."]: + """Fetches the availability schedule for a specific user. + + Use this tool to obtain the availability schedule associated with a specific user's UUID in Calendly. It helps in identifying the available time slots for the user.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/user_availability_schedules/{uuid}".format( # noqa: UP032 + uuid=user_availability_uuid + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def fetch_event_type_hosts( + context: ToolContext, + event_type_uri: Annotated[ + str, "The URI associated with the event type to identify and fetch associated hosts." + ], + number_of_rows_to_return: Annotated[ + float | None, "Specify the number of event type hosts to return." + ] = None, + pagination_token: Annotated[ + str | None, "Token to retrieve the next or previous portion of event type hosts." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-event-type-memberships'."]: + """Fetch a list of event type hosts from Calendly. + + Use this tool to retrieve a list of hosts for event types from Calendly's API. This is helpful for understanding which hosts are associated with specific event types.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/event_type_memberships", + method="GET", + params=remove_none_values({ + "event_type": event_type_uri, + "count": number_of_rows_to_return, + "page_token": pagination_token, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_sample_webhook_data( + context: ToolContext, + event_type: Annotated[ + str, + "Specifies the type of event for which you want to retrieve sample webhook data. Options include 'invitee.created', 'invitee.canceled', 'invitee_no_show.created', 'invitee_no_show.deleted', and 'routing_form_submission.created'.", # noqa: E501 + ], + organization_identifier: Annotated[ + str, + "The unique identifier of the organization in Calendly for which you want to retrieve sample webhook data.", # noqa: E501 + ], + scope: Annotated[ + str, "Defines the scope of the webhook data to fetch: 'user', 'organization', or 'group'." + ], + user_identifier: Annotated[ + str | None, + "The unique identifier for the Calendly user whose webhook data is being tested. Provide a valid user ID or username.", # noqa: E501 + ] = None, + event_group_identifier: Annotated[ + str | None, + "Specify the group identifier to test webhook data for a specific group. This helps categorize or organize the webhook data samples.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-sample-webhook-data'."]: + """Retrieve sample webhook data for testing purposes. + + Use this tool to access sample data for testing your Calendly webhook subscription.""" + response = await make_request( + url="https://api.calendly.com/sample_webhook_data", + method="GET", + params=remove_none_values({ + "event": event_type, + "organization": organization_identifier, + "user": user_identifier, + "scope": scope, + "group": event_group_identifier, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_outgoing_communications( + context: ToolContext, + organization_uri: Annotated[ + str, "URI to identify the organization for which to return outgoing communications." + ], + number_of_records: Annotated[ + int | None, "Specify the number of outgoing communication records to return." + ] = None, + filter_communications_after: Annotated[ + str | None, + 'Include outgoing communications created after this UTC time. Format: "YYYY-MM-DDTHH:MM:SS.sssZ".', # noqa: E501 + ] = None, + end_date_time_utc: Annotated[ + str | None, + 'Include outgoing communications created before this UTC time. Format: "2020-01-02T03:04:05.678Z".', # noqa: E501 + ] = None, + pagination_token: Annotated[ + str | None, "Token used to retrieve the next set of outgoing communication records." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-outgoing-communications'."]: + """Retrieve outgoing SMS and email communications. + + Use this tool to access a list of outgoing SMS and email communications. Requires an Enterprise subscription.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/outgoing_communications", + method="GET", + params=remove_none_values({ + "organization": organization_uri, + "count": number_of_records, + "min_created_at": filter_communications_after, + "max_created_at": end_date_time_utc, + "page_token": pagination_token, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_group_list( + context: ToolContext, + organization_uri: Annotated[str, "URI of the organization to get associated groups."], + pagination_token: Annotated[ + str | None, "Token used for pagination to retrieve the next or previous set of groups." + ] = None, + number_of_rows_to_return: Annotated[ + float | None, "Specify the number of group entries to return from Calendly." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-groups'."]: + """Retrieve a list of groups from Calendly. + + This tool calls the Calendly API to return a list of groups. It should be used when you need information about groups within Calendly.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/groups", + method="GET", + params=remove_none_values({ + "organization": organization_uri, + "page_token": pagination_token, + "count": number_of_rows_to_return, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_user_location_info( + context: ToolContext, + user_uri: Annotated[str, "The URI of the user whose location information is being requested."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-user-locations'."]: + """Fetches location information for a specific user. + + Use this tool to obtain the configured location details for a specified user. It should be called when you need to know where a user's events or activities are set to take place.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/locations", + method="GET", + params=remove_none_values({"user": user_uri}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-calendly")) +async def get_event_type_availability( + context: ToolContext, + event_type_uri: Annotated[ + str, "The URI associated with the specific event type whose availability is being queried." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-event-type-availability'."]: + """Fetches availability for a Calendly event type. + + Use this tool to retrieve the availability schedule for a specific event type on Calendly. It helps in planning and checking open time slots based on the event type's settings.""" # noqa: E501 + response = await make_request( + url="https://api.calendly.com/event_type_availability_schedules", + method="GET", + params=remove_none_values({"event_type": event_type_uri}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + data=remove_none_values({}), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/DeleteWebhookSubscription.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/DeleteWebhookSubscription.json new file mode 100644 index 00000000..0daadf45 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/DeleteWebhookSubscription.json @@ -0,0 +1,101 @@ +{ + "name": "DeleteWebhookSubscription", + "fully_qualified_name": "CalendlyApi.DeleteWebhookSubscription@0.1.0", + "description": "Delete a webhook subscription in Calendly.\n\nUse this tool to delete an existing webhook subscription in Calendly when it's no longer needed.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "webhook_uuid", + "required": true, + "description": "The unique identifier for the webhook subscription to be deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "webhook_uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-webhook-subscription'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/webhook_subscriptions/{webhook_uuid}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "webhook_uuid", + "tool_parameter_name": "webhook_uuid", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/FetchEventTypeHosts.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/FetchEventTypeHosts.json new file mode 100644 index 00000000..f4b8ce47 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/FetchEventTypeHosts.json @@ -0,0 +1,165 @@ +{ + "name": "FetchEventTypeHosts", + "fully_qualified_name": "CalendlyApi.FetchEventTypeHosts@0.1.0", + "description": "Fetch a list of event type hosts from Calendly.\n\nUse this tool to retrieve a list of hosts for event types from Calendly's API. This is helpful for understanding which hosts are associated with specific event types.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_type_uri", + "required": true, + "description": "The URI associated with the event type to identify and fetch associated hosts.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The uri associated with the event type" + }, + "inferrable": true, + "http_endpoint_parameter_name": "event_type" + }, + { + "name": "number_of_rows_to_return", + "required": false, + "description": "Specify the number of event type hosts to return.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + }, + { + "name": "pagination_token", + "required": false, + "description": "Token to retrieve the next or previous portion of event type hosts.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-event-type-memberships'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/event_type_memberships", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "event_type", + "tool_parameter_name": "event_type_uri", + "description": "The uri associated with the event type", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The uri associated with the event type" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "count", + "tool_parameter_name": "number_of_rows_to_return", + "description": "The number of rows to return", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page_token", + "tool_parameter_name": "pagination_token", + "description": "The token to pass to get the next or previous portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/FetchOrganizationInvitation.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/FetchOrganizationInvitation.json new file mode 100644 index 00000000..67abfe3c --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/FetchOrganizationInvitation.json @@ -0,0 +1,133 @@ +{ + "name": "FetchOrganizationInvitation", + "fully_qualified_name": "CalendlyApi.FetchOrganizationInvitation@0.1.0", + "description": "Fetches an organization's member invitation details.\n\nUse this tool to obtain details of an invitation sent to members of a specific organization by providing the organization and invitation identifiers.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organization_unique_identifier", + "required": true, + "description": "The unique identifier for the organization. Used to fetch the relevant invitation details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization\u2019s unique identifier" + }, + "inferrable": true, + "http_endpoint_parameter_name": "org_uuid" + }, + { + "name": "invitation_unique_identifier", + "required": true, + "description": "The unique identifier for the organization invitation. Required to fetch specific invitation details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization invitation's unique identifier" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-organization-invitation'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/organizations/{org_uuid}/invitations/{uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "org_uuid", + "tool_parameter_name": "organization_unique_identifier", + "description": "The organization\u2019s unique identifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization\u2019s unique identifier" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "uuid", + "tool_parameter_name": "invitation_unique_identifier", + "description": "The organization invitation's unique identifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization invitation's unique identifier" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetActivityLogEntries.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetActivityLogEntries.json new file mode 100644 index 00000000..4eada3f4 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetActivityLogEntries.json @@ -0,0 +1,389 @@ +{ + "name": "GetActivityLogEntries", + "fully_qualified_name": "CalendlyApi.GetActivityLogEntries@0.1.0", + "description": "Retrieve a list of activity log entries.\n\nUse this tool to get a list of activity log entries from Calendly. This endpoint requires an Enterprise subscription.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organization_uri", + "required": true, + "description": "The URI of the organization for which to return activity log entries.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return activity log entries from the organization associated with this URI" + }, + "inferrable": true, + "http_endpoint_parameter_name": "organization" + }, + { + "name": "filter_by_search_term", + "required": false, + "description": "Specify terms to filter log entries. Use operators like |, +, \" \", -, (), *. Eg: \"email@website.com\" or (term1 + term2).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filters entries based on the search term.\n\nSupported operators:\n - `|` - to allow filtering by one term or another. Example: `this | that`\n - `+` - to allow filtering by one term and another. Example: `this + that`\n - `\"` - to allow filtering by an exact search term. Example: `\"email@website.com\"`\n - `-` - to omit specific terms from results. Example: `Added -User`\n - `()` - to allow specifying precedence during a search. Example: `(this + that) OR (person + place)`\n - `*` - to allow prefix searching. Example `*@other-website.com`\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "search_term" + }, + { + "name": "actor_uris", + "required": false, + "description": "An array of URIs for users whose entries should be returned. Include multiple URIs for multiple users.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return entries from the user(s) associated with the provided URIs" + }, + "inferrable": true, + "http_endpoint_parameter_name": "actor" + }, + { + "name": "sort_order", + "required": false, + "description": "Order results by the specified field and direction using {field}:{direction} format. Example: 'date:asc'.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the specified field and direction. List of {field}:{direction} values." + }, + "inferrable": true, + "http_endpoint_parameter_name": "sort" + }, + { + "name": "include_entries_after_time", + "required": false, + "description": "Include entries that occurred after this specified UTC time (e.g., \"2020-01-02T03:04:05.678Z\").", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include entries that occurred after this time (sample time format: \"2020-01-02T03:04:05.678Z\"). This time should use the UTC timezone." + }, + "inferrable": true, + "http_endpoint_parameter_name": "min_occurred_at" + }, + { + "name": "end_time_utc", + "required": false, + "description": "Specify entries occurring before this UTC time (e.g., '2020-01-02T03:04:05.678Z').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include entries that occurred prior to this time (sample time format: \"2020-01-02T03:04:05.678Z\"). This time should use the UTC timezone." + }, + "inferrable": true, + "http_endpoint_parameter_name": "max_occurred_at" + }, + { + "name": "next_page_token", + "required": false, + "description": "Provide the token to retrieve the subsequent portion of the activity log collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + }, + { + "name": "number_of_rows_to_return", + "required": false, + "description": "Specifies the number of activity log entries to return.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + }, + { + "name": "entry_categories", + "required": false, + "description": "Specify categories of activity log entries to retrieve.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The categories of the entries" + }, + "inferrable": true, + "http_endpoint_parameter_name": "namespace" + }, + { + "name": "filter_by_actions", + "required": false, + "description": "A list of actions to filter activity log entries. Provide actions associated with the entries.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The action(s) associated with the entries" + }, + "inferrable": true, + "http_endpoint_parameter_name": "action" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-activity-log-entries'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/activity_log_entries", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "organization", + "tool_parameter_name": "organization_uri", + "description": "Return activity log entries from the organization associated with this URI", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return activity log entries from the organization associated with this URI" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "search_term", + "tool_parameter_name": "filter_by_search_term", + "description": "Filters entries based on the search term.\n\nSupported operators:\n - `|` - to allow filtering by one term or another. Example: `this | that`\n - `+` - to allow filtering by one term and another. Example: `this + that`\n - `\"` - to allow filtering by an exact search term. Example: `\"email@website.com\"`\n - `-` - to omit specific terms from results. Example: `Added -User`\n - `()` - to allow specifying precedence during a search. Example: `(this + that) OR (person + place)`\n - `*` - to allow prefix searching. Example `*@other-website.com`\n", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Filters entries based on the search term.\n\nSupported operators:\n - `|` - to allow filtering by one term or another. Example: `this | that`\n - `+` - to allow filtering by one term and another. Example: `this + that`\n - `\"` - to allow filtering by an exact search term. Example: `\"email@website.com\"`\n - `-` - to omit specific terms from results. Example: `Added -User`\n - `()` - to allow specifying precedence during a search. Example: `(this + that) OR (person + place)`\n - `*` - to allow prefix searching. Example `*@other-website.com`\n" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "actor", + "tool_parameter_name": "actor_uris", + "description": "Return entries from the user(s) associated with the provided URIs", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return entries from the user(s) associated with the provided URIs" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "sort", + "tool_parameter_name": "sort_order", + "description": "Order results by the specified field and direction. List of {field}:{direction} values.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the specified field and direction. List of {field}:{direction} values." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "min_occurred_at", + "tool_parameter_name": "include_entries_after_time", + "description": "Include entries that occurred after this time (sample time format: \"2020-01-02T03:04:05.678Z\"). This time should use the UTC timezone.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include entries that occurred after this time (sample time format: \"2020-01-02T03:04:05.678Z\"). This time should use the UTC timezone." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "max_occurred_at", + "tool_parameter_name": "end_time_utc", + "description": "Include entries that occurred prior to this time (sample time format: \"2020-01-02T03:04:05.678Z\"). This time should use the UTC timezone.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include entries that occurred prior to this time (sample time format: \"2020-01-02T03:04:05.678Z\"). This time should use the UTC timezone." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page_token", + "tool_parameter_name": "next_page_token", + "description": "The token to pass to get the next portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "count", + "tool_parameter_name": "number_of_rows_to_return", + "description": "The number of rows to return", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "namespace", + "tool_parameter_name": "entry_categories", + "description": "The categories of the entries", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The categories of the entries" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "action", + "tool_parameter_name": "filter_by_actions", + "description": "The action(s) associated with the entries", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The action(s) associated with the entries" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventDetails.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventDetails.json new file mode 100644 index 00000000..4679eebc --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventDetails.json @@ -0,0 +1,101 @@ +{ + "name": "GetEventDetails", + "fully_qualified_name": "CalendlyApi.GetEventDetails@0.1.0", + "description": "Retrieve details about a specific scheduled event.\n\nUse this tool to obtain information about a particular event that has been scheduled, by specifying its unique identifier.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_unique_identifier", + "required": true, + "description": "A unique identifier for the event to retrieve its details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event's unique identifier" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-scheduled-event'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/scheduled_events/{uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "event_unique_identifier", + "description": "The event's unique identifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event's unique identifier" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventInviteeInfo.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventInviteeInfo.json new file mode 100644 index 00000000..579f03cc --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventInviteeInfo.json @@ -0,0 +1,133 @@ +{ + "name": "GetEventInviteeInfo", + "fully_qualified_name": "CalendlyApi.GetEventInviteeInfo@0.1.0", + "description": "Retrieve information about a specific event invitee.\n\nUse this tool to get detailed information about a specified invitee for an event, including their attendance status and personal details.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_unique_identifier", + "required": true, + "description": "A unique string identifier for the event to identify which event's invitee information to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event's unique identifier" + }, + "inferrable": true, + "http_endpoint_parameter_name": "event_uuid" + }, + { + "name": "invitee_unique_identifier", + "required": true, + "description": "The unique identifier for the invitee of a specific event. Required to retrieve invitee details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The invitee's unique identifier" + }, + "inferrable": true, + "http_endpoint_parameter_name": "invitee_uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-scheduled-event-invitees'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/scheduled_events/{event_uuid}/invitees/{invitee_uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "event_uuid", + "tool_parameter_name": "event_unique_identifier", + "description": "The event's unique identifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event's unique identifier" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "invitee_uuid", + "tool_parameter_name": "invitee_unique_identifier", + "description": "The invitee's unique identifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The invitee's unique identifier" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventInvitees.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventInvitees.json new file mode 100644 index 00000000..92f98196 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventInvitees.json @@ -0,0 +1,267 @@ +{ + "name": "GetEventInvitees", + "fully_qualified_name": "CalendlyApi.GetEventInvitees@0.1.0", + "description": "Fetch invitees for a specific scheduled event.\n\nUse this tool to retrieve a list of people invited to a specific event by providing the event's unique identifier. It helps in managing and viewing event attendees.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_unique_identifier", + "required": true, + "description": "The unique identifier of the event to retrieve invitees for. Use this to specify which event's attendees you want to list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + }, + { + "name": "invitee_status", + "required": false, + "description": "Filter invitees by their status: 'active' or 'canceled'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "active", + "canceled" + ], + "properties": null, + "inner_properties": null, + "description": "Indicates if the invitee \"canceled\" or still \"active\"" + }, + "inferrable": true, + "http_endpoint_parameter_name": "status" + }, + { + "name": "sort_order_by_creation", + "required": false, + "description": "Specify the sort order of invitees by their created_at date. Use \"asc\" for ascending or \"desc\" for descending order.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the **created_at** field and direction specified: ascending (\"asc\") or descending (\"desc\")" + }, + "inferrable": true, + "http_endpoint_parameter_name": "sort" + }, + { + "name": "filter_by_email", + "required": false, + "description": "Filter results by the invitee's email address. Only invitees with this email will be returned.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by email address" + }, + "inferrable": true, + "http_endpoint_parameter_name": "email" + }, + { + "name": "pagination_token", + "required": false, + "description": "Token for fetching the next or previous portion of the event invitee list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + }, + { + "name": "number_of_invitees_to_return", + "required": false, + "description": "The number of invitee records to return in the response. Determines how many invitees are included per request.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-event-invitees'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/scheduled_events/{uuid}/invitees", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "status", + "tool_parameter_name": "invitee_status", + "description": "Indicates if the invitee \"canceled\" or still \"active\"", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "active", + "canceled" + ], + "properties": null, + "inner_properties": null, + "description": "Indicates if the invitee \"canceled\" or still \"active\"" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "sort", + "tool_parameter_name": "sort_order_by_creation", + "description": "Order results by the **created_at** field and direction specified: ascending (\"asc\") or descending (\"desc\")", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the **created_at** field and direction specified: ascending (\"asc\") or descending (\"desc\")" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "email", + "tool_parameter_name": "filter_by_email", + "description": "Indicates if the results should be filtered by email address", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by email address" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page_token", + "tool_parameter_name": "pagination_token", + "description": "The token to pass to get the next or previous portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "count", + "tool_parameter_name": "number_of_invitees_to_return", + "description": "The number of rows to return", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "uuid", + "tool_parameter_name": "event_unique_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventTypeAvailability.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventTypeAvailability.json new file mode 100644 index 00000000..ff19ce91 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventTypeAvailability.json @@ -0,0 +1,101 @@ +{ + "name": "GetEventTypeAvailability", + "fully_qualified_name": "CalendlyApi.GetEventTypeAvailability@0.1.0", + "description": "Fetches availability for a Calendly event type.\n\nUse this tool to retrieve the availability schedule for a specific event type on Calendly. It helps in planning and checking open time slots based on the event type's settings.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_type_uri", + "required": true, + "description": "The URI associated with the specific event type whose availability is being queried.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The URI associated with the event type" + }, + "inferrable": true, + "http_endpoint_parameter_name": "event_type" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-event-type-availability'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/event_type_availability_schedules", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "event_type", + "tool_parameter_name": "event_type_uri", + "description": "The URI associated with the event type", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The URI associated with the event type" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventTypeInfo.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventTypeInfo.json new file mode 100644 index 00000000..9596476b --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetEventTypeInfo.json @@ -0,0 +1,101 @@ +{ + "name": "GetEventTypeInfo", + "fully_qualified_name": "CalendlyApi.GetEventTypeInfo@0.1.0", + "description": "Retrieve information about a specified Event Type.\n\nUse this tool to fetch details of a specific Event Type by providing its unique identifier.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_type_uuid", + "required": true, + "description": "A unique identifier for the Event Type. Provide this to get information about the specific Event Type.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-event-type'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/event_types/{uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "event_type_uuid", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetGroupInformation.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetGroupInformation.json new file mode 100644 index 00000000..abc4f00f --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetGroupInformation.json @@ -0,0 +1,101 @@ +{ + "name": "GetGroupInformation", + "fully_qualified_name": "CalendlyApi.GetGroupInformation@0.1.0", + "description": "Returns information about a specified Group.\n\nUse this tool to get details about a specific group by providing its UUID.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "group_unique_identifier", + "required": true, + "description": "The unique identifier for the group you want to retrieve information about.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Group unique identifier" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-group'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/groups/{uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "group_unique_identifier", + "description": "Group unique identifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Group unique identifier" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetGroupList.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetGroupList.json new file mode 100644 index 00000000..a3da0632 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetGroupList.json @@ -0,0 +1,165 @@ +{ + "name": "GetGroupList", + "fully_qualified_name": "CalendlyApi.GetGroupList@0.1.0", + "description": "Retrieve a list of groups from Calendly.\n\nThis tool calls the Calendly API to return a list of groups. It should be used when you need information about groups within Calendly.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organization_uri", + "required": true, + "description": "URI of the organization to get associated groups.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return groups that are associated with the organization associated with this URI" + }, + "inferrable": true, + "http_endpoint_parameter_name": "organization" + }, + { + "name": "pagination_token", + "required": false, + "description": "Token used for pagination to retrieve the next or previous set of groups.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + }, + { + "name": "number_of_rows_to_return", + "required": false, + "description": "Specify the number of group entries to return from Calendly.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-groups'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/groups", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "organization", + "tool_parameter_name": "organization_uri", + "description": "Return groups that are associated with the organization associated with this URI", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return groups that are associated with the organization associated with this URI" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page_token", + "tool_parameter_name": "pagination_token", + "description": "The token to pass to get the next or previous portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "count", + "tool_parameter_name": "number_of_rows_to_return", + "description": "The number of rows to return", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetGroupRelationshipByUuid.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetGroupRelationshipByUuid.json new file mode 100644 index 00000000..17c5e7be --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetGroupRelationshipByUuid.json @@ -0,0 +1,101 @@ +{ + "name": "GetGroupRelationshipByUuid", + "fully_qualified_name": "CalendlyApi.GetGroupRelationshipByUuid@0.1.0", + "description": "Retrieve a group relationship using its UUID.\n\nUse this tool to get details about a specific group relationship by providing its UUID. It is useful for obtaining information about group connections within Calendly.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "group_relationship_uuid", + "required": true, + "description": "The UUID of the group relationship to retrieve details for. This is a unique identifier for the group within Calendly.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-group-relationship'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/group_relationships/{uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "group_relationship_uuid", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetOrganizationDetails.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetOrganizationDetails.json new file mode 100644 index 00000000..ee357216 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetOrganizationDetails.json @@ -0,0 +1,101 @@ +{ + "name": "GetOrganizationDetails", + "fully_qualified_name": "CalendlyApi.GetOrganizationDetails@0.1.0", + "description": "Retrieve details of a specified organization by UUID.\n\nUse this tool to get detailed information about a specific organization on Calendly by providing its UUID.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organization_unique_identifier", + "required": true, + "description": "The unique identifier for the organization to retrieve details from Calendly.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization's unique identifier" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-organization'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/organizations/{uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "organization_unique_identifier", + "description": "The organization's unique identifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization's unique identifier" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetOrganizationInvitations.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetOrganizationInvitations.json new file mode 100644 index 00000000..615bb00f --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetOrganizationInvitations.json @@ -0,0 +1,269 @@ +{ + "name": "GetOrganizationInvitations", + "fully_qualified_name": "CalendlyApi.GetOrganizationInvitations@0.1.0", + "description": "Retrieve invitations sent to organization members.\n\nUse this tool to obtain a list of invitations that have been sent to the members of an organization. It retrieves all organization member invitations.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organization_unique_identifier", + "required": true, + "description": "The unique identifier for the organization whose member invitations you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization's unique identifier" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + }, + { + "name": "number_of_rows_to_return", + "required": false, + "description": "Specifies the number of invitation rows to return.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + }, + { + "name": "pagination_token", + "required": false, + "description": "Token to retrieve the next or previous set of organization invitation results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + }, + { + "name": "sort_order", + "required": false, + "description": "Specify field name and sort direction (asc or desc). Use a comma-separated list for multiple fields.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the field name and direction specified (ascending or descending). Returns multiple sets of results in a comma-separated list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "sort" + }, + { + "name": "filter_by_email", + "required": false, + "description": "Filter results by a specific email address. Provide the email to narrow down the invitations.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by email address" + }, + "inferrable": true, + "http_endpoint_parameter_name": "email" + }, + { + "name": "filter_by_status", + "required": false, + "description": "Filter results by invitation status: \"pending\", \"accepted\", or \"declined\".", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "pending", + "accepted", + "declined" + ], + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by status (\"pending\", \"accepted\", or \"declined\")" + }, + "inferrable": true, + "http_endpoint_parameter_name": "status" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-organization-invitations'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/organizations/{uuid}/invitations", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "count", + "tool_parameter_name": "number_of_rows_to_return", + "description": "The number of rows to return", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page_token", + "tool_parameter_name": "pagination_token", + "description": "The token to pass to get the next or previous portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "sort", + "tool_parameter_name": "sort_order", + "description": "Order results by the field name and direction specified (ascending or descending). Returns multiple sets of results in a comma-separated list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the field name and direction specified (ascending or descending). Returns multiple sets of results in a comma-separated list." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "email", + "tool_parameter_name": "filter_by_email", + "description": "Indicates if the results should be filtered by email address", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by email address" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "status", + "tool_parameter_name": "filter_by_status", + "description": "Indicates if the results should be filtered by status (\"pending\", \"accepted\", or \"declined\")", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "pending", + "accepted", + "declined" + ], + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by status (\"pending\", \"accepted\", or \"declined\")" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "uuid", + "tool_parameter_name": "organization_unique_identifier", + "description": "The organization's unique identifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization's unique identifier" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetOrganizationMembership.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetOrganizationMembership.json new file mode 100644 index 00000000..b6cc3f4f --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetOrganizationMembership.json @@ -0,0 +1,101 @@ +{ + "name": "GetOrganizationMembership", + "fully_qualified_name": "CalendlyApi.GetOrganizationMembership@0.1.0", + "description": "Retrieve details about a user's organization membership.\n\nUse this tool to get detailed information on a user's organization membership by providing their unique identifier.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organization_membership_unique_identifier", + "required": true, + "description": "The unique identifier for the organization membership to retrieve details for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization membership's unique identifier" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-organization-membership'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/organization_memberships/{uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "organization_membership_unique_identifier", + "description": "The organization membership's unique identifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization membership's unique identifier" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetOutgoingCommunications.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetOutgoingCommunications.json new file mode 100644 index 00000000..f6eb02a2 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetOutgoingCommunications.json @@ -0,0 +1,229 @@ +{ + "name": "GetOutgoingCommunications", + "fully_qualified_name": "CalendlyApi.GetOutgoingCommunications@0.1.0", + "description": "Retrieve outgoing SMS and email communications.\n\nUse this tool to access a list of outgoing SMS and email communications. Requires an Enterprise subscription.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organization_uri", + "required": true, + "description": "URI to identify the organization for which to return outgoing communications.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return outgoing communications from the organization associated with this URI" + }, + "inferrable": true, + "http_endpoint_parameter_name": "organization" + }, + { + "name": "number_of_records", + "required": false, + "description": "Specify the number of outgoing communication records to return.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of records to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + }, + { + "name": "filter_communications_after", + "required": false, + "description": "Include outgoing communications created after this UTC time. Format: \"YYYY-MM-DDTHH:MM:SS.sssZ\".", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include outgoing communications that were created after this time (sample time format: \"2020-01-02T03:04:05.678Z\"). This time should use the UTC timezone" + }, + "inferrable": true, + "http_endpoint_parameter_name": "min_created_at" + }, + { + "name": "end_date_time_utc", + "required": false, + "description": "Include outgoing communications created before this UTC time. Format: \"2020-01-02T03:04:05.678Z\".", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include outgoing communications that were created prior to this time (sample time format: \"2020-01-02T03:04:05.678Z\"). This time should use the UTC timezone" + }, + "inferrable": true, + "http_endpoint_parameter_name": "max_created_at" + }, + { + "name": "pagination_token", + "required": false, + "description": "Token used to retrieve the next set of outgoing communication records.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-outgoing-communications'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/outgoing_communications", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "organization", + "tool_parameter_name": "organization_uri", + "description": "Return outgoing communications from the organization associated with this URI", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return outgoing communications from the organization associated with this URI" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "count", + "tool_parameter_name": "number_of_records", + "description": "The number of records to return", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of records to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "min_created_at", + "tool_parameter_name": "filter_communications_after", + "description": "Include outgoing communications that were created after this time (sample time format: \"2020-01-02T03:04:05.678Z\"). This time should use the UTC timezone", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include outgoing communications that were created after this time (sample time format: \"2020-01-02T03:04:05.678Z\"). This time should use the UTC timezone" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "max_created_at", + "tool_parameter_name": "end_date_time_utc", + "description": "Include outgoing communications that were created prior to this time (sample time format: \"2020-01-02T03:04:05.678Z\"). This time should use the UTC timezone", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include outgoing communications that were created prior to this time (sample time format: \"2020-01-02T03:04:05.678Z\"). This time should use the UTC timezone" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page_token", + "tool_parameter_name": "pagination_token", + "description": "The token to pass to get the next portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetRoutingFormSubmission.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetRoutingFormSubmission.json new file mode 100644 index 00000000..7d435723 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetRoutingFormSubmission.json @@ -0,0 +1,101 @@ +{ + "name": "GetRoutingFormSubmission", + "fully_qualified_name": "CalendlyApi.GetRoutingFormSubmission@0.1.0", + "description": "Retrieve details of a specified routing form submission.\n\nUse this tool to get detailed information about a specific routing form submission by providing its unique identifier (UUID).", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "submission_uuid", + "required": true, + "description": "The unique identifier for the routing form submission to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-routing-form-submission'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/routing_form_submissions/{uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "submission_uuid", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetSampleWebhookData.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetSampleWebhookData.json new file mode 100644 index 00000000..f739eb0c --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetSampleWebhookData.json @@ -0,0 +1,249 @@ +{ + "name": "GetSampleWebhookData", + "fully_qualified_name": "CalendlyApi.GetSampleWebhookData@0.1.0", + "description": "Retrieve sample webhook data for testing purposes.\n\nUse this tool to access sample data for testing your Calendly webhook subscription.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_type", + "required": true, + "description": "Specifies the type of event for which you want to retrieve sample webhook data. Options include 'invitee.created', 'invitee.canceled', 'invitee_no_show.created', 'invitee_no_show.deleted', and 'routing_form_submission.created'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "invitee.created", + "invitee.canceled", + "invitee_no_show.created", + "invitee_no_show.deleted", + "routing_form_submission.created" + ], + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "event" + }, + { + "name": "organization_identifier", + "required": true, + "description": "The unique identifier of the organization in Calendly for which you want to retrieve sample webhook data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "organization" + }, + { + "name": "scope", + "required": true, + "description": "Defines the scope of the webhook data to fetch: 'user', 'organization', or 'group'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "user", + "organization", + "group" + ], + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "scope" + }, + { + "name": "user_identifier", + "required": false, + "description": "The unique identifier for the Calendly user whose webhook data is being tested. Provide a valid user ID or username.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user" + }, + { + "name": "event_group_identifier", + "required": false, + "description": "Specify the group identifier to test webhook data for a specific group. This helps categorize or organize the webhook data samples.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "group" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-sample-webhook-data'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/sample_webhook_data", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "event", + "tool_parameter_name": "event_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "invitee.created", + "invitee.canceled", + "invitee_no_show.created", + "invitee_no_show.deleted", + "routing_form_submission.created" + ], + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "organization", + "tool_parameter_name": "organization_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "user", + "tool_parameter_name": "user_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "scope", + "tool_parameter_name": "scope", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "user", + "organization", + "group" + ], + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "group", + "tool_parameter_name": "event_group_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetSpecificRoutingForm.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetSpecificRoutingForm.json new file mode 100644 index 00000000..34482c06 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetSpecificRoutingForm.json @@ -0,0 +1,101 @@ +{ + "name": "GetSpecificRoutingForm", + "fully_qualified_name": "CalendlyApi.GetSpecificRoutingForm@0.1.0", + "description": "Retrieve details of a specified routing form using UUID.\n\nUse this tool to obtain information about a particular routing form in Calendly by providing the unique identifier (UUID).", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "routing_form_uuid", + "required": true, + "description": "The unique identifier (UUID) for the specific routing form to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-routing-form'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/routing_forms/{uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "routing_form_uuid", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserAccountInfo.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserAccountInfo.json new file mode 100644 index 00000000..8f3ab72f --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserAccountInfo.json @@ -0,0 +1,67 @@ +{ + "name": "GetUserAccountInfo", + "fully_qualified_name": "CalendlyApi.GetUserAccountInfo@0.1.0", + "description": "Retrieve basic information about your Calendly account.\n\n", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'get-current-user'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/users/me", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserAvailabilitySchedule.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserAvailabilitySchedule.json new file mode 100644 index 00000000..2a6ef9e7 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserAvailabilitySchedule.json @@ -0,0 +1,101 @@ +{ + "name": "GetUserAvailabilitySchedule", + "fully_qualified_name": "CalendlyApi.GetUserAvailabilitySchedule@0.1.0", + "description": "Fetches the availability schedule for a specific user.\n\nUse this tool to obtain the availability schedule associated with a specific user's UUID in Calendly. It helps in identifying the available time slots for the user.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_availability_uuid", + "required": true, + "description": "The UUID of the user's availability schedule to fetch.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The UUID of the availability schedule." + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-user-availability-schedule'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/user_availability_schedules/{uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "user_availability_uuid", + "description": "The UUID of the availability schedule.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The UUID of the availability schedule." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserAvailabilitySchedules.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserAvailabilitySchedules.json new file mode 100644 index 00000000..e7ae4c84 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserAvailabilitySchedules.json @@ -0,0 +1,101 @@ +{ + "name": "GetUserAvailabilitySchedules", + "fully_qualified_name": "CalendlyApi.GetUserAvailabilitySchedules@0.1.0", + "description": "Retrieve the user's availability schedules.\n\nThis tool returns the availability schedules for a specified user. Call this tool when you need to know a user's available times for scheduling purposes.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_uri_reference", + "required": true, + "description": "A string representing the URI of the user to retrieve availability for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URI reference to a user" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-user-availability-schedules'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/user_availability_schedules", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "user", + "tool_parameter_name": "user_uri_reference", + "description": "A URI reference to a user", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URI reference to a user" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserInfo.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserInfo.json new file mode 100644 index 00000000..d2c687b5 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserInfo.json @@ -0,0 +1,101 @@ +{ + "name": "GetUserInfo", + "fully_qualified_name": "CalendlyApi.GetUserInfo@0.1.0", + "description": "Retrieve information about a specified Calendly user.\n\nUse this tool to obtain detailed information about a specific Calendly user by providing their unique identifier. Ideal for accessing user settings, profile details, and preferences.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_identifier", + "required": true, + "description": "Provide a unique user identifier or use \"me\" to refer to the current caller.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User unique identifier, or the constant \"me\" to reference the caller" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-user'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/users/{uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "user_identifier", + "description": "User unique identifier, or the constant \"me\" to reference the caller", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "User unique identifier, or the constant \"me\" to reference the caller" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserLocationInfo.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserLocationInfo.json new file mode 100644 index 00000000..ceb122e5 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetUserLocationInfo.json @@ -0,0 +1,101 @@ +{ + "name": "GetUserLocationInfo", + "fully_qualified_name": "CalendlyApi.GetUserLocationInfo@0.1.0", + "description": "Fetches location information for a specific user.\n\nUse this tool to obtain the configured location details for a specified user. It should be called when you need to know where a user's events or activities are set to take place.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_uri", + "required": true, + "description": "The URI of the user whose location information is being requested.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The URI associated with the user" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-user-locations'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/locations", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "user", + "tool_parameter_name": "user_uri", + "description": "The URI associated with the user", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The URI associated with the user" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetWebhookSubscription.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetWebhookSubscription.json new file mode 100644 index 00000000..cef33777 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetWebhookSubscription.json @@ -0,0 +1,101 @@ +{ + "name": "GetWebhookSubscription", + "fully_qualified_name": "CalendlyApi.GetWebhookSubscription@0.1.0", + "description": "Retrieve details of a specified webhook subscription.\n\nUse this tool to get information about a specific webhook subscription by providing the webhook UUID.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "webhook_uuid", + "required": true, + "description": "The unique identifier for the webhook subscription to retrieve details for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "webhook_uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-webhook-subscription'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/webhook_subscriptions/{webhook_uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "webhook_uuid", + "tool_parameter_name": "webhook_uuid", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetWebhookSubscriptions.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetWebhookSubscriptions.json new file mode 100644 index 00000000..24c53fd5 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/GetWebhookSubscriptions.json @@ -0,0 +1,301 @@ +{ + "name": "GetWebhookSubscriptions", + "fully_qualified_name": "CalendlyApi.GetWebhookSubscriptions@0.1.0", + "description": "Retrieve webhook subscriptions for an organization or user.\n\nThis tool fetches a list of webhook subscriptions associated with a specified organization or user. Use it to manage or review existing webhook connections.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organization_identifier", + "required": true, + "description": "Specify the organization that owns the subscriptions. This field is mandatory.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The given organization that owns the subscriptions being returned. This field is always required." + }, + "inferrable": true, + "http_endpoint_parameter_name": "organization" + }, + { + "name": "filter_by_scope", + "required": true, + "description": "Filter the subscriptions by organization, user, or group. Expected values are 'organization', 'user', or 'group'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "organization", + "user", + "group" + ], + "properties": null, + "inner_properties": null, + "description": "Filter the list by organization, user, or group" + }, + "inferrable": true, + "http_endpoint_parameter_name": "scope" + }, + { + "name": "user_filter", + "required": false, + "description": "Filter results by user. Required if scope is set to `user`. Provide the user ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by user. This parameter is only required if the `scope` parameter is set to `user`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "user" + }, + { + "name": "filter_by_group", + "required": false, + "description": "Filter results by group if the `scope` is set to `group`. Provide the group identifier.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by group. This parameter is only required if the `scope` parameter is set to `group`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "group" + }, + { + "name": "pagination_token", + "required": false, + "description": "The token used to navigate to the next or previous part of the collection results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + }, + { + "name": "number_of_rows_to_return", + "required": false, + "description": "Specify the number of webhook subscription rows to return.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + }, + { + "name": "sort_order", + "required": false, + "description": "Specify the sort order for the results using a comma-separated list of field:direction pairs (e.g., 'created_at:asc'). Currently, only 'created_at' is supported, with directions 'asc' for ascending and 'desc' for descending.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.\nSupported fields are: created_at.\nSort direction is specified as: asc, desc." + }, + "inferrable": true, + "http_endpoint_parameter_name": "sort" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-webhook-subscriptions'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/webhook_subscriptions", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "organization", + "tool_parameter_name": "organization_identifier", + "description": "The given organization that owns the subscriptions being returned. This field is always required.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The given organization that owns the subscriptions being returned. This field is always required." + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "user", + "tool_parameter_name": "user_filter", + "description": "Indicates if the results should be filtered by user. This parameter is only required if the `scope` parameter is set to `user`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by user. This parameter is only required if the `scope` parameter is set to `user`." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "group", + "tool_parameter_name": "filter_by_group", + "description": "Indicates if the results should be filtered by group. This parameter is only required if the `scope` parameter is set to `group`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by group. This parameter is only required if the `scope` parameter is set to `group`." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page_token", + "tool_parameter_name": "pagination_token", + "description": "The token to pass to get the next or previous portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "count", + "tool_parameter_name": "number_of_rows_to_return", + "description": "The number of rows to return", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "sort", + "tool_parameter_name": "sort_order", + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.\nSupported fields are: created_at.\nSort direction is specified as: asc, desc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.\nSupported fields are: created_at.\nSort direction is specified as: asc, desc." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "scope", + "tool_parameter_name": "filter_by_scope", + "description": "Filter the list by organization, user, or group", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "organization", + "user", + "group" + ], + "properties": null, + "inner_properties": null, + "description": "Filter the list by organization, user, or group" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListEventTypeAvailableTimes.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListEventTypeAvailableTimes.json new file mode 100644 index 00000000..777d43eb --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListEventTypeAvailableTimes.json @@ -0,0 +1,165 @@ +{ + "name": "ListEventTypeAvailableTimes", + "fully_qualified_name": "CalendlyApi.ListEventTypeAvailableTimes@0.1.0", + "description": "Get available times for an event type within a date range.\n\nUse this tool to retrieve available times for a specific event type within a 7-day date range. Ideal for scheduling and planning purposes.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_type_uri", + "required": true, + "description": "The URI associated with the specific event type to query available times for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The uri associated with the event type" + }, + "inferrable": true, + "http_endpoint_parameter_name": "event_type" + }, + { + "name": "availability_start_time", + "required": true, + "description": "The start time for the availability request. Ensure the date is not in the past.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start time of the requested availability range. Date cannot be in the past." + }, + "inferrable": true, + "http_endpoint_parameter_name": "start_time" + }, + { + "name": "end_time", + "required": true, + "description": "End time of the requested availability range. This date must be later than the start_time and within 7 days.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End time of the requested availability range. Date must be in the future of start_time." + }, + "inferrable": true, + "http_endpoint_parameter_name": "end_time" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-event-type-available-times'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/event_type_available_times", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "event_type", + "tool_parameter_name": "event_type_uri", + "description": "The uri associated with the event type", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The uri associated with the event type" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "start_time", + "tool_parameter_name": "availability_start_time", + "description": "Start time of the requested availability range. Date cannot be in the past.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start time of the requested availability range. Date cannot be in the past." + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "end_time", + "tool_parameter_name": "end_time", + "description": "End time of the requested availability range. Date must be in the future of start_time.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End time of the requested availability range. Date must be in the future of start_time." + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListGroupRelationships.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListGroupRelationships.json new file mode 100644 index 00000000..4355e19a --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListGroupRelationships.json @@ -0,0 +1,229 @@ +{ + "name": "ListGroupRelationships", + "fully_qualified_name": "CalendlyApi.ListGroupRelationships@0.1.0", + "description": "Retrieve group relationships for a Calendly owner.\n\nThis tool returns a list of group relationships for a given owner in Calendly, which includes one membership record and multiple admin records, if available.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "number_of_rows_to_return", + "required": false, + "description": "Specify the number of rows to return in the response.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + }, + { + "name": "pagination_token", + "required": false, + "description": "Token for paginating through results, used for accessing the next or previous portion of the collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + }, + { + "name": "filter_by_organization", + "required": false, + "description": "Indicates the results should be filtered by organization. Provide the organization's URI.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates the results should be filtered by organization" + }, + "inferrable": true, + "http_endpoint_parameter_name": "organization" + }, + { + "name": "filter_by_owner", + "required": false, + "description": "Filter results by owner using a specific URI format: Organization Membership or Organization Invitation.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates the results should be filtered by owner
\nOne Of:\n - Organization Membership URI - `https://api.calendly.com/organization_memberships/AAAAAAAAAAAAAAAA`\n - Organization Invitation URI - `https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA/invitations/BBBBBBBBBBBBBBBB`\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "owner" + }, + { + "name": "filter_by_group", + "required": false, + "description": "Indicate the group to filter the results by. Provide the group identifier as the value.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates the results should be filtered by group" + }, + "inferrable": true, + "http_endpoint_parameter_name": "group" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-group-relationships'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/group_relationships", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "count", + "tool_parameter_name": "number_of_rows_to_return", + "description": "The number of rows to return", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page_token", + "tool_parameter_name": "pagination_token", + "description": "The token to pass to get the next or previous portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "organization", + "tool_parameter_name": "filter_by_organization", + "description": "Indicates the results should be filtered by organization", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates the results should be filtered by organization" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "owner", + "tool_parameter_name": "filter_by_owner", + "description": "Indicates the results should be filtered by owner
\nOne Of:\n - Organization Membership URI - `https://api.calendly.com/organization_memberships/AAAAAAAAAAAAAAAA`\n - Organization Invitation URI - `https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA/invitations/BBBBBBBBBBBBBBBB`\n", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates the results should be filtered by owner
\nOne Of:\n - Organization Membership URI - `https://api.calendly.com/organization_memberships/AAAAAAAAAAAAAAAA`\n - Organization Invitation URI - `https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA/invitations/BBBBBBBBBBBBBBBB`\n" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "group", + "tool_parameter_name": "filter_by_group", + "description": "Indicates the results should be filtered by group", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates the results should be filtered by group" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListOrganizationMembershipsCalendly.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListOrganizationMembershipsCalendly.json new file mode 100644 index 00000000..e49d5849 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListOrganizationMembershipsCalendly.json @@ -0,0 +1,269 @@ +{ + "name": "ListOrganizationMembershipsCalendly", + "fully_qualified_name": "CalendlyApi.ListOrganizationMembershipsCalendly@0.1.0", + "description": "Retrieve organization memberships and associated details.\n\nUse this tool to list organization memberships for users within an organization. You can either look up a user's membership or find all users in the organization. This tool also retrieves the organization's URI.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "pagination_token", + "required": false, + "description": "Token to fetch the next or previous set of results in the collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + }, + { + "name": "number_of_rows_to_return", + "required": false, + "description": "Specify the number of organization membership records to return.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + }, + { + "name": "filter_by_email", + "required": false, + "description": "Filter results to include members with the specified email address.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by email address" + }, + "inferrable": true, + "http_endpoint_parameter_name": "email" + }, + { + "name": "filter_by_organization", + "required": false, + "description": "Filter results to include only members from a specified organization by its identifier.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by organization" + }, + "inferrable": true, + "http_endpoint_parameter_name": "organization" + }, + { + "name": "filter_by_user", + "required": false, + "description": "Filter results by a specific user's email address or ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by user" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user" + }, + { + "name": "filter_by_role", + "required": false, + "description": "Filter results by role: owner, admin, or user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "owner", + "admin", + "user" + ], + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by role" + }, + "inferrable": true, + "http_endpoint_parameter_name": "role" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-organization-memberships'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/organization_memberships", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "page_token", + "tool_parameter_name": "pagination_token", + "description": "The token to pass to get the next or previous portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "count", + "tool_parameter_name": "number_of_rows_to_return", + "description": "The number of rows to return", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "email", + "tool_parameter_name": "filter_by_email", + "description": "Indicates if the results should be filtered by email address", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by email address" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "organization", + "tool_parameter_name": "filter_by_organization", + "description": "Indicates if the results should be filtered by organization", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by organization" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "user", + "tool_parameter_name": "filter_by_user", + "description": "Indicates if the results should be filtered by user", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by user" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "role", + "tool_parameter_name": "filter_by_role", + "description": "Indicates if the results should be filtered by role", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "owner", + "admin", + "user" + ], + "properties": null, + "inner_properties": null, + "description": "Indicates if the results should be filtered by role" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListRoutingFormSubmissions.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListRoutingFormSubmissions.json new file mode 100644 index 00000000..caebb572 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListRoutingFormSubmissions.json @@ -0,0 +1,197 @@ +{ + "name": "ListRoutingFormSubmissions", + "fully_qualified_name": "CalendlyApi.ListRoutingFormSubmissions@0.1.0", + "description": "Retrieve submissions for a specific routing form.\n\nGet a list of submissions made to a specific routing form in Calendly.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "routing_form_uri", + "required": true, + "description": "The URI of the routing form to view its submissions.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "View routing form submissions associated with the routing form's URI." + }, + "inferrable": true, + "http_endpoint_parameter_name": "form" + }, + { + "name": "number_of_rows_to_return", + "required": false, + "description": "Specify the number of form submission rows to return.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + }, + { + "name": "pagination_token", + "required": false, + "description": "Token used for retrieving the next or previous set of routing form submissions based on pagination.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + }, + { + "name": "order_results_by_field", + "required": false, + "description": "Comma-separated list to order results by {field}:{direction}, e.g., 'created_at:asc'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc." + }, + "inferrable": true, + "http_endpoint_parameter_name": "sort" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-routing-form-submissions'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/routing_form_submissions", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "form", + "tool_parameter_name": "routing_form_uri", + "description": "View routing form submissions associated with the routing form's URI.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "View routing form submissions associated with the routing form's URI." + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "count", + "tool_parameter_name": "number_of_rows_to_return", + "description": "The number of rows to return", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page_token", + "tool_parameter_name": "pagination_token", + "description": "The token to pass to get the next or previous portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "sort", + "tool_parameter_name": "order_results_by_field", + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListRoutingForms.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListRoutingForms.json new file mode 100644 index 00000000..669ec16e --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListRoutingForms.json @@ -0,0 +1,197 @@ +{ + "name": "ListRoutingForms", + "fully_qualified_name": "CalendlyApi.ListRoutingForms@0.1.0", + "description": "Retrieve a list of Routing Forms for your organization.\n\nUse this tool to get a comprehensive list of Routing Forms within a specified organization. Ideal for gathering form data for review or analysis.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organization_uri", + "required": true, + "description": "The URI of the organization to view its routing forms. Use the organization's URI to identify it.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "View organization routing forms associated with the organization's URI." + }, + "inferrable": true, + "http_endpoint_parameter_name": "organization" + }, + { + "name": "rows_to_return", + "required": false, + "description": "Specify the number of Routing Form entries to retrieve.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + }, + { + "name": "paging_token", + "required": false, + "description": "Token for retrieving the next or previous set of Routing Forms in pagination.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + }, + { + "name": "sort_order", + "required": false, + "description": "Specify sorting order for results using a comma-separated list of {field}:{direction}. Supported fields: created_at. Directions: asc, desc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc." + }, + "inferrable": true, + "http_endpoint_parameter_name": "sort" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-routing-forms'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/routing_forms", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "organization", + "tool_parameter_name": "organization_uri", + "description": "View organization routing forms associated with the organization's URI.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "View organization routing forms associated with the organization's URI." + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "count", + "tool_parameter_name": "rows_to_return", + "description": "The number of rows to return", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page_token", + "tool_parameter_name": "paging_token", + "description": "The token to pass to get the next or previous portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "sort", + "tool_parameter_name": "sort_order", + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListScheduledEvents.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListScheduledEvents.json new file mode 100644 index 00000000..dc14fbc1 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListScheduledEvents.json @@ -0,0 +1,395 @@ +{ + "name": "ListScheduledEvents", + "fully_qualified_name": "CalendlyApi.ListScheduledEvents@0.1.0", + "description": "Retrieve a list of scheduled events from Calendly.\n\nThis tool retrieves a list of scheduled events for a specified user, group, or organization in Calendly. Use it to view events you have access to, based on your role and privileges.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_uri", + "required": false, + "description": "The URI identifying the user to retrieve scheduled events for. This can be used alone for personal events or with `organization` for specific user events within an organization. Requires appropriate privileges.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return events that are scheduled with the user associated with this URI" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user" + }, + { + "name": "organization_uri", + "required": false, + "description": "Returns events scheduled with the specified organization's URI. Requires admin or owner privilege.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return events that are scheduled with the organization associated with this URI" + }, + "inferrable": true, + "http_endpoint_parameter_name": "organization" + }, + { + "name": "invitee_email", + "required": false, + "description": "Email address to filter events scheduled with the invitee. Use to retrieve events specific to an invitee.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return events that are scheduled with the invitee associated with this email address" + }, + "inferrable": true, + "http_endpoint_parameter_name": "invitee_email" + }, + { + "name": "event_status", + "required": false, + "description": "Specifies whether to retrieve events that are 'active' or 'canceled'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "active", + "canceled" + ], + "properties": null, + "inner_properties": null, + "description": "Whether the scheduled event is `active` or `canceled`" + }, + "inferrable": true, + "http_endpoint_parameter_name": "status" + }, + { + "name": "order_results_by", + "required": false, + "description": "Specify the field and direction to order results (e.g., 'start_time:asc'). Supported field: start_time; Directions: asc, desc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.\nSupported fields are: start_time.\nSort direction is specified as: asc, desc." + }, + "inferrable": true, + "http_endpoint_parameter_name": "sort" + }, + { + "name": "start_time_after", + "required": false, + "description": "Include events with start times after this specified UTC time (e.g., \"2020-01-02T03:04:05.678123Z\").", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include events with start times after this time (sample time format: \"2020-01-02T03:04:05.678123Z\"). This time should use the UTC timezone." + }, + "inferrable": true, + "http_endpoint_parameter_name": "min_start_time" + }, + { + "name": "max_start_time", + "required": false, + "description": "Include events with start times prior to this UTC time. Format: \"2020-01-02T03:04:05.678123Z\".", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include events with start times prior to this time (sample time format: \"2020-01-02T03:04:05.678123Z\"). This time should use the UTC timezone." + }, + "inferrable": true, + "http_endpoint_parameter_name": "max_start_time" + }, + { + "name": "pagination_token", + "required": false, + "description": "Token used for paginating results, allowing access to the next or previous portion of the event collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + }, + { + "name": "number_of_events_to_return", + "required": false, + "description": "Specifies the number of events to be returned in the query result.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + }, + { + "name": "group_uri", + "required": false, + "description": "URI of the group to retrieve scheduled events for. Requires appropriate admin privileges.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return events that are scheduled with the group associated with this URI" + }, + "inferrable": true, + "http_endpoint_parameter_name": "group" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-scheduled-events'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/scheduled_events", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "user", + "tool_parameter_name": "user_uri", + "description": "Return events that are scheduled with the user associated with this URI", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return events that are scheduled with the user associated with this URI" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "organization", + "tool_parameter_name": "organization_uri", + "description": "Return events that are scheduled with the organization associated with this URI", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return events that are scheduled with the organization associated with this URI" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "invitee_email", + "tool_parameter_name": "invitee_email", + "description": "Return events that are scheduled with the invitee associated with this email address", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return events that are scheduled with the invitee associated with this email address" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "status", + "tool_parameter_name": "event_status", + "description": "Whether the scheduled event is `active` or `canceled`", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "active", + "canceled" + ], + "properties": null, + "inner_properties": null, + "description": "Whether the scheduled event is `active` or `canceled`" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "sort", + "tool_parameter_name": "order_results_by", + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.\nSupported fields are: start_time.\nSort direction is specified as: asc, desc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.\nSupported fields are: start_time.\nSort direction is specified as: asc, desc." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "min_start_time", + "tool_parameter_name": "start_time_after", + "description": "Include events with start times after this time (sample time format: \"2020-01-02T03:04:05.678123Z\"). This time should use the UTC timezone.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include events with start times after this time (sample time format: \"2020-01-02T03:04:05.678123Z\"). This time should use the UTC timezone." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "max_start_time", + "tool_parameter_name": "max_start_time", + "description": "Include events with start times prior to this time (sample time format: \"2020-01-02T03:04:05.678123Z\"). This time should use the UTC timezone.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include events with start times prior to this time (sample time format: \"2020-01-02T03:04:05.678123Z\"). This time should use the UTC timezone." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page_token", + "tool_parameter_name": "pagination_token", + "description": "The token to pass to get the next or previous portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "count", + "tool_parameter_name": "number_of_events_to_return", + "description": "The number of rows to return", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "group", + "tool_parameter_name": "group_uri", + "description": "Return events that are scheduled with the group associated with this URI", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return events that are scheduled with the group associated with this URI" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListUserBusyTimes.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListUserBusyTimes.json new file mode 100644 index 00000000..dc7a113e --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListUserBusyTimes.json @@ -0,0 +1,165 @@ +{ + "name": "ListUserBusyTimes", + "fully_qualified_name": "CalendlyApi.ListUserBusyTimes@0.1.0", + "description": "Retrieve user's scheduled events in a date range.\n\nGet an ascending list of user's internal and external events within a specified date range, up to 7 days. External events are returned for configured calendars only.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_uri", + "required": true, + "description": "The URI associated with the user to retrieve busy times for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The uri associated with the user" + }, + "inferrable": true, + "http_endpoint_parameter_name": "user" + }, + { + "name": "availability_start_time", + "required": true, + "description": "Start time of the requested availability range. The date cannot be in the past and must be formatted correctly.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start time of the requested availability range. Date cannot be in the past." + }, + "inferrable": true, + "http_endpoint_parameter_name": "start_time" + }, + { + "name": "availability_end_time", + "required": true, + "description": "End time for the requested availability range; must be after the start time.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End time of the requested availability range. Date must be in the future of start_time." + }, + "inferrable": true, + "http_endpoint_parameter_name": "end_time" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-user-busy-times'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/user_busy_times", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "user", + "tool_parameter_name": "user_uri", + "description": "The uri associated with the user", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The uri associated with the user" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "start_time", + "tool_parameter_name": "availability_start_time", + "description": "Start time of the requested availability range. Date cannot be in the past.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start time of the requested availability range. Date cannot be in the past." + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "end_time", + "tool_parameter_name": "availability_end_time", + "description": "End time of the requested availability range. Date must be in the future of start_time.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End time of the requested availability range. Date must be in the future of start_time." + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListUserOrOrgEventTypes.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListUserOrOrgEventTypes.json new file mode 100644 index 00000000..f88b96ad --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/ListUserOrOrgEventTypes.json @@ -0,0 +1,325 @@ +{ + "name": "ListUserOrOrgEventTypes", + "fully_qualified_name": "CalendlyApi.ListUserOrOrgEventTypes@0.1.0", + "description": "Retrieve Event Types for a user or organization.\n\nUse this tool to get all Event Types for a specific user or organization. Specify either the 'organization' or 'user' as a query parameter when calling this tool.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organization_uri", + "required": false, + "description": "The URI of the organization to view its event types. Specify this to retrieve organization event types.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "View available personal, team, and organization event types associated with the organization's URI." + }, + "inferrable": true, + "http_endpoint_parameter_name": "organization" + }, + { + "name": "user_uri", + "required": false, + "description": "Specify the user's URI to view their personal, team, and organization event types.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "View available personal, team, and organization event types associated with the user's URI." + }, + "inferrable": true, + "http_endpoint_parameter_name": "user" + }, + { + "name": "user_availability_schedule_filter", + "required": false, + "description": "Filter Event Types for a user based on the primary availability schedule. Requires the 'user' parameter to be used.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used in conjunction with `user` parameter, returns a filtered list of Event Types that use the given primary availability schedule." + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_availability_schedule" + }, + { + "name": "order_event_types_by", + "required": false, + "description": "Order results by specified fields and directions. Use a comma-separated format: {field}:{direction}. Supported fields are: name, position, created_at, updated_at. Directions can be 'asc' or 'desc'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.Supported fields are: name, position, created_at, updated_at. Sort direction is specified as: asc, desc." + }, + "inferrable": true, + "http_endpoint_parameter_name": "sort" + }, + { + "name": "pagination_token", + "required": false, + "description": "Token used for paginating through results. Pass it to get the next or previous portion of the collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "inferrable": true, + "http_endpoint_parameter_name": "page_token" + }, + { + "name": "number_of_rows_to_return", + "required": false, + "description": "Specify the number of event type entries to retrieve. Determines how many rows are returned in the response.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + }, + { + "name": "filter_active_event_types", + "required": false, + "description": "Return only active event types if true, only inactive if false, or all event types if omitted.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return only active event types if true, only inactive if false, or all event types if this parameter is omitted." + }, + "inferrable": true, + "http_endpoint_parameter_name": "active" + }, + { + "name": "only_admin_managed_event_types", + "required": false, + "description": "Return only admin managed event types if true, exclude if false, or include all if omitted.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return only admin managed event types if true, exclude admin managed event types if false, or include all event types if this parameter is omitted." + }, + "inferrable": true, + "http_endpoint_parameter_name": "admin_managed" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'list-event-types'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/event_types", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "active", + "tool_parameter_name": "filter_active_event_types", + "description": "Return only active event types if true, only inactive if false, or all event types if this parameter is omitted.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return only active event types if true, only inactive if false, or all event types if this parameter is omitted." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "organization", + "tool_parameter_name": "organization_uri", + "description": "View available personal, team, and organization event types associated with the organization's URI.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "View available personal, team, and organization event types associated with the organization's URI." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "user", + "tool_parameter_name": "user_uri", + "description": "View available personal, team, and organization event types associated with the user's URI.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "View available personal, team, and organization event types associated with the user's URI." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "user_availability_schedule", + "tool_parameter_name": "user_availability_schedule_filter", + "description": "Used in conjunction with `user` parameter, returns a filtered list of Event Types that use the given primary availability schedule.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used in conjunction with `user` parameter, returns a filtered list of Event Types that use the given primary availability schedule." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "sort", + "tool_parameter_name": "order_event_types_by", + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.Supported fields are: name, position, created_at, updated_at. Sort direction is specified as: asc, desc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.Supported fields are: name, position, created_at, updated_at. Sort direction is specified as: asc, desc." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "admin_managed", + "tool_parameter_name": "only_admin_managed_event_types", + "description": "Return only admin managed event types if true, exclude admin managed event types if false, or include all event types if this parameter is omitted.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Return only admin managed event types if true, exclude admin managed event types if false, or include all event types if this parameter is omitted." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "page_token", + "tool_parameter_name": "pagination_token", + "description": "The token to pass to get the next or previous portion of the collection", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token to pass to get the next or previous portion of the collection" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "count", + "tool_parameter_name": "number_of_rows_to_return", + "description": "The number of rows to return", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of rows to return" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/RemoveOrganizationMember.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/RemoveOrganizationMember.json new file mode 100644 index 00000000..874213d4 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/RemoveOrganizationMember.json @@ -0,0 +1,101 @@ +{ + "name": "RemoveOrganizationMember", + "fully_qualified_name": "CalendlyApi.RemoveOrganizationMember@0.1.0", + "description": "Removes a user from an organization as an admin.\n\nUse this tool to remove a user from an organization if you have admin rights. Note that an organization owner cannot be removed.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organization_membership_id", + "required": true, + "description": "The unique identifier for the organization membership to be removed. Required for identifying the specific user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization membership's unique identifier" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-organization-membership'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/organization_memberships/{uuid}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "organization_membership_id", + "description": "The organization membership's unique identifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization membership's unique identifier" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/RetrieveInviteeNoShowInfo.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/RetrieveInviteeNoShowInfo.json new file mode 100644 index 00000000..dc079ec5 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/RetrieveInviteeNoShowInfo.json @@ -0,0 +1,101 @@ +{ + "name": "RetrieveInviteeNoShowInfo", + "fully_qualified_name": "CalendlyApi.RetrieveInviteeNoShowInfo@0.1.0", + "description": "Retrieve details of an invitee marked as a no show.\n\nThis tool retrieves specific information about an invitee who did not show up for an event as scheduled. Use it to get details when you have the unique identifier for the invitee no show entry.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invitee_no_show_uuid", + "required": true, + "description": "The unique identifier for the specific invitee no show entry. This is required to retrieve the details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-invitee-no-show'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/invitee_no_shows/{uuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "invitee_no_show_uuid", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/RevokeOrgInvitation.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/RevokeOrgInvitation.json new file mode 100644 index 00000000..65c77b08 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/RevokeOrgInvitation.json @@ -0,0 +1,133 @@ +{ + "name": "RevokeOrgInvitation", + "fully_qualified_name": "CalendlyApi.RevokeOrgInvitation@0.1.0", + "description": "Revoke an organization's invitation link.\n\nUse this tool to revoke an existing invitation to an organization. Once revoked, the invitation link becomes invalid and cannot be used.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "organization_unique_identifier", + "required": true, + "description": "The unique identifier for the organization whose invitation is to be revoked.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization\u2019s unique identifier" + }, + "inferrable": true, + "http_endpoint_parameter_name": "org_uuid" + }, + { + "name": "invitation_uuid", + "required": true, + "description": "The unique identifier for the organization invitation to be revoked.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization invitation's unique identifier" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'revoke-organization-invitation'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/organizations/{org_uuid}/invitations/{uuid}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "org_uuid", + "tool_parameter_name": "organization_unique_identifier", + "description": "The organization\u2019s unique identifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization\u2019s unique identifier" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + }, + { + "name": "uuid", + "tool_parameter_name": "invitation_uuid", + "description": "The organization invitation's unique identifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The organization invitation's unique identifier" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/UndoNoShowMarkCalendly.json b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/UndoNoShowMarkCalendly.json new file mode 100644 index 00000000..bd9d0382 --- /dev/null +++ b/toolkits/calendly_api/arcade_calendly_api/wrapper_tools/UndoNoShowMarkCalendly.json @@ -0,0 +1,101 @@ +{ + "name": "UndoNoShowMarkCalendly", + "fully_qualified_name": "CalendlyApi.UndoNoShowMarkCalendly@0.1.0", + "description": "Undo marking an invitee as a no-show in Calendly.\n\nUse this tool to reverse the status of an invitee marked as a no-show in Calendly. This is useful when a no-show marking needs to be undone.", + "toolkit": { + "name": "ArcadeCalendlyApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invitee_identifier", + "required": true, + "description": "The unique identifier of the invitee whose no-show status needs to be undone.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "uuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-invitee-no-show'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-calendly", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.0.0", + "description": "Tools that enable LLMs to interact directly with the calendly API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.0.0", + "description": "" + }, + "url": "https://api.calendly.com/invitee_no_shows/{uuid}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "uuid", + "tool_parameter_name": "invitee_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ] + } +} diff --git a/toolkits/calendly_api/pyproject.toml b/toolkits/calendly_api/pyproject.toml new file mode 100644 index 00000000..11e9eca6 --- /dev/null +++ b/toolkits/calendly_api/pyproject.toml @@ -0,0 +1,62 @@ +[build-system] +requires = [ "hatchling",] +build-backend = "hatchling.build" + +[project] +name = "arcade_calendly_api" +version = "0.1.0" +description = "Tools that enable LLMs to interact directly with the calendly API." +requires-python = ">=3.10" +dependencies = [ + "arcade-tdk>=2.0.0,<3.0.0", + "httpx[http2]>=0.27.2,<1.0.0", +] + +[[project.authors]] +email = "support@arcade.dev" + + +[project.optional-dependencies] +dev = [ + "arcade-mcp[all]>=1.0.0rc2,<3.0.0", + "arcade-serve>=2.0.0,<3.0.0", + "pytest>=8.3.0,<8.4.0", + "pytest-cov>=4.0.0,<4.1.0", + "pytest-mock>=3.11.1,<3.12.0", + "pytest-asyncio>=0.24.0,<0.25.0", + "mypy>=1.5.1,<1.6.0", + "pre-commit>=3.4.0,<3.5.0", + "tox>=4.11.1,<4.12.0", + "ruff>=0.7.4,<0.8.0", + "httpx[http2]>=0.27.2,<1.0.0", +] + +# Tell Arcade.dev that this package is a toolkit +[project.entry-points.arcade_toolkits] +toolkit_name = "arcade_calendly_api" + +# Use local path sources for arcade libs when working locally +[tool.uv.sources] +arcade-mcp = { path = "../../", editable = true } +arcade-serve = { path = "../../libs/arcade-serve/", editable = true } +arcade-tdk = { path = "../../libs/arcade-tdk/", editable = true } +[tool.mypy] +files = [ "arcade_calendly_api/**/*.py",] +python_version = "3.10" +disallow_untyped_defs = "True" +disallow_any_unimported = "True" +no_implicit_optional = "True" +check_untyped_defs = "True" +warn_return_any = "True" +warn_unused_ignores = "True" +show_error_codes = "True" +ignore_missing_imports = "True" + +[tool.pytest.ini_options] +testpaths = [ "tests",] + +[tool.coverage.report] +skip_empty = true + +[tool.hatch.build.targets.wheel] +packages = [ "arcade_calendly_api",] diff --git a/toolkits/calendly_api/tests/__init__.py b/toolkits/calendly_api/tests/__init__.py new file mode 100644 index 00000000..e69de29b