Crawler Summary

consulting-assistant answer-first brief

A Telegram bot with an agent system powered by CrewAI (4 agents), designed to provide consulting on the implementation of AI in business based on its own knowledge base AI Consulting Assistant **RU summary:** Telegram AI-ассистент для бизнес-консультаций по внедрению AI. Проект объединяет multi-agent workflow на CrewAI, RAG-поиск по кейсам в ChromaDB, синхронизацию кейсов из Notion, память диалогов и обработку голосовых сообщений через Whisper. Overview AI Consulting Assistant is a Telegram-based portfolio project that demonstrates how an LLM application can support business consult Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 10/9/2026.

Freshness

Last checked 10/9/2026

Best For

consulting-assistant is best for crewai, multi-agent workflows where OpenClaw compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, GITHUB REPOS, runtime-metrics, public facts pack

Claim this agent
Agent DossierGITHUB REPOSSafety: 66/100

consulting-assistant

A Telegram bot with an agent system powered by CrewAI (4 agents), designed to provide consulting on the implementation of AI in business based on its own knowledge base AI Consulting Assistant **RU summary:** Telegram AI-ассистент для бизнес-консультаций по внедрению AI. Проект объединяет multi-agent workflow на CrewAI, RAG-поиск по кейсам в ChromaDB, синхронизацию кейсов из Notion, память диалогов и обработку голосовых сообщений через Whisper. Overview AI Consulting Assistant is a Telegram-based portfolio project that demonstrates how an LLM application can support business consult

OpenClawself-declared

Public facts

5

Change events

1

Artifacts

0

Freshness

Oct 9, 2026

Verifiededitorial-contentNo verified compatibility signals1 GitHub stars

Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 10/9/2026.

1 GitHub starsTrust evidence available

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Oct 9, 2026

Vendor

Grinegor

Artifacts

0

Benchmarks

0

Last release

Unpublished

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 10/9/2026.

Setup snapshot

  1. 1

    Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Grinegor

profilemedium
Observed Oct 9, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed Oct 9, 2026Source linkProvenance
Adoption (1)

Adoption signal

1 GitHub stars

profilemedium
Observed Oct 9, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB REPOS

Extracted files

0

Examples

6

Snippets

0

Languages

python

Executable Examples

mermaid

flowchart LR
    U["Telegram User"] --> B["Telegram Bot<br/>telegram_bot.py"]
    B --> O["Orchestrator<br/>orchestrator.py"]
    O --> C["Chat Mode<br/>direct OpenAI response"]
    O --> K["Consultation Mode<br/>CrewAI workflow"]
    B --> S["Save Case Mode<br/>scribe.py"]
    S --> N["Notion Database"]
    O --> M["Conversation Memory<br/>memory.py"]
    M --> DB["ChromaDB"]

mermaid

flowchart LR
    Q["Business Question"] --> R["Researcher Agent"]
    R --> T["Business Cases Search<br/>rag_tool.py"]
    T --> H["Hybrid Retrieval<br/>Semantic + BM25 + RRF"]
    H --> V["ChromaDB<br/>business_cases"]
    H --> X["Optional Cross-Encoder<br/>ms-marco-MiniLM-L-6-v2"]
    V --> H
    X --> R
    R --> A["Consultant Agent"]
    A --> C["Critic Agent"]
    C --> F["Final Telegram Answer"]

mermaid

flowchart LR
    N["Notion DB<br/>business cases"] --> SY["Sync scripts<br/>notion_to_chromadb.py<br/>sync_notion_to_chromadb.py"]
    SY --> CH["Chunking<br/>700 words / 120 overlap"]
    CH --> E["OpenAI Embeddings<br/>text-embedding-3-small"]
    E --> C["ChromaDB<br/>business_cases collection"]
    C --> R["Hybrid RAG Search<br/>semantic + BM25 + RRF"]
    R --> A["CrewAI Researcher"]

bash

git clone https://github.com/grinegor/consulting-assistant.git
cd consulting-assistant
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt

bash

cp .env.example .env

env

