{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"tool_dola","slug":"dola","name":"Dola","type":"agent","url":"http://hidola.ai","page_url":"https://unfragile.ai/dola","categories":["chatbots-assistants"],"tags":[],"pricing":{"model":"freemium","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"tool_dola__cap_0","uri":"capability://text.generation.language.natural.language.scheduling.request.parsing","name":"natural language scheduling request parsing","description":"Interprets freeform conversational scheduling requests (e.g., 'Can we meet next Tuesday at 2pm?' or 'I'm free Wednesday afternoon, how about you?') and extracts structured calendar parameters (date, time, duration, attendees, location) using LLM-based intent recognition. The system likely uses prompt engineering or fine-tuned models to disambiguate relative time references ('next week', 'afternoon'), handle timezone-aware parsing, and identify implicit constraints from conversation context.","intents":["Parse ambiguous scheduling language without forcing users into rigid form-filling","Extract meeting details from multi-turn conversational exchanges where scheduling is negotiated incrementally","Identify attendees and their availability constraints mentioned casually in chat","Handle natural language time expressions that vary by region and context"],"best_for":["Remote teams conducting scheduling negotiations in real-time chat","Freelancers and consultants who receive meeting requests via messenger","Non-technical users who avoid calendar apps and prefer conversational interfaces"],"limitations":["Ambiguous or context-dependent time references may require clarification rounds, adding latency to scheduling","Timezone handling depends on user profile configuration; no automatic timezone detection from device or IP","Complex recurring patterns ('every other Tuesday except holidays') likely require explicit confirmation rather than one-shot parsing","Sarcasm, conditional language ('if you're free'), and hypothetical scheduling requests may be misinterpreted"],"requires":["LLM API access (OpenAI, Anthropic, or proprietary model)","User timezone configured in profile or inferred from calendar system","Messenger platform with message history accessible to bot"],"input_types":["natural language text from messenger","conversation history context (prior messages in thread)"],"output_types":["structured scheduling data (ISO 8601 dates, times, attendee list, location)","confidence scores for ambiguous fields","clarification questions for the user"],"categories":["text-generation-language","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_dola__cap_1","uri":"capability://tool.use.integration.cross.messenger.bot.deployment.and.message.routing","name":"cross-messenger bot deployment and message routing","description":"Deploys a single bot instance across multiple messenger platforms (WhatsApp, Telegram, Facebook Messenger, etc.) using a unified message abstraction layer that normalizes platform-specific APIs and webhook formats. The system likely uses adapter/bridge pattern to translate incoming messages from each platform into a canonical message format, process them through a shared scheduling engine, and route responses back to the originating platform with platform-specific formatting (rich text, buttons, etc.).","intents":["Reach users on their preferred messaging platform without requiring separate bot instances per platform","Maintain consistent scheduling behavior across fragmented communication stacks","Reduce development overhead by abstracting platform-specific API differences","Enable users to schedule meetings via any messenger they already use"],"best_for":["Teams with users distributed across multiple messaging platforms","Organizations wanting to deploy a single scheduling bot without platform lock-in","Builders creating multi-platform chatbot infrastructure"],"limitations":["Rich UI features (interactive buttons, inline calendars) vary by platform; fallback to text-only on platforms with limited formatting","Rate limits and quota enforcement differ per platform, requiring per-platform throttling logic","Message delivery guarantees and retry semantics are platform-specific; no unified delivery confirmation","Webhook authentication and security models differ (Telegram tokens vs Facebook signature verification), increasing attack surface","No indication of Slack, Microsoft Teams, or email integration — limited to consumer messengers"],"requires":["API credentials for each target messenger platform (WhatsApp Business API token, Telegram bot token, etc.)","Webhook endpoint exposed to the internet with HTTPS and proper authentication","Message queue or event bus for async message processing (likely Redis or similar)","Platform-specific SDK or HTTP client library for each messenger"],"input_types":["webhook payloads from messenger platforms (JSON, form-encoded)","user messages with platform-specific metadata (user ID, chat ID, timestamp)"],"output_types":["formatted messages sent back to messenger platforms","platform-specific rich elements (buttons, inline calendars where supported)","delivery status and error responses"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_dola__cap_2","uri":"capability://tool.use.integration.calendar.system.synchronization.and.write.back","name":"calendar system synchronization and write-back","description":"Syncs scheduled meetings from messenger conversations back to the user's primary calendar system (Google Calendar, Outlook, Apple Calendar, etc.) using OAuth2-based authentication and calendar API clients. The system likely polls or uses webhooks to detect conflicts, handles bidirectional sync (calendar changes reflected back in messenger), and manages attendee notifications through the calendar system's native invite mechanism rather than custom email.","intents":["Automatically create calendar events from messenger scheduling without manual copy-paste","Detect double-booking and scheduling conflicts before confirming meetings","Ensure attendees receive official calendar invites with proper RSVP tracking","Keep messenger conversation and calendar system in sync as plans change"],"best_for":["Users with existing calendar workflows who want to reduce friction without abandoning their calendar system","Teams that need official calendar records and attendee tracking for compliance or audit purposes","Organizations with calendar-dependent workflows (resource booking, room reservations)"],"limitations":["Sync latency between messenger and calendar system (likely 5-30 seconds) means rapid scheduling changes may cause race conditions","Calendar system permissions are user-specific; bot cannot access other attendees' calendars to check availability without explicit delegation","Recurring event patterns and exceptions are complex to parse from natural language and may require manual calendar editing","Calendar API rate limits (Google Calendar: 1M requests/day per user) may be exceeded in high-volume scheduling scenarios","No built-in handling of calendar system downtime or API failures; unclear if scheduling requests are queued or dropped","Timezone handling depends on calendar system's timezone database; daylight saving time transitions may cause sync errors"],"requires":["OAuth2 credentials for target calendar system (Google, Microsoft, Apple)","User must grant bot permission to read/write calendar events","Calendar API client library (Google Calendar API, Microsoft Graph, CalDAV client)","Persistent storage for OAuth tokens and calendar sync state"],"input_types":["structured scheduling data from NLP parser (dates, times, attendees, location)","calendar system API responses (existing events, availability, conflicts)"],"output_types":["calendar events created in target system","attendee invitations sent through calendar system","conflict warnings and availability summaries","sync status and error messages"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_dola__cap_3","uri":"capability://planning.reasoning.multi.turn.conversational.scheduling.negotiation","name":"multi-turn conversational scheduling negotiation","description":"Maintains conversation state across multiple message exchanges to handle iterative scheduling negotiations (e.g., 'I'm not free then, how about Thursday?' → 'Thursday at 2pm works' → 'Can we do 3pm instead?'). The system tracks proposed times, rejected options, and attendee constraints across turns, using conversation history as context to disambiguate references and avoid re-asking settled details. Likely implemented via conversation state machine or prompt-based context management with LLM.","intents":["Handle back-and-forth scheduling without requiring users to re-state constraints each turn","Track which time slots have been proposed, rejected, or tentatively accepted","Identify when consensus is reached and trigger calendar event creation","Clarify ambiguous references ('that time' or 'the other option') using conversation history"],"best_for":["Teams with complex scheduling needs requiring multiple rounds of negotiation","Scenarios where attendee availability is uncertain and requires iterative refinement","Users who prefer natural conversation flow over form-based scheduling"],"limitations":["Conversation state is stored in memory or session storage; unclear if state persists across messenger app restarts or if users must complete scheduling in one session","No explicit conflict resolution strategy when attendees propose incompatible times; bot may loop or require human intervention","Context window limitations (LLM token limits) may cause bot to 'forget' earlier parts of long scheduling negotiations","No built-in timeout or escalation if scheduling negotiation stalls (e.g., attendees keep rejecting proposed times)","Sarcasm or hypothetical statements ('I wish I could make Tuesday') may be misinterpreted as actual constraints"],"requires":["Conversation state storage (in-memory, Redis, or database)","LLM with sufficient context window to maintain multi-turn history (GPT-4, Claude, etc.)","Message history accessible from messenger platform","Timeout mechanism to detect stalled negotiations"],"input_types":["sequential user messages from messenger","prior conversation history and proposed scheduling options","calendar availability data for attendees"],"output_types":["clarifying questions when ambiguous","summary of proposed times and constraints","confirmation message when consensus reached","calendar event creation trigger"],"categories":["planning-reasoning","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_dola__cap_4","uri":"capability://data.processing.analysis.attendee.availability.inference.and.conflict.detection","name":"attendee availability inference and conflict detection","description":"Infers attendee availability from calendar data, conversation context, and explicit statements ('I'm free Wednesday afternoon'), then detects scheduling conflicts before confirming meetings. The system likely queries attendee calendars (if accessible via OAuth delegation) or uses stated availability windows, compares proposed meeting times against existing events, and alerts users to conflicts. May use heuristics to infer availability from patterns (e.g., 'no meetings before 9am' based on historical data).","intents":["Prevent double-booking by checking attendee calendars before confirming meetings","Identify optimal meeting times that work for all attendees without manual availability checking","Warn users when proposed times conflict with existing commitments","Reduce back-and-forth by suggesting times that work for everyone upfront"],"best_for":["Teams with shared calendar visibility and OAuth-delegated access","Scenarios where preventing double-booking is critical (client meetings, team standups)","Organizations with predictable availability patterns (core hours, no-meeting blocks)"],"limitations":["Attendee calendar access requires explicit OAuth delegation; cannot check availability for users who haven't granted permission","Calendar data is point-in-time; changes made after availability check but before meeting confirmation may cause conflicts","No access to implicit constraints (commute time, meeting prep time, lunch breaks) unless explicitly configured","Availability inference from conversation ('I'm usually free afternoons') is probabilistic and may be wrong","No support for resource-based constraints (room availability, equipment booking) — only attendee calendars","Timezone-aware conflict detection depends on correct timezone configuration for all attendees"],"requires":["OAuth access to attendee calendars (Google Calendar, Outlook, etc.)","Calendar API client to query attendee availability","Attendee list with calendar identifiers (email addresses, calendar IDs)","Timezone information for all attendees"],"input_types":["proposed meeting time (date, duration, timezone)","attendee list with calendar identifiers","calendar API responses (existing events, busy/free blocks)"],"output_types":["conflict detection results (conflicts found, attendees affected)","alternative time suggestions that work for all attendees","availability summary (e.g., 'all attendees free 2-3pm Thursday')"],"categories":["data-processing-analysis","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_dola__cap_5","uri":"capability://automation.workflow.meeting.confirmation.and.attendee.notification","name":"meeting confirmation and attendee notification","description":"Confirms scheduling decisions with attendees via messenger and sends official calendar invites through the calendar system's native mechanism. The system likely sends a confirmation message in the original messenger thread (with meeting details, attendees, location), then triggers calendar invite generation through the calendar API, ensuring attendees receive both messenger notification and official calendar invite with RSVP tracking.","intents":["Confirm meeting details with all attendees before creating calendar event","Send official calendar invites with RSVP tracking through calendar system","Provide meeting details (time, location, attendees) in messenger for quick reference","Create audit trail of scheduling decision in both messenger and calendar"],"best_for":["Teams that need official calendar records and RSVP tracking","Scenarios where confirmation is required before committing to meetings","Organizations with compliance or audit requirements for meeting records"],"limitations":["Attendees may receive duplicate notifications (messenger + calendar invite), causing notification fatigue","Calendar invite delivery depends on calendar system's email infrastructure; no guarantee of delivery","RSVP tracking only works for attendees who use the same calendar system; external attendees may not have RSVP capability","No built-in handling of RSVP responses (accept/decline/tentative) back into messenger conversation","Confirmation message in messenger may be missed if user has notifications disabled","No support for meeting cancellation or rescheduling through messenger after confirmation"],"requires":["Calendar API access to create events and send invites","Attendee email addresses for calendar invite recipients","Messenger platform's message formatting capabilities for readable confirmation","Calendar system's email delivery infrastructure"],"input_types":["confirmed meeting details (date, time, duration, location, attendees)","attendee list with email addresses","meeting organizer information"],"output_types":["confirmation message in messenger with meeting details","calendar event created in organizer's calendar","calendar invites sent to attendees","RSVP tracking data"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_dola__cap_6","uri":"capability://data.processing.analysis.timezone.aware.scheduling.and.time.normalization","name":"timezone-aware scheduling and time normalization","description":"Normalizes time expressions across different timezones, converting user-provided times (e.g., '2pm' or 'Tuesday afternoon') into UTC or a canonical timezone, then converting back to each attendee's local timezone for display and calendar sync. The system likely maintains timezone configuration per user, uses timezone libraries (pytz, moment-tz) to handle daylight saving time transitions, and displays times in both local and UTC formats to avoid confusion.","intents":["Schedule meetings across distributed teams in different timezones without manual conversion","Prevent timezone-related scheduling errors (e.g., 'Tuesday 2pm' in different timezones)","Display meeting times in each attendee's local timezone for clarity","Handle daylight saving time transitions correctly"],"best_for":["Distributed teams across multiple timezones","Global organizations with attendees in different regions","Scenarios where timezone errors could cause missed meetings"],"limitations":["Timezone configuration is user-specific; if user's timezone is incorrect, all scheduling will be offset","Ambiguous time expressions ('afternoon') are normalized to a default timezone (likely UTC or user's configured timezone), which may be wrong for attendees in other timezones","Daylight saving time transitions are handled by timezone library, but edge cases (meetings scheduled during DST transition) may cause confusion","No automatic timezone detection from device or IP; relies on user profile configuration","Calendar system's timezone handling may differ from Dola's; sync errors possible if calendar system uses different timezone database","Recurring meetings across DST boundaries may have incorrect times after transition"],"requires":["Timezone library (pytz, moment-tz, or similar) with up-to-date DST rules","User timezone configuration in profile","Attendee timezone information (from profile or calendar system)","UTC or canonical timezone for internal time representation"],"input_types":["user-provided time expressions (relative: 'Tuesday afternoon', absolute: '2pm', '14:00')","user and attendee timezone identifiers (IANA timezone names: 'America/New_York', 'Europe/London')"],"output_types":["normalized UTC time for internal storage","local times for each attendee (e.g., '2pm EST' / '7pm GMT')","calendar event times in attendee's local timezone"],"categories":["data-processing-analysis","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_dola__cap_7","uri":"capability://memory.knowledge.persistent.conversation.history.and.scheduling.audit.trail","name":"persistent conversation history and scheduling audit trail","description":"Stores conversation history and scheduling decisions in a persistent data store (likely database), enabling users to reference past scheduling discussions, track how meetings were scheduled, and retrieve meeting details from messenger history. The system likely indexes conversations by date, attendees, and meeting topic, and links scheduling records to calendar events for audit purposes.","intents":["Reference past scheduling discussions without scrolling through messenger history","Retrieve meeting details (time, location, attendees) from messenger conversation history","Track how scheduling decisions were made for audit or dispute resolution","Search for meetings by attendee, date, or topic"],"best_for":["Teams with compliance or audit requirements for meeting records","Users who need to reference scheduling discussions months later","Organizations with high meeting volume where messenger history scrolling is impractical"],"limitations":["Conversation history storage requires persistent database; unclear if data is encrypted at rest or in transit","Privacy implications of storing messenger conversations; unclear if users can delete conversation history","Search functionality likely limited to basic text search; no semantic search across scheduling intent","Conversation history may diverge from actual calendar events if manual changes are made in calendar system","No indication of data retention policy; unclear how long conversation history is stored","Cross-messenger history is fragmented; scheduling discussions split across multiple messengers may not be linked"],"requires":["Persistent database (SQL or NoSQL) for conversation storage","Encryption for sensitive conversation data","Indexing strategy for efficient search and retrieval","Data retention and privacy policy"],"input_types":["messenger messages and conversation metadata","scheduling decisions and calendar event data","user and attendee information"],"output_types":["conversation history search results","scheduling audit trail (who proposed what, when decisions were made)","linked calendar event and conversation records"],"categories":["memory-knowledge","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_dola__cap_8","uri":"capability://automation.workflow.freemium.pricing.model.with.usage.based.upgrade.triggers","name":"freemium pricing model with usage-based upgrade triggers","description":"Implements a freemium model where basic scheduling functionality is free during beta, with upgrade triggers likely based on usage metrics (number of meetings scheduled per month, number of attendees, number of messenger platforms). The system likely tracks usage per user and displays upgrade prompts when usage approaches paid tier thresholds, without blocking functionality during beta.","intents":["Reduce friction for new users to try the product without payment","Collect usage data to inform pricing strategy and feature prioritization","Identify power users and high-value segments for targeted upsell","Build network effects by enabling free scheduling across teams"],"best_for":["Early-stage products in beta seeking rapid adoption and usage data","Teams wanting to test scheduling automation before committing to paid plan","Builders evaluating freemium monetization models"],"limitations":["Free tier may attract low-intent users who churn before converting to paid","Usage tracking and upgrade triggers are not transparent; unclear what metrics trigger paid tier","No indication of paid tier pricing, features, or limits; unclear what users are paying for","Beta status means pricing and features may change, creating uncertainty for users planning to adopt","Free tier may be unsustainable long-term if usage grows without corresponding conversion to paid"],"requires":["Usage tracking infrastructure (analytics, metrics collection)","Billing system for paid tier (Stripe, Paddle, or similar)","Upgrade prompt UI in messenger","Pricing and feature tier definition"],"input_types":["user activity metrics (meetings scheduled, attendees, messenger platforms used)","user profile and account information"],"output_types":["usage reports and analytics","upgrade prompts and pricing information","billing and subscription records"],"categories":["automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":43,"verified":false,"data_access_risk":"high","permissions":["LLM API access (OpenAI, Anthropic, or proprietary model)","User timezone configured in profile or inferred from calendar system","Messenger platform with message history accessible to bot","API credentials for each target messenger platform (WhatsApp Business API token, Telegram bot token, etc.)","Webhook endpoint exposed to the internet with HTTPS and proper authentication","Message queue or event bus for async message processing (likely Redis or similar)","Platform-specific SDK or HTTP client library for each messenger","OAuth2 credentials for target calendar system (Google, Microsoft, Apple)","User must grant bot permission to read/write calendar events","Calendar API client library (Google Calendar API, Microsoft Graph, CalDAV client)"],"failure_modes":["Ambiguous or context-dependent time references may require clarification rounds, adding latency to scheduling","Timezone handling depends on user profile configuration; no automatic timezone detection from device or IP","Complex recurring patterns ('every other Tuesday except holidays') likely require explicit confirmation rather than one-shot parsing","Sarcasm, conditional language ('if you're free'), and hypothetical scheduling requests may be misinterpreted","Rich UI features (interactive buttons, inline calendars) vary by platform; fallback to text-only on platforms with limited formatting","Rate limits and quota enforcement differ per platform, requiring per-platform throttling logic","Message delivery guarantees and retry semantics are platform-specific; no unified delivery confirmation","Webhook authentication and security models differ (Telegram tokens vs Facebook signature verification), increasing attack surface","No indication of Slack, Microsoft Teams, or email integration — limited to consumer messengers","Sync latency between messenger and calendar system (likely 5-30 seconds) means rapid scheduling changes may cause race conditions","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.31666666666666665,"quality":0.67,"ecosystem":0.2,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.1,"match_graph":0.28,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:30.283Z","last_scraped_at":"2026-04-05T13:23:42.561Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=dola","compare_url":"https://unfragile.ai/compare?artifact=dola"}},"signature":"XeQnJLzabR2oZQCTbAnwAEW7wSfZbm8i3CDlXOVbyb25Ah+YEcUWXqF9ZOLF69X/7fZ8JlZ+cvep3FaJ+Q1cAQ==","signedAt":"2026-06-22T10:41:28.329Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/dola","artifact":"https://unfragile.ai/dola","verify":"https://unfragile.ai/api/v1/verify?slug=dola","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}