← Back to Skills Marketplace
samuel-wei

for HiJavis calendar-extractor via conversation

by SamuelWei · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ⚠ suspicious
56
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install calendar-extractor
Description
Periodically scans recent transcripts to extract calendar events and sends a daily summary of meetings to your iOS chat via push notifications.
README (SKILL.md)

Calendar Extractor

Periodically scan recent recording sessions, extract calendar events from transcripts, and push a daily summary to your iOS chat.

When to use

  • "today's meetings"
  • "calendar extract"
  • "今日会议"
  • "提取日历"

Core commands

# Register (first use)
node scripts/register.js \x3CuserId> \x3Cname>

# Run today's flow (also what the cron triggers)
node scripts/calendar-extractor.js \x3CuserId>

# Push management
node scripts/push-toggle.js on \x3CuserId> [--time HH:MM] [--channel iOS|Telegram|Discord|Slack]
node scripts/push-toggle.js off \x3CuserId>
node scripts/push-toggle.js status \x3CuserId>

Workflow

  1. Fetch recent transcripts via the LLM's javis_mcp tools (get_transcript_tool / search_transcripts_tool) and pass the relevant text to this script on stdin.
  2. Fetch from the configured HTTP endpoint (set HTTP_SOURCE_URL env var when registering the cron).
  3. Format output and POST to http://javis-server:8000/api/agent/push with {"skill": "calendar-extractor", "content": "\x3Cformatted>"} using OPENCLAW_GATEWAY_TOKEN for auth.

Push setup (cron registration)

When user requests scheduled push:

Step 1: Save preferences

node scripts/push-toggle.js on \x3CuserId> --time \x3CHH:MM> --channel \x3Cchannel>

Step 2: Create cron job via openclaw CLI

openclaw cron add \
  --name "calendar-extractor-\x3CuserId>" \
  --schedule "0 8,18 * * *" \
  --tz "America/Los_Angeles" \
  --channel \x3Cchannel> \
  --to "\x3Cchannel-target-id>" \
  --session isolated \
  --command "Run /calendar-extractor: execute node scripts/calendar-extractor.js \x3CuserId>, format output nicely. Then POST to http://javis-server:8000/api/agent/push with JSON body {\"skill\": \"calendar-extractor\", \"content\": \"\x3Cformatted output>\"} using the gateway bearer token for auth."

Step 3: Confirm to user

Push is set up; results land in iOS agent chat under /calendar-extractor.

Supported channels: iOS, Telegram, Discord, Slack

Notes

  • Data stored in data/users/\x3CuserId>.json; external HTTP source configured separately via HTTP_SOURCE_URL env var.
  • Run npm install before first run (none needed beyond Node 18+ built-ins, but the engines field gates the runtime).
  • User IDs only allow letters, digits, -, _ (path-traversal guard in data.js).
  • Additional data sources picked but NOT auto-wired in main(): pure-local-state and user-typed-text. The template only emits code for the first 2 sources (transcripts + external-http). To activate the others, hand-edit scripts/calendar-extractor.js:
    • For pure-local-state: const userState = fs.existsSync(safeUserPath(userId)) ? readJson(safeUserPath(userId)) : {};
    • For user-typed-text: const text = process.argv.slice(3).join(' ');
  • TZ caveat: cron tz is hardcoded to America/Los_Angeles at registration time. If you travel, re-register with the new tz: node scripts/push-toggle.js off \x3CuserId>, then node scripts/push-toggle.js on \x3CuserId> --tz \x3Cnew-tz>, then re-run the openclaw cron add command above with the new --tz.
  • Multi-channel cron: each non-iOS channel (Telegram, Discord, Slack) needs a SEPARATE openclaw cron add with its own --channel and --to \x3Cchannel-target-id>. iOS push is automatic via the /api/agent/push call (no separate cron needed for iOS).
  • Session-finalize trigger (NOT implemented): the "fire on each finished recording" requirement is out-of-scope for skill-creator's periodic-push template. It requires server-side wiring: javis-server watches audio_recordings.session_completed flips and POSTs a synthetic prompt to the user's openclaw container /v1/responses to invoke this script with the finalized session id. Track as a follow-up in javis-server.
Usage Guidance
Review this before installing. Only use it if you are comfortable with scheduled access to recent meeting transcripts, with transcript-derived output being pushed to the configured service, and with an administrator-controlled HTTP_SOURCE_URL. Prefer a version that extracts only calendar fields, validates or allowlists network destinations, uses explicit opt-in triggers, and lets you choose timezone and delivery targets.
Capability Tags
requires-oauth-tokenrequires-sensitive-credentials
Capability Assessment
Purpose & Capability
The stated purpose is to extract calendar events from transcripts, but the main script emits the raw stdin transcript together with arbitrary JSON fetched from HTTP_SOURCE_URL rather than minimizing output to extracted calendar fields.
Instruction Scope
The skill documents transcript collection, external HTTP fetching, and posting formatted results to an internal push endpoint, but the scope is broad for sensitive meeting transcripts and includes common trigger phrases that could activate in ordinary conversation.
Install Mechanism
Installation is a small Node skill with no declared dependencies; the static exec finding comes from a push-off helper that removes this skill's OpenClaw cron job using a sanitized userId, which is purpose-aligned but still grants cron-management authority.
Credentials
Fetching from a fully environment-controlled HTTP_SOURCE_URL without validation, allowlisting, timeout, or size limits is overbroad for a calendar extraction workflow, even though the network behavior is partly documented.
Persistence & Privilege
The skill supports scheduled cron execution and push delivery of transcript-derived content, with a hardcoded America/Los_Angeles example and limited user-facing controls over data minimization, destination trust, or timing.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install calendar-extractor
  3. After installation, invoke the skill by name or use /calendar-extractor
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Initial release of calendar-extractor. - Scans recent recording session transcripts to extract calendar events. - Pushes a daily summary of meetings to iOS chat. - Supports trigger phrases in English and Chinese: "today's meetings", "calendar extract", "今日会议", "提取日历". - Allows user setup for scheduled daily push notifications via multiple channels (iOS, Telegram, Discord, Slack). - Provides CLI scripts for registration, daily summary execution, and push notification management. - Includes notes on data storage, configuration, and multi-timezone/multi-channel setup.
Metadata
Slug calendar-extractor
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is for HiJavis calendar-extractor via conversation?

Periodically scans recent transcripts to extract calendar events and sends a daily summary of meetings to your iOS chat via push notifications. It is an AI Agent Skill for Claude Code / OpenClaw, with 56 downloads so far.

How do I install for HiJavis calendar-extractor via conversation?

Run "/install calendar-extractor" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is for HiJavis calendar-extractor via conversation free?

Yes, for HiJavis calendar-extractor via conversation is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does for HiJavis calendar-extractor via conversation support?

for HiJavis calendar-extractor via conversation is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created for HiJavis calendar-extractor via conversation?

It is built and maintained by SamuelWei (@samuel-wei); the current version is v0.1.0.

💬 Comments