OPENAI_API_KEY=your_openai_api_key
TELEGRAMBOT_API_KEY=your_telegram_bot_token
NOTION_API_KEY=your_notion_integration_secret
NOTION_DATABASE_ID=your_notion_database_id
CHROMA_PATH=./chroma_db
BUSINESS_CASES_COLLECTION=business_cases
MEMORY_COLLECTION=conversation_memory
LOG_LEVEL=INFO
RAG_ENABLE_RERANKING=false

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB REPOS

Docs source

GITHUB REPOS

Editorial quality

ready

A Telegram bot with an agent system powered by CrewAI (4 agents), designed to provide consulting on the implementation of AI in business based on its own knowledge base AI Consulting Assistant **RU summary:** Telegram AI-ассистент для бизнес-консультаций по внедрению AI. Проект объединяет multi-agent workflow на CrewAI, RAG-поиск по кейсам в ChromaDB, синхронизацию кейсов из Notion, память диалогов и обработку голосовых сообщений через Whisper. Overview AI Consulting Assistant is a Telegram-based portfolio project that demonstrates how an LLM application can support business consult

Full README

AI Consulting Assistant

RU summary: Telegram AI-ассистент для бизнес-консультаций по внедрению AI. Проект объединяет multi-agent workflow на CrewAI, RAG-поиск по кейсам в ChromaDB, синхронизацию кейсов из Notion, память диалогов и обработку голосовых сообщений через Whisper.

Overview

AI Consulting Assistant is a Telegram-based portfolio project that demonstrates how an LLM application can support business consulting workflows around AI adoption. The bot can answer regular chat questions, run a structured multi-agent consultation, search a local business-case knowledge base with RAG, save new cases to Notion, and keep lightweight conversation memory.

The project is intentionally MVP-sized, but it includes production-oriented building blocks: environment-based configuration, Docker support, CI, automated tests with mocks, local persistent ChromaDB storage, and clear documentation.

Problem

Small teams exploring AI adoption often ask broad questions such as "How can we automate support?" or "Are there real examples of AI agents in sales?" A useful assistant should not only generate generic recommendations; it should ground answers in reusable cases, expose risks, and let the team grow its own knowledge base over time.

This project addresses that workflow with:

  • a Telegram interface for quick access;
  • business consultation mode with Researcher, Consultant, and Critic agents;
  • RAG search over curated business cases;
  • Notion as a lightweight case-management backend;
  • local ChromaDB for embeddings and retrieval.

Key Features

  • Telegram bot UX: main menu, chat mode, business consultation mode, save-case flow, help/info screens.
  • Multi-agent consultation: CrewAI Researcher, Consultant, and Critic agents collaborate on business AI questions.
  • Hybrid RAG knowledge base: ChromaRAGTool retrieves AI business cases with OpenAI embeddings, BM25 lexical search, Reciprocal Rank Fusion, and optional cross-encoder reranking.
  • Notion case storage: structured case creation through the Notion API.
  • Notion -> ChromaDB sync: full rebuild and incremental sync scripts keep RAG data fresh.
  • Conversation memory: previous user turns are stored and retrieved from ChromaDB.
  • Voice input: Telegram voice messages are transcribed with Whisper before being routed to chat or consultation mode.
  • Photo analysis in chat mode: image messages can be sent to the OpenAI vision-capable chat endpoint.
  • Tests and CI: pytest suite with fakes/mocks, plus GitHub Actions.
  • Offline evals: synthetic portfolio-safe RAG eval with baseline vs improved retrieval, precision@5, recall@5, and optional LLM-as-judge.
  • Dockerized runtime: Dockerfile and Compose setup with a ChromaDB volume.

Architecture

flowchart LR
    U["Telegram User"] --> B["Telegram Bot<br/>telegram_bot.py"]
    B --> O["Orchestrator<br/>orchestrator.py"]
    O --> C["Chat Mode<br/>direct OpenAI response"]
    O --> K["Consultation Mode<br/>CrewAI workflow"]
    B --> S["Save Case Mode<br/>scribe.py"]
    S --> N["Notion Database"]
    O --> M["Conversation Memory<br/>memory.py"]
    M --> DB["ChromaDB"]
