Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Calendar Mgmt

ASecurity

Google Calendar integration for end-user schedule management at runtime. Use when the user wants to view, create, update, or delete calendar events, or get a week summary ("show my schedule", "book a meeting tomorrow at 3pm", "what's on my calendar this week"). MVP supports Google Calendar API (OAuth2). On first use, guide Google Cloud OAuth setup, collect client_secret via hidden shell prompt, run setup.py --oauth, and store tokens in ~/.libragent/calendar_config.json. Not for LibrAgent agen...

10 stars
0 votes
0 copies
0 views
Added 9/28/2026
ai-agentspythongoshellbashapisecurity

Works with

cliapi

Security Analysis

A96/100
mediumInstalls packages at runtime which could introduce malicious dependencies

Scanned 9/28/2026

Install to Claude Code

$npx -y skills add fritzprix/libr-agent --skill calendar-mgmt --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Calendar Mgmt?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Calendar Mgmt
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fritzprix-calendar-mgmt/badge)](https://www.skillsdirectory.com/skills/fritzprix-calendar-mgmt)

More formats (shields.io, HTML) on the badges page.

Files
SKILL.md
---
name: calendar-mgmt
description: |
  Google Calendar integration for end-user schedule management at runtime.
  Use when the user wants to view, create, update, or delete calendar events, or get a week summary
  ("show my schedule", "book a meeting tomorrow at 3pm", "what's on my calendar this week").
  MVP supports Google Calendar API (OAuth2). On first use, guide Google Cloud OAuth setup,
  collect client_secret via hidden shell prompt, run setup.py --oauth, and store tokens in
  ~/.libragent/calendar_config.json. Not for LibrAgent agent cron automation (schedule / loop) or completion waits (call-me-back).
  Triggers on: "일정 보여줘", "캘린더 확인", "미팅 예약", "show my calendar", "schedule a meeting".
---

# Calendar Management

Manage the **user's** Google Calendar from LibrAgent — read and write events, summarize the week.

This is an **end-user daily work** skill (like `email-integration`, `telegram-cli`, `x-cli`). It is not for LibrAgent internal development or agent-only cron tasks.

## Not This Skill

| Skill | Use for |
| --- | --- |
| **schedule** / **loop** | Wake an assistant on a clock/cron (automation harness) |
| **call-me-back** | Resume this session on process/kanban/webhook completion |
| **email-integration** | Mail read/send (separate OAuth; IMAP, not Gmail API) |
| **recruit** / **boost** | Create or strengthen assistant configurations |

**CalDAV** (Nextcloud, Apple, Fastmail) is planned for a later release. MVP is **Google Calendar API only**.

## Path conventions

Paths are relative to this skill's Base Directory. Replace `<skill-base-dir>` with its absolute path in commands.

## Security (mandatory)

- **NEVER** ask for `client_secret`, access tokens, or refresh tokens in chat
- **NEVER** display or repeat `~/.libragent/calendar_config.json`
- Collect `client_secret` only via a **single hidden shell prompt** (`requireUserInput=true`, `inputType=password`), then pass `--client-secret-env LIBRAGENT_GOOGLE_CLIENT_SECRET`
- If the user pastes a secret in chat, do not echo it — run setup immediately

## Prerequisites

```bash
pip install google-auth google-auth-oauthlib google-api-python-client
```

On Linux/macOS use `pip3` if `pip` is unavailable.

## Workflow

### 1. Detect config

```bash
python "<skill-base-dir>/scripts/validate_config.py"
```

| Exit code | Meaning | Next step |
| --- | --- | --- |
| `0` | Connected | Step 3 |
| `1` | Not configured | Step 2 |
| `2` | Incomplete / expired / corrupt | Step 2 (see `action` in JSON) |

### 2. Setup (first time or re-auth)

See [references/google-setup.md](references/google-setup.md) for Google Cloud Console steps and [references/setup-flow.md](references/setup-flow.md) for the LibrAgent hidden-prompt pattern.

**Summary:**

1. User creates a **Desktop OAuth client** in Google Cloud (Calendar API enabled).
2. Collect `client_id` in chat (not secret).
3. Hidden prompt → set `LIBRAGENT_GOOGLE_CLIENT_SECRET`.
4. Run OAuth:

```bash
python "<skill-base-dir>/scripts/setup.py" \
  --client-id "YOUR_CLIENT_ID.apps.googleusercontent.com" \
  --client-secret-env LIBRAGENT_GOOGLE_CLIENT_SECRET \
  --oauth
```

Re-auth only (credentials already saved):

```bash
python "<skill-base-dir>/scripts/setup.py" --oauth
```

Reset and reconnect:

```bash
python "<skill-base-dir>/scripts/setup.py" \
  --reset \
  --client-id "..." \
  --client-secret-env LIBRAGENT_GOOGLE_CLIENT_SECRET \
  --oauth
```

A browser window opens for Google consent. Tokens persist under `~/.libragent/calendar_config.json`.

### 3. Dispatch action

Classify the request and call `calendar_cli.py`:

| Action | When | Command |
| --- | --- | --- |
| `week_summary` | "이번 주 일정", "my week" | `--action week_summary [--timezone Asia/Seoul]` |
| `list_events` | Range listing | `--action list_events --from ISO --to ISO [--limit N]` |
| `get_event` | One event by ID | `--action get_event --event-id ID` |
| `create_event` | Book / schedule | `--action create_event --title T --start ISO --end ISO [--location L] [--description D] [--attendees a@b.com,c@d.com]` |
| `update_event` | Reschedule / edit | `--action update_event --event-id ID [--title] [--start] [--end] ...` |
| `delete_event` | Cancel | `--action delete_event --event-id ID` |

Use RFC 3339 datetimes (e.g. `2026-06-12T15:00:00+09:00`). For all-day events add `--all-day` and use `YYYY-MM-DD` dates.

Examples: [references/request-patterns.md](references/request-patterns.md).

**Before create/update/delete:** confirm title, time, and timezone with the user when the request is ambiguous.

### 4. Present results

Format for humans per [references/output-format.md](references/output-format.md). Errors: [references/error-handling.md](references/error-handling.md).

## Config shape

```json
{
  "provider": "google",
  "google": {
    "client_id": "...",
    "client_secret": "...",
    "tokens": { }
  },
  "caldav": null
}
```

`caldav` is reserved for a future release.

## Guidelines

- **User calendar, not agent cron** — distinguish from `schedule` skill.
- **OAuth is multi-step** — similar friction to `telegram-cli`, not `email-integration` app passwords.
- **No Gmail API synergy in v1** — email uses IMAP; cross-skill "mail → event" uses agent reasoning, not shared tokens.
- **Confirm destructive actions** — delete and attendee-affecting updates.
- **Timezone explicit** — ask or infer user timezone for `week_summary` and new events.

## Builtin Tools

| Step | Tool |
| --- | --- |
| Validate config | `workspace__runCommand` → `validate_config.py` |
| Setup / OAuth | `workspace__runCommand` → `setup.py` |
| Calendar ops | `workspace__runCommand` → `calendar_cli.py` |
| Open OAuth help URL | `browser` (optional, user-facing docs only) |

## References

- [google-setup.md](references/google-setup.md) — Google Cloud OAuth client setup
- [setup-flow.md](references/setup-flow.md) — hidden prompt + setup commands
- [request-patterns.md](references/request-patterns.md) — natural language → actions
- [output-format.md](references/output-format.md) — presentation guidelines
- [error-handling.md](references/error-handling.md) — recovery steps
- [caldav-setup.md](references/caldav-setup.md) — future CalDAV (not in MVP)

Attribution

fritzprixfritzprix
View sourceMore from fritzprix →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

695601 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →