Build with LinxTime
Integrate commitment-based scheduling into your app. Create polls, signups, and bookings via API — with quorum logic built in.
Agent-Ready
Built for AI agents. MCP server, CLI daemon, and skill files for autonomous scheduling.
Realtime Events
SSE-powered live updates. Know instantly when RSVPs, votes, or confirmations happen.
Simple Integration
RESTful API with clear endpoints. Create a link in one call, share it, and let LinxTime handle the rest.
Getting Started
Go from zero to your first LinxTime integration in minutes.
Installation
npm
Install via npm (recommended)
npm install -g @linxtime/cliHomebrew
Install on macOS via Homebrew
brew install linxtime/tap/linxtimeBasic Workflow
Install CLI
Install the LinxTime CLI using npm or Homebrew
npm install -g @linxtime/cliAuthenticate
Request access and follow the approval flow
linxtime auth login
# Opens browser for approvalStart Daemon
Start the background daemon for real-time events
linxtime daemon startFirst Action
Create your first POLL and invite participants
linxtime links create "Team Lunch"
linxtime links invite <link-id> [email protected]Core Concepts
Understand how LinxTime models scheduling, voting, and event confirmation.
Core Models
Links & Options
Links are scheduling proposals. Options represent choices for date, location, budget, or activity.
Votable Aspects
DATE_TIME, LOCATION, BUDGET, ACTIVITY, RECURRENCE_PATTERN, and SESSION are all supported voting dimensions.
RSVP vs Options: The Two-System Model
RSVP System
Attendance Commitment
- Drives quorum toward confirmation
- YES/MAYBE/NO responses
- “I am coming to this event”
Options System
Preference Voting
- Helps the group find optimal choices
- Vote for preferred date, time, location, or budget
- “I prefer these options”
Event Types
Poll Links
Group voting on multiple options. Best for team dinners, meetings, or social events.
Common use cases:
- Team lunches
- Meeting scheduling
- Social events
Signup Links
Capacity-limited signups for workshops, classes, or limited-attendance events.
Common use cases:
- Workshops
- Training sessions
- Limited events
Booking Links
One-on-one booking pages similar to Calendly for individual time-slot reservations.
Common use cases:
- 1-on-1 meetings
- Consultations
- Interviews
Event Lifecycle
Link Created
Participants are invited and voting begins.
Participants Join
RSVP responses and option votes are collected.
Quorum Reached
Enough YES RSVPs to proceed (for confirmMode: IMMEDIATE).
Event Confirmed
The winning option is locked and a ConfirmedEvent is created.
Action Reference
Browse 21 supported actions via POST /v1/agent/act
Categories
developers.actionReference.actionsTitle
rsvp
Submit an attendance RSVP for a link. Drives quorum toward confirmation.
{
"action": "rsvp",
"linkId": "clx123abc",
"response": "YES",
"comment": "Looking forward to it!"
}Need more details?
Explore related sections for event payloads, auth scopes, and quotas.
SSE Event Stream
Stay synchronized with real-time events via Server-Sent Events. Perfect for keeping agents updated.
Connection
Endpoint
GET /v1/agent/streamAuthentication
Authorization: Bearer lt_agent_...Query Parameters
subscribeComma-separated list of events to receive (optional)payloadcompact or full - event detail levellastEventIdResume from specific event ID (reconnection)Event Types
link.invited
User invited to a link - triggers when negotiate.start or link.invite is called
{"event":"link.invited","linkId":"clx123abc"}option.added
New option suggested - triggers when option.suggest or negotiate.propose is called
{"event":"option.added","linkId":"clx123abc"}rsvp.submitted
RSVP submitted with quorum counts - triggers when RSVP is submitted
{"event":"rsvp.submitted","linkId":"clx123abc"}link.status_changed
Link status transitions - QUORUM_MET, CONFIRMED, FAILED, etc.
{"event":"link.status_changed","linkId":"clx123abc"}Integration Examples
const eventSource = new EventSource("/api/v1/agent/stream");Best Practices
- • Subscribe only to events your agent needs to minimize bandwidth
- • Implement automatic reconnection with exponential backoff
- • Use lastEventId to resume from the last received event
- • Handle connection errors gracefully and fall back to polling if needed
- • Use payload=compact for high-frequency monitoring
MCP Server
Connect LinxTime to Claude Desktop, OpenClaw, and other MCP-compatible AI systems.
Setup Options
Local MCP Server
Run LinxTime MCP server locally with full authentication and features.
Remote MCP Server
Connect to our hosted MCP server at mcp.linxtime.com for quick setup.
Configuration
# Install LinxTime CLI
npm install -g @linxtime/cli
linxtime auth login
linxtime mcp serveAvailable MCP Tools
linxtime_links_list
List user's scheduling links
linxtime_link_details
Get full link details and participants
linxtime_negotiate_start
Start multi-agent negotiation
linxtime_negotiate_propose
Propose new scheduling options
linxtime_negotiate_status
Check negotiation status
linxtime_rsvp
Submit RSVP responses
linxtime_vote_options
Vote on scheduling preferences
linxtime_suggest_option
Suggest new options
linxtime_calendar_availability
Query calendar free/busy
Ready to integrate?
Get started with MCP tools or explore other integration options.
Agent Authentication
Secure, scoped access tokens for AI agents. Request only the permissions you need.
Getting Started
1. Request Access
Run authentication flow and select scopes
2. User Approval
User reviews and approves agent access
3. Token Issued
Agent receives scoped access token
CLI Authentication
# Request agent access
linxtime auth login
# Opens browser for approval flow:
# 1. Select which scopes to grant
# 2. Approve access for your agent
# 3. CLI automatically receives and stores token
# Verify authentication
linxtime auth status
# ✓ Authenticated as: [email protected]
# ✓ Scopes: links:read, links:vote, links:suggest
# ✓ Expires: 2026-06-15T10:30:00ZScopes Reference
links:readRead link details, participants, options
links:voteVote on options, RSVP, register for signups
links:suggestSuggest new options
links:createCreate new links/events
links:manageInvite participants, manage settings
integrations:manageConnect/disconnect calendar providers
calendar:readQuery calendar availability
notifications:readRead and acknowledge notifications
Using Tokens
# Using the token in API calls
curl -H "Authorization: Bearer lt_agent_abc123..." \
-H "Content-Type: application/json" \
-d '{"action": "rsvp", "linkId": "clx123", "response": "YES"}' \
https://api.linxtime.com/v1/agent/actMulti-Profile Support
Multiple Accounts
Manage multiple LinxTime accounts or different permission sets with named profiles.
# Create named profiles for different contexts
linxtime auth login --profile work
linxtime auth login --profile personal
# Switch between profiles
linxtime links list --profile work
linxtime negotiate start --profile personal --title "Weekend Trip" --with [email protected]
# List profiles
linxtime auth profiles
# work (default)
# personalSecurity Best Practices
Token Security
- • Request only the scopes your agent actually needs
- • Store tokens securely - never commit them to version control
- • Monitor token expiration and refresh automatically
- • Revoke unused tokens via LinxTime settings
- • Use separate tokens for different environments (dev/prod)
Autonomy Levels
Control how much independence your agent has. Each action can specify an autonomy level to balance speed with human oversight.
Auto
Full autonomy
The agent acts immediately without human approval. Best for routine actions like voting on preferred options or acknowledging notifications.
Example scenarios:
option.voteAgent votes for the time slot that fits the user's calendar
notification.ackAgent acknowledges informational notifications automatically
rsvpAgent RSVPs YES to a recurring team standup
{
"action": "option.vote",
"linkId": "clx123abc",
"voteOptionIds": ["opt_friday"],
"autonomy": "auto"
}Suggest
Propose then confirm
The agent proposes an action and waits for the user to approve before executing. Ideal for actions with side effects like creating events or inviting participants.
Example scenarios:
link.createAgent suggests creating a team dinner poll before sending invites
link.inviteAgent proposes inviting specific colleagues and waits for confirmation
booking.reserve_forAgent suggests booking a slot on behalf of a guest
{
"action": "link.create",
"destination": "Team Dinner",
"eventType": "POLL",
"autonomy": "suggest"
}
// Agent shows proposal to user first
// Executes only after user confirmsNotify
Inform only
The agent informs the user about relevant events but takes no action. Suitable for monitoring event changes, new invitations, or quorum updates.
Example scenarios:
SSE streamAgent notifies user when an event reaches quorum
link.invitedAgent alerts user about a new event invitation for review
rsvp.submittedAgent reports that a participant changed their RSVP
// No action request — agent monitors SSE stream
// and surfaces relevant events to the user
// Example SSE event received:
{
"type": "rsvp.submitted",
"linkId": "clx123abc",
"data": { "rsvp": "YES", "quorumMet": true }
}
// Agent: "Quorum reached for Team Dinner!"Best Practice
Start with suggest for all actions, then selectively promote low-risk actions to auto as users build trust in the agent's behavior. Use notify for monitoring-only integrations where no action is needed.
Rate Limits
Rate limits protect the platform and ensure fair usage. All limits are applied per authentication token.
| Endpoint / Action | Limit | Window | Notes |
|---|---|---|---|
| POST /v1/agent/act | 60 requests | per minute | Per-token. Covers all actions. |
| GET /v1/agent/read/* | 120 requests | per minute | Read operations are more generous. |
| GET /v1/agent/stream | 5 connections | concurrent | SSE connections per token. Reconnects count. |
| link.create | 10 requests | per hour | Link creation is separately rate-limited. |
| link.invite | 30 requests | per hour | Invitation emails are throttled. |
| negotiate.start | 5 requests | per hour | Multi-agent negotiation sessions. |
Response Headers
Every API response includes rate limit headers so your agent can self-throttle:
Handling 429 Too Many Requests
When rate limited, the response includes a Retry-After header with the number of seconds to wait. Implement exponential backoff with jitter for production agents. The SSE stream will send a rate_limited event if the connection is throttled.
Code Examples
Get started quickly with examples for popular AI frameworks and direct API usage.
Frameworks
Claude Desktop
Connect LinxTime MCP server to Claude Desktop for natural language scheduling.
// ~/.claude/claude_desktop_config.json
{
"mcpServers": {
"linxtime": {
"command": "npx",
"args": ["-y", "@linxtime/mcp"],
"env": {
"LINXTIME_API_TOKEN": "lt_agent_xxx_yyy"
}
}
}
}
// Then in Claude Desktop:
// "Schedule a team lunch poll for next week,
// invite [email protected] and [email protected]"Links & Resources
Everything you need to build, debug, and deploy LinxTime agent integrations.
SKILL.md
Agent instruction file for MCP-compatible AI assistants. Drop this into your agent context.
GitHub Repository
Source code, issue tracker, and contribution guidelines for the LinxTime platform.
MCP Package
The @linxtime/mcp package on npm. Install it to connect any MCP-compatible agent.
API Specification
Full agent protocol specification with detailed endpoint documentation.
Support & Feedback
Questions, bug reports, or feature requests? Open an issue or reach out directly.