flowchart LR
    Q["Business Question"] --> R["Researcher Agent"]
    R --> T["Business Cases Search<br/>rag_tool.py"]
    T --> H["Hybrid Retrieval<br/>Semantic + BM25 + RRF"]
    H --> V["ChromaDB<br/>business_cases"]
    H --> X["Optional Cross-Encoder<br/>ms-marco-MiniLM-L-6-v2"]
    V --> H
    X --> R
    R --> A["Consultant Agent"]
    A --> C["Critic Agent"]
    C --> F["Final Telegram Answer"]

More details are available in docs/architecture.md.

Multi-Agent Workflow

The consultation mode is designed as a three-step review loop:

  1. Researcher searches the RAG knowledge base for relevant business cases, implementation patterns, tools, and outcomes.
  2. Consultant turns the retrieved context into a practical recommendation with suggested architecture, expected results, and next steps.
  3. Critic reviews the recommendation for missing evidence, implementation risks, hidden costs, data readiness, and compliance concerns.

This structure is intentionally more conservative than a single prompt because it separates retrieval, recommendation, and risk review.

RAG Pipeline

Business cases are stored in Notion and synchronized into a local ChromaDB collection. Long records are split into 700-word chunks with 120-word overlap before indexing:

flowchart LR
    N["Notion DB<br/>business cases"] --> SY["Sync scripts<br/>notion_to_chromadb.py<br/>sync_notion_to_chromadb.py"]
    SY --> CH["Chunking<br/>700 words / 120 overlap"]
    CH --> E["OpenAI Embeddings<br/>text-embedding-3-small"]
    E --> C["ChromaDB<br/>business_cases collection"]
    C --> R["Hybrid RAG Search<br/>semantic + BM25 + RRF"]
    R --> A["CrewAI Researcher"]

See docs/rag_pipeline.md for implementation notes.

Notion Integration

The bot can save a new business case from Telegram into Notion using scribe.py. A case includes title, category, use case, tools, summary, implementation details, pros, cons, source, and date.

Notion synchronization is handled by:

  • notion_to_chromadb.py for a full rebuild of the business_cases ChromaDB collection;
  • sync_notion_to_chromadb.py for incremental sync based on Notion last_edited_time.

The Notion database id is configured through NOTION_DATABASE_ID and is not committed to the repository.

Voice Input via Whisper

Telegram voice messages are downloaded as audio files, transcribed with Whisper, and then routed through the selected mode:

  • chat mode sends the transcript to direct chat;
  • consultation mode sends it to the multi-agent workflow;
  • auto mode chooses based on keywords.

The voice path is kept inside telegram_bot.py, while pure helper logic is tested separately.

Tech Stack

  • Python 3.11
  • python-telegram-bot
  • OpenAI API: chat, embeddings, Whisper transcription
  • CrewAI
  • ChromaDB
  • rank_bm25 for lexical retrieval
  • structlog for structured application logs
  • optional sentence-transformers cross-encoder reranking
  • Notion API
  • pytest and pytest-asyncio
  • Docker and Docker Compose
  • GitHub Actions CI

Setup

Clone the repository and create a virtual environment:

git clone https://github.com/grinegor/consulting-assistant.git
cd consulting-assistant
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt

Create local environment variables:

cp .env.example .env

Fill in .env:

OPENAI_API_KEY=your_openai_api_key
TELEGRAMBOT_API_KEY=your_telegram_bot_token
NOTION_API_KEY=your_notion_integration_secret
NOTION_DATABASE_ID=your_notion_database_id
CHROMA_PATH=./chroma_db
BUSINESS_CASES_COLLECTION=business_cases
MEMORY_COLLECTION=conversation_memory
LOG_LEVEL=INFO
RAG_ENABLE_RERANKING=false

Run the bot:

python telegram_bot.py

Sync Notion cases into ChromaDB:

python sync_notion_to_chromadb.py

For a full rebuild:

python notion_to_chromadb.py

Docker Setup

Build and run the Telegram bot service:

docker compose up --build

The Compose setup:

  • reads secrets and ids from .env;
  • mounts ./chroma_db into the container for local ChromaDB persistence;
  • includes a local process healthcheck that does not call Telegram, OpenAI, or Notion;
  • runs python telegram_bot.py.

