Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add TerminalSkills/skills --skill cal-comgit clone --depth 1 https://github.com/TerminalSkills/skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/terminalskills/skills/cal-com)<a href="https://agentmods.dev/skills/terminalskills/skills/cal-com"><img src="https://agentmods.dev/badge/skills/terminalskills/skills/cal-com/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/terminalskills/skills/cal-com"><img src="https://agentmods.dev/badge/skills/terminalskills/skills/cal-com.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Privilege Escalation · line 337 Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.Fix: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
- medium Data Exfiltration · line 91 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00043 | $0.02765 |
| Opus 5.5 | $0.00017 | $0.01106 |
| Sonnet 5.5 | $0.00009 | $0.00553 |
| Haiku 4.5 | $0.00004 | $0.00277 |
Grade A, and why
cal-com scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 376 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Cal.com — Scheduling Infrastructure
Overview
Cal.com, the open-source scheduling platform for building booking and appointment systems. Helps developers integrate Cal.com's embed widgets, REST API, and webhooks to add scheduling capabilities to their applications.
Instructions
Embed Widget
Add a booking widget to any website:
// src/components/BookingWidget.tsx — Embed Cal.com scheduling in a React app
import Cal, { getCalApi } from "@calcom/embed-react";
import { useEffect } from "react";
export function BookingWidget() {
useEffect(() => {
(async () => {
const cal = await getCalApi();
// Configure the embed appearance
cal("ui", {
theme: "light",
styles: { branding: { brandColor: "#6366f1" } },
hideEventTypeDetails: false,
layout: "month_view", // "month_view" | "week_view" | "column_view"
});
})();
}, []);
return (
<Cal
calLink="your-team/discovery-call" // Your Cal.com event link
style={{ width: "100%", height: "100%", overflow: "scroll" }}
config={{
layout: "month_view",
name: "Customer Name", // Pre-fill guest name
email: "[email protected]", // Pre-fill guest email
notes: "Interested in Enterprise plan",
}}
/>
);
}
// Floating button that opens calendar in a popup
export function BookingButton() {
useEffect(() => {
(async () => {
const cal = await getCalApi();
cal("floatingButton", {
calLink: "your-team/discovery-call",
buttonText: "Book a Demo",
buttonColor: "#6366f1",
buttonTextColor: "#ffffff",
buttonPosition: "bottom-right",
});
})();
}, []);
return null; // The floating button renders itself
}
REST API Integration
Manage bookings, event types, and availability programmatically:
// src/cal/client.ts — Cal.com API client for server-side operations
const CAL_API_URL = "https://api.cal.com/v2";
const CAL_API_KEY = process.env.CAL_API_KEY!;
async function calFetch(path: string, options?: RequestInit) {
const response = await fetch(`${CAL_API_URL}${path}`, {
...options,
headers: {
"Content-Type": "application/json",
"cal-api-version": "2024-08-13", // Pin API version for stability
Authorization: `Bearer ${CAL_API_KEY}`,
...options?.headers,
},
});
if (!response.ok) {
const error = await response.json();
throw new Error(`Cal.com API error: ${error.message}`);
}
return response.json();
}
// Create a new event type (e.g., "30-min Discovery Call")
async function createEventType(params: {
title: string;
slug: string;
lengthInMinutes: number;
description?: string;
locations?: { type: string; link?: string }[];
}) {
return calFetch("/event-types", {
method: "POST",
body: JSON.stringify({
title: params.title,
slug: params.slug,
lengthInMinutes: params.lengthInMinutes,
description: params.description,
locations: params.locations ?? [
{ type: "integrations:google:meet" }, // Default: Google Meet
],
bookingFields: [
{ name: "company", type: "text", label: "Company Name", required: true },
{ name: "teamSize", type: "select", label: "Team Size",
options: ["1-10", "11-50", "51-200", "200+"], required: true },
],
}),
});
}
// Get available time slots for a date range
async function getAvailability(params: {
eventTypeId: number;
startTime: string; // ISO 8601
endTime: string;
timeZone: string;
}) {
const query = new URLSearchParams({
eventTypeId: String(params.eventTypeId),
startTime: params.startTime,
endTime: params.endTime,
timeZone: params.timeZone,
});
return calFetch(`/slots?${query}`);
}
// Create a booking
async function createBooking(params: {
eventTypeId: number;
start: string; // ISO 8601 datetime
attendee: { name: string; email: string; timeZone: string };
metadata?: Record<string, string>;
}) {
return calFetch("/bookings", {
method: "POST",
body: JSON.stringify({
eventTypeId: params.eventTypeId,
start: params.start,
attendee: params.attendee,
metadata: params.metadata,
language: "en",
}),
});
}
// Cancel a booking
async function cancelBooking(bookingUid: string, reason?: string) {
return calFetch(`/bookings/${bookingUid}/cancel`, {
method: "POST",
body: JSON.stringify({ reason }),
});
}
// Reschedule a booking
async function rescheduleBooking(bookingUid: string, newStart: string) {
return calFetch(`/bookings/${bookingUid}/reschedule`, {
method: "POST",
body: JSON.stringify({ start: newStart }),
});
}
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 376 lines · 43 tokens per session scan A ed089b2f8dfc
cal-com is a skill published in the GitHub repository TerminalSkills/skills (177 stars, last pushed today), licensed Apache-2.0. It adds 43 tokens to every session and 2,765 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.
Other skills, from other repositories
mem0-oss-to-platform
Plan, then execute, a migration of a project from the mem0 open-source / self-hosted SDK (local Memory class) to the mem0 Platform / hosted SDK (MemoryClient). TRIGGER when: the developer wants to move, switch, or migrate mem0 off OSS/self-hosted to the hosted API, e.g. "migrate my mem0 setup to the platform", "switch…
agui-dotnet-protobuf
Use the protobuf wire transport (instead of the default Server-Sent Events) for an AG-UI connection with the AG-UI .NET SDK — a compact binary event stream negotiated via the Accept header. USE FOR: making an AGUIChatClient prefer protobuf by wiring an AGUIEventStreamHandler with ProtobufEventStreamFormatter (then…
azure-mgmt-botservice-dotnet
Azure Resource Manager SDK for Bot Service in .NET. Management plane operations for creating and managing Azure Bot resources, channels (Teams, DirectLine, Slack), and connection settings. Triggers: "Bot Service", "BotResource", "Azure Bot", "DirectLine channel", "Teams channel", "bot management .NET", "create bot".
fastapi-router-py
Create FastAPI routers with CRUD operations, authentication dependencies, and proper response models. Use when building REST API endpoints, creating new routes, implementing CRUD operations, or adding authenticated endpoints in FastAPI applications.
migrate-segw-to-rap
Reverse-engineer a SEGW-built OData V2 service (MPC/DPC/MPCEXT/DPCEXT) into a modern RAP V4 service — tables, CDS views (interface + projection), behavior definitions, draft entities, service definition + binding. Use when asked to "migrate this SEGW service to RAP", "convert OData V2 to V4 RAP", "modernize this…
telnyx-messaging-hosted-curl
Set up hosted SMS numbers, toll-free verification, and RCS messaging. Use when migrating numbers or enabling rich messaging features. This skill provides REST API (curl) examples.