Rank
70
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
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
> **CRITICAL RULES - READ BEFORE PROCESSING ANY EMAIL** --- name: email-to-calendar version: 1.13.1 description: Extract calendar events from emails and create calendar entries. Supports two modes: (1) Direct inbox monitoring - scans all emails for events, or (2) Forwarded emails - processes emails you forward to a dedicated address. Features smart onboarding, event tracking, pending invite reminders, undo support, silent activity logging, deadline detection with separate Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.
Freshness
Last checked 4/15/2026
Best For
email-to-calendar is best for extract, all, the workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack
> **CRITICAL RULES - READ BEFORE PROCESSING ANY EMAIL** --- name: email-to-calendar version: 1.13.1 description: Extract calendar events from emails and create calendar entries. Supports two modes: (1) Direct inbox monitoring - scans all emails for events, or (2) Forwarded emails - processes emails you forward to a dedicated address. Features smart onboarding, event tracking, pending invite reminders, undo support, silent activity logging, deadline detection with separate
Public facts
4
Change events
1
Artifacts
0
Freshness
Apr 15, 2026
Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Apr 15, 2026
Vendor
Tonimelisma
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.
Setup snapshot
git clone https://github.com/tonimelisma/email-to-calendar.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
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.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Tonimelisma
Protocol compatibility
OpenClaw
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
bash
SCRIPTS_DIR="$HOME/.openclaw/workspace/skills/email-to-calendar/scripts" # Get a single email by ID (PREFERRED) "$SCRIPTS_DIR/email_read.sh" --email-id "<messageId>" # Search with body content included "$SCRIPTS_DIR/email_search.sh" --query "in:inbox is:unread" --max 20 --include-body
bash
SCRIPTS_DIR="$HOME/.openclaw/workspace/skills/email-to-calendar/scripts"
CONFIG_FILE="$HOME/.config/email-to-calendar/config.json"
INDEX_FILE="$HOME/.openclaw/workspace/memory/email-extractions/index.json"
# Start activity logging
"$SCRIPTS_DIR/activity_log.sh" start-session
# Check email mode
EMAIL_MODE=$(jq -r '.email_mode // "forwarded"' "$CONFIG_FILE")
# Check if email was already processed
EMAIL_ID="<the email message ID>"
if jq -e ".extractions[] | select(.email_id == \"$EMAIL_ID\")" "$INDEX_FILE" > /dev/null 2>&1; then
"$SCRIPTS_DIR/activity_log.sh" log-skip --email-id "$EMAIL_ID" --subject "Subject" --reason "Already processed"
exit 0
fi
# Load ignore/auto-create patterns
IGNORE_PATTERNS=$(jq -r '.event_rules.ignore_patterns[]' "$CONFIG_FILE")
AUTO_CREATE_PATTERNS=$(jq -r '.event_rules.auto_create_patterns[]' "$CONFIG_FILE")text
I found the following potential events: 1. ~~ELAC Meeting (Feb 2, Monday at 8:15 AM)~~ - SKIP (matches ignore pattern) 2. **Team Offsite (Feb 2-6, Sun-Thu)** - PENDING 3. **Staff Development Day (Feb 12, Wednesday)** - AUTO-CREATE Reply with numbers to create (e.g., '2, 3'), 'all', or 'none'.
bash
# Record pending invites using add_pending.sh
"$SCRIPTS_DIR/add_pending.sh" \
--email-id "$EMAIL_ID" \
--email-subject "$EMAIL_SUBJECT" \
--events-json '[{"title":"Event Name","date":"2026-02-15","time":"14:00","status":"pending"}]'bash
# Step 1: Check local tracking first (fast)
TRACKED=$("$SCRIPTS_DIR/lookup_event.sh" --email-id "$EMAIL_ID")
if [ "$(echo "$TRACKED" | jq 'length')" -gt 0 ]; then
EXISTING_EVENT_ID=$(echo "$TRACKED" | jq -r '.[0].event_id')
fi
# Step 2: If not found, try summary match
if [ -z "$EXISTING_EVENT_ID" ]; then
TRACKED=$("$SCRIPTS_DIR/lookup_event.sh" --summary "$EVENT_TITLE")
fi
# Step 3: Fall back to calendar search using wrapper script
if [ -z "$EXISTING_EVENT_ID" ]; then
"$SCRIPTS_DIR/calendar_search.sh" --calendar-id "$CALENDAR_ID" --from "${EVENT_DATE}T00:00:00" --to "${EVENT_DATE}T23:59:59"
fibash
# Create new event
"$SCRIPTS_DIR/create_event.sh" \
"$CALENDAR_ID" \
"Event Title" \
"February 11, 2026" \
"9:00 AM" \
"5:00 PM" \
"Description" \
"$ATTENDEE_EMAILS" \
"" \
"$EMAIL_ID"
# Update existing event (pass event_id as 8th parameter)
"$SCRIPTS_DIR/create_event.sh" \
"$CALENDAR_ID" \
"Updated Title" \
"February 11, 2026" \
"10:00 AM" \
"6:00 PM" \
"Updated description" \
"$ATTENDEE_EMAILS" \
"$EXISTING_EVENT_ID" \
"$EMAIL_ID"Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB OPENCLEW
Editorial quality
ready
> **CRITICAL RULES - READ BEFORE PROCESSING ANY EMAIL** --- name: email-to-calendar version: 1.13.1 description: Extract calendar events from emails and create calendar entries. Supports two modes: (1) Direct inbox monitoring - scans all emails for events, or (2) Forwarded emails - processes emails you forward to a dedicated address. Features smart onboarding, event tracking, pending invite reminders, undo support, silent activity logging, deadline detection with separate
CRITICAL RULES - READ BEFORE PROCESSING ANY EMAIL
- NEVER CALL
gogDIRECTLY - ALWAYS use wrapper scripts (create_event.sh,email_read.sh, etc.). Directgogcalls bypass tracking and cause duplicates. THIS IS NON-NEGOTIABLE.- IGNORE CALENDAR NOTIFICATIONS - DO NOT process emails from
calendar-notification@google.com(Accepted:, Declined:, Tentative:, etc.). These are responses to existing invites, NOT new events. Runprocess_calendar_replies.shto archive them.- ALWAYS ASK BEFORE CREATING - Never create calendar events without explicit user confirmation in the current conversation
- CHECK IF ALREADY PROCESSED - Before processing any email, check
processed_emailsin index.json- READ CONFIG FIRST - Load and apply
ignore_patternsandauto_create_patternsbefore presenting events- READ MEMORY.MD - Check for user preferences stored from previous sessions
- INCLUDE ALL CONFIGURED ATTENDEES - When creating/updating/deleting events, always include attendees from config with
--attendeesflag (and--send-updates allif supported)- CHECK TRACKED EVENTS FIRST - Use
lookup_event.sh --email-idto find existing events before calendar search (faster, more reliable)- TRACK ALL CREATED EVENTS - The
create_event.shscript automatically tracks events; use tracked IDs for updates/deletions- SHOW DAY-OF-WEEK - Always include the day of week when presenting events for user verification
⛔ FORBIDDEN: DO NOT USE
gogCOMMANDS DIRECTLY ⛔WRONG:
gog calendar create ...orgog gmail ...RIGHT:"$SCRIPTS_DIR/create_event.sh" ...or"$SCRIPTS_DIR/email_read.sh" ...Direct CLI calls bypass event tracking, break duplicate detection, and cause duplicate events. ALL operations MUST go through the wrapper scripts in
scripts/.
Extract calendar events and action items from emails, present them for review, and create/update calendar events with duplicate detection and undo support.
First-time setup: See SETUP.md for configuration options and smart onboarding.
IMPORTANT: Before you can extract events, you must read the email body. Use the wrapper scripts.
SCRIPTS_DIR="$HOME/.openclaw/workspace/skills/email-to-calendar/scripts"
# Get a single email by ID (PREFERRED)
"$SCRIPTS_DIR/email_read.sh" --email-id "<messageId>"
# Search with body content included
"$SCRIPTS_DIR/email_search.sh" --query "in:inbox is:unread" --max 20 --include-body
Note on stale forwards: Don't use newer_than:1d because it checks the email's original date header, not when it was received. Process all UNREAD emails and rely on the "already processed" check.
SCRIPTS_DIR="$HOME/.openclaw/workspace/skills/email-to-calendar/scripts"
CONFIG_FILE="$HOME/.config/email-to-calendar/config.json"
INDEX_FILE="$HOME/.openclaw/workspace/memory/email-extractions/index.json"
# Start activity logging
"$SCRIPTS_DIR/activity_log.sh" start-session
# Check email mode
EMAIL_MODE=$(jq -r '.email_mode // "forwarded"' "$CONFIG_FILE")
# Check if email was already processed
EMAIL_ID="<the email message ID>"
if jq -e ".extractions[] | select(.email_id == \"$EMAIL_ID\")" "$INDEX_FILE" > /dev/null 2>&1; then
"$SCRIPTS_DIR/activity_log.sh" log-skip --email-id "$EMAIL_ID" --subject "Subject" --reason "Already processed"
exit 0
fi
# Load ignore/auto-create patterns
IGNORE_PATTERNS=$(jq -r '.event_rules.ignore_patterns[]' "$CONFIG_FILE")
AUTO_CREATE_PATTERNS=$(jq -r '.event_rules.auto_create_patterns[]' "$CONFIG_FILE")
DIRECT mode: Scan all unread emails for event indicators (dates, times, meeting keywords).
FORWARDED mode: Only process emails with forwarded indicators (Fwd:, forwarded message headers).
Read the email and extract events as structured data. Include for each event:
URL Extraction Rule: ALWAYS scan the email for URLs and include the most relevant one at the BEGINNING of the event description.
Scan the email for deadline patterns that indicate action is required before the event:
Common Deadline Patterns:
When a deadline is found:
Apply event rules, then present with numbered selection:
I found the following potential events:
1. ~~ELAC Meeting (Feb 2, Monday at 8:15 AM)~~ - SKIP (matches ignore pattern)
2. **Team Offsite (Feb 2-6, Sun-Thu)** - PENDING
3. **Staff Development Day (Feb 12, Wednesday)** - AUTO-CREATE
Reply with numbers to create (e.g., '2, 3'), 'all', or 'none'.
STOP AND WAIT for user response.
After presenting, record pending invites for follow-up reminders:
# Record pending invites using add_pending.sh
"$SCRIPTS_DIR/add_pending.sh" \
--email-id "$EMAIL_ID" \
--email-subject "$EMAIL_SUBJECT" \
--events-json '[{"title":"Event Name","date":"2026-02-15","time":"14:00","status":"pending"}]'
ALWAYS check before creating any event:
# Step 1: Check local tracking first (fast)
TRACKED=$("$SCRIPTS_DIR/lookup_event.sh" --email-id "$EMAIL_ID")
if [ "$(echo "$TRACKED" | jq 'length')" -gt 0 ]; then
EXISTING_EVENT_ID=$(echo "$TRACKED" | jq -r '.[0].event_id')
fi
# Step 2: If not found, try summary match
if [ -z "$EXISTING_EVENT_ID" ]; then
TRACKED=$("$SCRIPTS_DIR/lookup_event.sh" --summary "$EVENT_TITLE")
fi
# Step 3: Fall back to calendar search using wrapper script
if [ -z "$EXISTING_EVENT_ID" ]; then
"$SCRIPTS_DIR/calendar_search.sh" --calendar-id "$CALENDAR_ID" --from "${EVENT_DATE}T00:00:00" --to "${EVENT_DATE}T23:59:59"
fi
Use LLM semantic matching for fuzzy duplicates (e.g., "Team Offsite" vs "Team Offsite 5-6pm").
Use create_event.sh (recommended) - handles date parsing, tracking, and changelog:
# Create new event
"$SCRIPTS_DIR/create_event.sh" \
"$CALENDAR_ID" \
"Event Title" \
"February 11, 2026" \
"9:00 AM" \
"5:00 PM" \
"Description" \
"$ATTENDEE_EMAILS" \
"" \
"$EMAIL_ID"
# Update existing event (pass event_id as 8th parameter)
"$SCRIPTS_DIR/create_event.sh" \
"$CALENDAR_ID" \
"Updated Title" \
"February 11, 2026" \
"10:00 AM" \
"6:00 PM" \
"Updated description" \
"$ATTENDEE_EMAILS" \
"$EXISTING_EVENT_ID" \
"$EMAIL_ID"
For direct gog commands and advanced options, see references/gog-commands.md.
Email disposition (mark as read and/or archive) is handled automatically by create_event.sh based on config settings. No manual step needed - emails are dispositioned after event creation.
To manually disposition an email:
"$SCRIPTS_DIR/disposition_email.sh" --email-id "$EMAIL_ID"
To process calendar reply emails (accepts, declines, tentatives):
"$SCRIPTS_DIR/process_calendar_replies.sh" # Process all
"$SCRIPTS_DIR/process_calendar_replies.sh" --dry-run # Preview only
# End activity session
"$SCRIPTS_DIR/activity_log.sh" end-session
--rrule "RRULE:FREQ=DAILY;COUNT=N"Format event descriptions in this order:
ACTION WARNING (if deadline exists):
*** ACTION REQUIRED: [ACTION] BY [DATE] ***
Event Link (if URL found):
Event Link: [URL]
Event Details: Information extracted from the email
Example WITH deadline:
*** ACTION REQUIRED: GET TICKETS BY FEB 15 ***
Event Link: https://example.com/tickets
Spring Concert at Downtown Theater
Doors open at 7 PM
VIP meet & greet available
Example WITHOUT deadline:
Event Link: https://example.com/event
Spring Concert at Downtown Theater
Doors open at 7 PM
Consider it a duplicate if:
Always update existing events rather than creating duplicates.
When an event has a deadline (RSVP, registration, ticket purchase, etc.), create TWO calendar events:
1. Main Event (as normal, but with warning in description):
"$SCRIPTS_DIR/create_event.sh" \
"$CALENDAR_ID" \
"Spring Concert" \
"March 1, 2026" \
"7:00 PM" \
"10:00 PM" \
"*** ACTION REQUIRED: GET TICKETS BY FEB 15 ***
Event Link: https://example.com/tickets
Spring Concert at Downtown Theater
Doors open at 7 PM" \
"$ATTENDEE_EMAILS" \
"" \
"$EMAIL_ID"
2. Deadline Reminder Event (separate event on the deadline date):
# Use create_event.sh for deadline reminders too (ensures tracking)
"$SCRIPTS_DIR/create_event.sh" \
"$CALENDAR_ID" \
"DEADLINE: Get tickets for Spring Concert" \
"2026-02-15" \
"09:00" \
"09:30" \
"Action required: Get tickets
Event Link: https://example.com/tickets
Main event: Spring Concert on March 1, 2026" \
"" \
"" \
"$EMAIL_ID"
Deadline Event Properties:
DEADLINE: [Action] for [Event Name]When creating events with deadlines, send a notification email to alert the user:
# Load config
CONFIG_FILE="$HOME/.config/email-to-calendar/config.json"
USER_EMAIL=$(jq -r '.deadline_notifications.email_recipient // .gmail_account' "$CONFIG_FILE")
NOTIFICATIONS_ENABLED=$(jq -r '.deadline_notifications.enabled // false' "$CONFIG_FILE")
# Send notification if enabled (using wrapper script)
if [ "$NOTIFICATIONS_ENABLED" = "true" ]; then
"$SCRIPTS_DIR/email_send.sh" \
--to "$USER_EMAIL" \
--subject "ACTION REQUIRED: Get tickets for Spring Concert by Feb 15" \
--body "A calendar event has been created that requires your action.
Event: Spring Concert
Date: March 1, 2026
Deadline: February 15, 2026
Action Required: Get tickets
Link: https://example.com/tickets
Calendar events created:
- Main event: Spring Concert (March 1)
- Deadline reminder: DEADLINE: Get tickets for Spring Concert (Feb 15)
---
This notification was sent by the email-to-calendar skill."
fi
When to send notifications:
deadline_notifications.enabled is true in config# Start session
"$SCRIPTS_DIR/activity_log.sh" start-session
# Log skipped emails
"$SCRIPTS_DIR/activity_log.sh" log-skip --email-id "abc" --subject "Newsletter" --reason "No events"
# Log events
"$SCRIPTS_DIR/activity_log.sh" log-event --email-id "def" --title "Meeting" --action created
# End session
"$SCRIPTS_DIR/activity_log.sh" end-session
# Show recent activity
"$SCRIPTS_DIR/activity_log.sh" show --last 3
Changes can be undone within 24 hours:
# List recent changes
"$SCRIPTS_DIR/changelog.sh" list --last 10
# List undoable changes
"$SCRIPTS_DIR/undo.sh" list
# Undo most recent change
"$SCRIPTS_DIR/undo.sh" last
# Undo specific change
"$SCRIPTS_DIR/undo.sh" --change-id "chg_20260202_143000_001"
Events not immediately actioned are tracked for reminders:
# Add pending invites (after presenting events to user)
"$SCRIPTS_DIR/add_pending.sh" \
--email-id "$EMAIL_ID" \
--email-subject "Party Invite" \
--events-json '[{"title":"Birthday Party","date":"2026-02-15","time":"14:00","status":"pending"}]'
# List pending invites (JSON)
"$SCRIPTS_DIR/list_pending.sh"
# Human-readable summary
"$SCRIPTS_DIR/list_pending.sh" --summary
# Update reminder tracking
"$SCRIPTS_DIR/list_pending.sh" --summary --update-reminded
# Auto-dismiss after 3 ignored reminders
"$SCRIPTS_DIR/list_pending.sh" --summary --auto-dismiss
# Look up by email ID
"$SCRIPTS_DIR/lookup_event.sh" --email-id "19c1c86dcc389443"
# Look up by summary
"$SCRIPTS_DIR/lookup_event.sh" --summary "Staff Development"
# List all tracked events
"$SCRIPTS_DIR/lookup_event.sh" --list
# Validate events exist (removes orphans)
"$SCRIPTS_DIR/lookup_event.sh" --email-id "abc" --validate
| File | Purpose |
|------|---------|
| ~/.config/email-to-calendar/config.json | User configuration |
| ~/.openclaw/workspace/memory/email-extractions/ | Extracted data |
| ~/.openclaw/workspace/memory/email-extractions/index.json | Processing index |
| ~/.openclaw/workspace/memory/email-to-calendar/events.json | Event tracking |
| ~/.openclaw/workspace/memory/email-to-calendar/pending_invites.json | Pending invites |
| ~/.openclaw/workspace/memory/email-to-calendar/activity.json | Activity log |
| ~/.openclaw/workspace/memory/email-to-calendar/changelog.json | Change history |
| ~/.openclaw/workspace/skills/email-to-calendar/scripts/ | Utility scripts |
| ~/.openclaw/workspace/skills/email-to-calendar/MEMORY.md | User preferences |
Handles common formats:
All times assumed local timezone. Time zone info preserved in descriptions.
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/snapshot"
curl -s "https://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/contract"
curl -s "https://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
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
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
70
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
Traction
No public download signal
Freshness
Updated 2d ago
Rank
70
AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs
Traction
No public download signal
Freshness
Updated 6d ago
Rank
70
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!
Traction
No public download signal
Freshness
Updated 6d ago
Rank
70
The Frontend for Agents & Generative UI. React + Angular
Traction
No public download signal
Freshness
Updated 23d ago
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://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-04-17T02:16:17.680Z"
}
},
"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": "extract",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "all",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "the",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "be",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:extract|supported|profile capability:all|supported|profile capability:the|supported|profile capability:be|supported|profile"
}Facts JSON
[
{
"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": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Tonimelisma",
"href": "https://github.com/tonimelisma/email-to-calendar",
"sourceUrl": "https://github.com/tonimelisma/email-to-calendar",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T02:15:46.889Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T02:15:46.889Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/tonimelisma-email-to-calendar/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 email-to-calendar and adjacent AI workflows.