Openavail
Let agents propose meetings first, then earn direct booking under your calendar rules, permission scopes, and audit trail.
This listing identifies a third-party MCP server. MCPBundles is not affiliated with, sponsored by, or endorsed by the service or its operator unless stated on this page.
https://openavail.com/https://mcp.openavail.com/mcpThis server may ask you to sign in when your AI client connects.
Last probed Nov 2, 2026 · mcp.openavail.com
22tools discovered
Get
Create
List
Confirm
Search
Other capabilities
Get Agent Context
get-agent-contextRequires read_freebusy. Start here. Returns backing agent, granted permissions, derived capabilities, calendars, schedule rules, meeting classes, setup warnings, unavailable features, and pending notifications.
Add to workspace[
{
"name": "get-agent-context",
"description": "Requires read_freebusy. Start here. Returns backing agent, granted permissions, derived capabilities, calendars, schedule rules, meeting classes, setup warnings, unavailable features, and pending notifications.",
"inputSchema": {
"type": "object",
"properties": {
"owner_email": {
"type": "string",
"format": "email"
}
},
"additionalProperties": false
}
},
{
"name": "list-calendars",
"description": "Requires read_freebusy. List calendar owners or calendars for a specific owner visible to this agent.",
"inputSchema": {
"type": "object",
"properties": {
"owner_email": {
"type": "string",
"format": "email"
}
},
"additionalProperties": false
}
},
{
"name": "get-schedule-rules",
"description": "Requires read_freebusy. Get working hours, slot interval, and daily meeting limits for a calendar owner.",
"inputSchema": {
"type": "object",
"properties": {
"owner_email": {
"type": "string",
"format": "email"
}
},
"additionalProperties": false
}
},
{
"name": "list-meeting-classes",
"description": "Requires read_freebusy. List active meeting classes available to this agent.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
},
{
"name": "search-availability",
"description": "Requires read_freebusy. Find capped candidate time slots without creating a hold. Defaults to 50 candidates; max_results may request up to 100. latest_end is the latest time the meeting may end. All times must be ISO 8601 UTC.",
"inputSchema": {
"type": "object",
"required": [
"duration_minutes",
"earliest_start",
"latest_end",
"meeting_class"
],
"properties": {
"latest_end": {
"type": "string",
"format": "date-time"
},
"max_results": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"owner_email": {
"type": "string",
"format": "email"
},
"calendar_type": {
"enum": [
"work",
"personal",
"other"
],
"type": "string"
},
"meeting_class": {
"type": "string"
},
"earliest_start": {
"type": "string",
"format": "date-time"
},
"duration_minutes": {
"type": "integer",
"maximum": 480,
"minimum": 5
},
"next_available_lookahead_hours": {
"type": "integer",
"maximum": 72,
"minimum": 1
}
},
"additionalProperties": false
}
},
{
"name": "create-hold",
"description": "Requires create_holds. Create a candidate or window hold before booking. Use an idempotency_key when retrying.",
"inputSchema": {
"type": "object",
"required": [
"meeting_class",
"hold_scope"
],
"properties": {
"window": {
"type": "object",
"properties": {
"end": {
"type": "string",
"format": "date-time"
},
"start": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"candidate": {
"type": "object",
"properties": {
"end": {
"type": "string",
"format": "date-time"
},
"start": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"hold_scope": {
"enum": [
"candidate",
"window"
],
"type": "string"
},
"owner_email": {
"type": "string",
"format": "email"
},
"calendar_type": {
"enum": [
"work",
"personal",
"other"
],
"type": "string"
},
"meeting_class": {
"type": "string"
},
"idempotency_key": {
"type": "string"
},
"duration_minutes": {
"type": "integer",
"maximum": 480,
"minimum": 5
}
},
"additionalProperties": false
}
},
{
"name": "confirm-hold",
"description": "Requires create_bookings. Confirm a hold into a committed booking. Use an idempotency_key when retrying.",
"inputSchema": {
"type": "object",
"required": [
"hold_id",
"start",
"end",
"title"
],
"properties": {
"end": {
"type": "string",
"format": "date-time"
},
"start": {
"type": "string",
"format": "date-time"
},
"title": {
"type": "string"
},
"hold_id": {
"type": "string",
"format": "uuid"
},
"attendees": {
"type": "array",
"items": {
"type": "object"
}
},
"description": {
"type": "string"
},
"idempotency_key": {
"type": "string"
}
},
"additionalProperties": false
}
},
{
"name": "create-booking-proposal",
"description": "Requires create_booking_proposals. Create a durable booking proposal for calendar-owner approval without creating a hold or calendar event. Broad requested_window values produce a curated review set, not exhaustive availability; pass up to 3 preferred_times to preserve specific choices first.",
"inputSchema": {
"type": "object",
"required": [
"title",
"meeting_class",
"duration_minutes",
"requested_window"
],
"properties": {
"title": {
"type": "string"
},
"attendees": {
"type": "array",
"items": {
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"format": "email"
},
"displayName": {
"type": "string"
}
},
"additionalProperties": false
}
},
"description": {
"type": "string"
},
"owner_email": {
"type": "string",
"format": "email"
},
"calendar_type": {
"enum": [
"work",
"personal",
"other"
],
"type": "string"
},
"meeting_class": {
"type": "string"
},
"preferred_times": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"format": "date-time"
},
"start": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"maxItems": 3
},
"duration_minutes": {
"type": "integer",
"maximum": 480,
"minimum": 5
},
"requested_window": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"format": "date-time"
},
"start": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
{
"name": "simulate",
"description": "Requires read_freebusy and a plan with simulation access. Preview scheduling/arbitration outcomes without creating holds or calendar events.",
"inputSchema": {
"type": "object",
"required": [
"start",
"end",
"meeting_class"
],
"properties": {
"end": {
"type": "string",
"format": "date-time"
},
"start": {
"type": "string",
"format": "date-time"
},
"title": {
"type": "string"
},
"attendees": {
"type": "array",
"items": {
"type": "object"
}
},
"owner_email": {
"type": "string",
"format": "email"
},
"calendar_type": {
"enum": [
"work",
"personal",
"other"
],
"type": "string"
},
"meeting_class": {
"type": "string"
}
},
"additionalProperties": true
}
},
{
"name": "get-pending-notifications",
"description": "Requires read_freebusy. Fetch unacknowledged notifications for the authenticated backing agent.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
},
{
"name": "ack-notifications",
"description": "Requires read_freebusy. Acknowledge pending notification IDs.",
"inputSchema": {
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
"additionalProperties": false
}
},
{
"name": "list-events",
"description": "Requires read_events. List committed events for a calendar owner with optional time, query, attendee, and cursor filters.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string"
},
"cursor": {
"type": "string"
},
"timeMax": {
"type": "string",
"format": "date-time"
},
"timeMin": {
"type": "string",
"format": "date-time"
},
"maxResults": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"owner_email": {
"type": "string",
"format": "email"
},
"calendar_type": {
"enum": [
"work",
"personal",
"other"
],
"type": "string"
},
"attendee_email": {
"type": "string",
"format": "email"
}
},
"additionalProperties": false
}
},
{
"name": "search-events",
"description": "Requires read_events. Search committed events by title/query, time window, attendee, and owner.",
"inputSchema": {
"type": "object",
"properties": {
"q": {
"type": "string"
},
"query": {
"type": "string"
},
"cursor": {
"type": "string"
},
"timeMax": {
"type": "string",
"format": "date-time"
},
"timeMin": {
"type": "string",
"format": "date-time"
},
"maxResults": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"owner_email": {
"type": "string",
"format": "email"
},
"calendar_type": {
"enum": [
"work",
"personal",
"other"
],
"type": "string"
},
"attendee_email": {
"type": "string",
"format": "email"
}
},
"additionalProperties": false
}
},
{
"name": "get-event",
"description": "Requires read_events. Fetch a committed event by booking/event ID.",
"inputSchema": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
}
},
"additionalProperties": false
}
},
{
"name": "create-event",
"description": "Requires create_bookings. Create a committed booking directly. Use an idempotency_key when retrying.",
"inputSchema": {
"type": "object",
"required": [
"start",
"end",
"meeting_class",
"title"
],
"properties": {
"end": {
"type": "string",
"format": "date-time"
},
"start": {
"type": "string",
"format": "date-time"
},
"title": {
"type": "string"
},
"attendees": {
"type": "array",
"items": {
"type": "object"
}
},
"description": {
"type": "string"
},
"owner_email": {
"type": "string",
"format": "email"
},
"calendar_type": {
"enum": [
"work",
"personal",
"other"
],
"type": "string"
},
"meeting_class": {
"type": "string"
},
"idempotency_key": {
"type": "string"
}
},
"additionalProperties": false
}
},
{
"name": "update-event",
"description": "Requires create_bookings. Update title, description, or attendees for a committed booking.",
"inputSchema": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"title": {
"type": "string"
},
"attendees": {
"type": "array",
"items": {
"type": "object"
}
},
"description": {
"type": "string"
}
},
"additionalProperties": false
}
},
{
"name": "delete-event",
"description": "Requires create_bookings. Cancel a committed booking. Use an idempotency_key when retrying.",
"inputSchema": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"idempotency_key": {
"type": "string"
}
},
"additionalProperties": false
}
},
{
"name": "list-public-meeting-types",
"description": "Public scheduling tool. List public meeting types visible on another owner's public scheduling boundary. Uses anonymous or requester-credential identity, not owner-calendar authority.",
"inputSchema": {
"type": "object",
"required": [
"public_scheduling_boundary_id"
],
"properties": {
"requester_credential": {
"type": "string"
},
"public_scheduling_boundary_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
{
"name": "create-public-booking-proposal",
"description": "Public scheduling tool. Ask another owner for time through their public scheduling boundary. requester_contact is the submitter and attendees should include the requester.",
"inputSchema": {
"type": "object",
"required": [
"public_scheduling_boundary_id",
"requester_contact",
"attendees"
],
"properties": {
"reason": {
"type": "string"
},
"message": {
"type": "string"
},
"attendees": {
"type": "array",
"items": {
"type": "object",
"required": [
"email"
],
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
},
"additionalProperties": false
}
},
"duration_minutes": {
"type": "integer",
"maximum": 480,
"minimum": 5
},
"requested_window": {
"type": "object",
"properties": {
"end": {
"type": "string",
"format": "date-time"
},
"start": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"requester_contact": {
"type": "object",
"required": [
"email"
],
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
},
"additionalProperties": false
},
"public_meeting_type": {
"type": "string"
},
"requester_credential": {
"type": "string"
},
"public_scheduling_boundary_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
{
"name": "confirm-public-requester-contact",
"description": "Public scheduling tool. Confirm the requester-contact email for an anonymous public booking proposal using the token from the contact verification URL.",
"inputSchema": {
"type": "object",
"required": [
"contact_verification_token"
],
"properties": {
"contact_verification_token": {
"type": "string"
}
},
"additionalProperties": false
}
},
{
"name": "get-public-booking-proposal-status",
"description": "Public scheduling tool. Poll safe public status by public proposal access token. Does not expose internal proposal IDs, conflicts, or owner availability.",
"inputSchema": {
"type": "object",
"required": [
"public_proposal_access_token"
],
"properties": {
"public_proposal_access_token": {
"type": "string"
}
},
"additionalProperties": false
}
},
{
"name": "withdraw-public-booking-proposal",
"description": "Public scheduling tool. Withdraw a pending public proposal by public proposal access token. Does not cancel or reschedule booked meetings.",
"inputSchema": {
"type": "object",
"required": [
"public_proposal_access_token"
],
"properties": {
"public_proposal_access_token": {
"type": "string"
}
},
"additionalProperties": false
}
}
]Get your MCP into directories
A working endpoint is step one. Directory coverage is the coordinated launch across ChatGPT, Claude, Cursor, the MCP Registry, and community indexes.
Directory coverage for brandsLet agents propose meetings first, then earn direct booking under your calendar rules, permission scopes, and audit trail.
Use the MCP endpoint listed on this page in your MCP client configuration. One-click install pills support Claude, Cursor, VS Code, and other hosts. Copy the remote MCP URL if your client needs a manual entry.
Request removal if you do not want Openavail — Graduated autonomy for AI scheduling agents listed here, or claim the listing if you want to manage it on MCPBundles.
This server appears in the MCPBundles directory. Verify you operate it to take over the listing — name, description, logo, contact email, and skill content. We email a 6-digit code to a maintainer address your server publishes in /.well-known/security.txt or /.well-known/mcpbundles.json. Free, takes about a minute.
MCPBundles publishes this directory for MCP discovery. Except where we host or operate an offering, third-party services run under their own terms. Product and company names on this page are used in a descriptive, identifying way (including under nominative fair use where applicable); they remain the property of their owners. Nothing here grants you rights in those marks, and nothing here is an offer to sell a third party's services. Terms · Request removal
Other MCP servers in this category from the directory index
MCPBundles probed 22 tools on the live server. The tool list on this page reflects what was discovered at the last refresh — connect your client to see the full set available to your session.
Openavail — Graduated autonomy for AI scheduling agents may require signing in to the provider before tools can run. Connect through MCPBundles or your MCP client and complete any provider login when prompted.
Request removal from the MCPBundles directory. We stop publishing this listing on mcpbundles.com.
MCPBundles is an independent platform built on the open Model Context Protocol standard. MCPBundles is not affiliated with, sponsored by, or endorsed by Anthropic PBC.