Stop the service:

docker compose down

Tests

Run the full test suite:

pytest

Run the compact CI-style command:

python -m pytest -q

Run eval and stress subsets:

.venv/bin/python -m pytest -q -m eval
.venv/bin/python -m pytest -q -m stress

Compile-check project files:

python -m compileall -q telegram_bot.py scribe.py agents.py digest.py main.py memory.py notion_to_chromadb.py orchestrator.py rag_tool.py sync_notion_to_chromadb.py tests

Tests use mocks/fakes instead of real Telegram, OpenAI, Notion, CrewAI, or ChromaDB calls.

Offline RAG Evals

Run the deterministic portfolio-safe eval:

.venv/bin/python -m evals.portfolio_rag_eval --skip-llm

This writes evals/latest_local_result.json and prints a compact summary. The dataset contains 25 synthetic business questions and 12 synthetic case documents, so it is safe to publish and fast enough for local CI-style checks. Metrics are computed over the top five retrieved documents:

  • precision@5: fraction of the five retrieved documents that match the expected ids.
  • recall@5: fraction of expected ids that appear in the top five.

Optional LLM-as-judge:

.venv/bin/python -m evals.portfolio_rag_eval

The judge only calls OpenAI when OPENAI_API_KEY is set. If the key is missing, the judge is reported as skipped; deterministic precision/recall still run.

Optional reranking can be enabled locally:

pip install -r requirements-rerank.txt
RAG_ENABLE_RERANKING=true python telegram_bot.py

Latest local result:

  • Command: .venv/bin/python -m evals.portfolio_rag_eval --skip-llm
  • Dataset: synthetic_portfolio_rag_v1, 25 questions, 12 documents.
  • Baseline retrieval: precision@5 = 0.192, recall@5 = 0.92.
  • Improved retrieval: precision@5 = 0.208, recall@5 = 1.0.
  • Improvement: +0.016 precision@5, +0.08 recall@5.
  • LLM judge: skipped, reason disabled by --skip-llm.
  • Report: evals/latest_local_result.json.

Roadmap

  • Add a web dashboard for reviewing synced cases and retrieval quality.
  • Add scheduled Notion synchronization.
  • Add structured observability for agent runs and retrieval traces.
  • Add richer eval datasets for consultation quality and risk coverage.
  • Add deployment manifests for a small cloud VM or container platform.

Known Limitations

  • MVP-grade local deployment, not a production SaaS backend.
  • ChromaDB is local by default and should be backed up or replaced for production.
  • No enterprise auth, RBAC, tenant isolation, or audit log yet.
  • No production monitoring, alerting, or tracing yet.
  • Telegram markdown output may require extra escaping for arbitrary model output.
  • Notion schema expectations are currently encoded in the sync scripts.

More detail is documented in docs/limitations.md.

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

MissingGITHUB REPOS

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/contract"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW
Machine Appendix

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/snapshot",
    "contractUrl": "https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/contract",
    "trustUrl": "https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/trust"
  },
  "curlExamples": [
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/snapshot\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/contract\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_REPOS",
      "generatedAt": "2026-10-09T09:09:00.519Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    },
    {
      "key": "crewai",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "multi-agent",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"
}

Facts JSON

[
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Grinegor",
    "href": "https://github.com/grinegor/consulting-assistant",
    "sourceUrl": "https://github.com/grinegor/consulting-assistant",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-10-09T04:28:06.769Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/contract",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-10-09T04:28:06.769Z",
    "isPublic": true
  },
  {
    "factKey": "traction",
    "category": "adoption",
    "label": "Adoption signal",
    "value": "1 GitHub stars",
    "href": "https://github.com/grinegor/consulting-assistant",
    "sourceUrl": "https://github.com/grinegor/consulting-assistant",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-10-09T04:28:06.769Z",
    "isPublic": true
  },
  {
    "factKey": "docs_crawl",
    "category": "integration",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/trust",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-grinegor-consulting-assistant/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub · GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  }
]

Sponsored

Ads related to consulting-assistant and adjacent AI workflows.