youcanbookme
Server Details
Manage YouCanBook.me bookings, booking pages, appointment types, team members and locations.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Score is being calculated. Check back soon.
Available Tools
18 toolscancel_bookingCancel a bookingDestructiveInspect
MUTATES YouCanBookMe data: cancels a booking. Convenience wrapper for PATCH /v1/bookings/{bookingId} with { cancelled: true } — safer and reversible (re-activate via update_booking cancelled=false) versus deleting. Returns the updated booking.
| Name | Required | Description | Default |
|---|---|---|---|
| bookingId | Yes | The booking id to cancel (path only; required). |
create_appointment_typeCreate an appointment typeDestructiveInspect
MUTATES YouCanBookMe data: adds an appointment type to a profile. YCBM API: POST /v1/profiles/{profileId}/appointmenttypes/items (JSON). Required: name; use the fields passthrough for description, slotLength, price, etc. The path profileId is never sent in the body.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The appointment type name (required). | |
| fields | No | Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above. | |
| profileId | Yes | The profile (booking page) id (path only; required). |
create_bookingCreate a bookingDestructiveInspect
MUTATES YouCanBookMe data: creates a booking (appointment) on a profile. YCBM API: POST /v1/bookings (JSON). Required: profileId, startsAt, endsAt (ISO 8601 times). Optional: title, timeZone, locale, units. Complex fields like answers (form-field answers) and linkFields should be passed via the fields passthrough. Returns the created booking.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Booking title. | |
| units | No | Number of slot units to book. | |
| endsAt | Yes | Booking end time, ISO 8601 (required). | |
| fields | No | Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above. | |
| locale | No | Locale for the booking (e.g. en-GB). | |
| startsAt | Yes | Booking start time, ISO 8601 (required). | |
| timeZone | No | IANA time zone for the booking (e.g. Europe/London). | |
| profileId | Yes | The profile (booking page) id to book on (required). |
create_locationAdd a locationDestructiveInspect
MUTATES YouCanBookMe data: adds a location to a profile. YCBM API: POST /v1/profiles/{profileId}/locations (JSON). Required: kind (location type) and strategy (how it is assigned). Use the fields passthrough for value, notes, and other documented fields. The path profileId is never sent in the body.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | The location kind/type (required). | |
| notes | No | Notes shown with the location. | |
| value | No | The location value (e.g. an address or link). | |
| fields | No | Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above. | |
| strategy | Yes | The location assignment strategy (required). | |
| profileId | Yes | The profile (booking page) id (path only; required). |
create_team_memberAdd a team memberDestructiveInspect
MUTATES YouCanBookMe data: adds a team member to a profile. YCBM API: POST /v1/profiles/{profileId}/teammembers/items (JSON). Required: name; calendarId links the member to a calendar (find it via list_available_accounts). Use the fields passthrough for email, description, pic, etc. The path profileId is never sent in the body.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The team member's display name (required). | |
| fields | No | Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above. | |
| profileId | Yes | The profile (booking page) id (path only; required). | |
| calendarId | No | The calendar id to link (see list_available_accounts). |
get_bookingGet a bookingRead-onlyInspect
Fetch a single booking (appointment) by id. YCBM API: GET /v1/bookings/{bookingId}. Use fields to select which fields to return. Returns the booking object.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated field paths to return (e.g. "id,title,startsAt"). Supports dotted paths for nested objects. Omit to get the default field set. | |
| bookingId | Yes | The booking id. |
get_profileGet a profile (booking page)Read-onlyInspect
Fetch a single profile (booking page) by id. YCBM API: GET /v1/profiles/{profileId}. Use fields to select fields, including nested sub-resources (appointmentTypes, teamMembers, locations). Returns the profile object.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Comma-separated field paths to return (e.g. "id,title,startsAt"). Supports dotted paths for nested objects. Omit to get the default field set. | |
| profileId | Yes | The profile (booking page) id. |
list_appointment_typesList a profile's appointment typesRead-onlyInspect
List the appointment types configured on a profile (booking page). YCBM API: GET /v1/profiles/{profileId} with an appointmentTypes field selection. Returns the profile's appointmentTypes block (each with id, name, description, slotLength, price).
| Name | Required | Description | Default |
|---|---|---|---|
| profileId | Yes | The profile (booking page) id. |
list_available_accountsList available accounts (calendars)Read-onlyInspect
List the accounts/calendars available to your account — used to find the calendarId for a team member. YCBM API: GET /v1/{accountId}/availableAccounts (accountId is taken from your configured credentials). Returns a JSON array.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_bookingsList bookingsRead-onlyInspect
List bookings (appointments) on the YouCanBookMe account. YCBM API: GET /v1/bookings. Filter by profileId (booking page), an after/before time window, cancelled status, and a free-text searchText; select fields with fields. Paginated via page (0-based) + maxResults. Returns a JSON array of bookings.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Pagination page number, 0-based (offset-based paging). Use with maxResults. | |
| after | No | Only bookings starting AFTER this time (ISO 8601, e.g. 2026-07-01T00:00:00Z). | |
| before | No | Only bookings starting BEFORE this time (ISO 8601). | |
| fields | No | Comma-separated field paths to return (e.g. "id,title,startsAt"). Supports dotted paths for nested objects. Omit to get the default field set. | |
| params | No | Additional documented query-string filters to send verbatim (merged with the typed params above). | |
| cancelled | No | Filter by cancelled status: true = only cancelled, false = only active. Omit for all. | |
| profileId | No | Restrict to bookings on this profile (booking page) id. | |
| maxResults | No | Maximum records per page (page size). Defaults to the API's own default when omitted. | |
| searchText | No | Free-text search across booking fields (e.g. attendee name/email). |
list_locationsList a profile's locationsRead-onlyInspect
List the locations configured on a profile (booking page). YCBM API: GET /v1/profiles/{profileId} with a locations field selection. Returns the profile's locations block (each with id, kind, value, notes, strategy).
| Name | Required | Description | Default |
|---|---|---|---|
| profileId | Yes | The profile (booking page) id. |
list_profilesList profiles (booking pages)Read-onlyInspect
List all profiles (booking pages) on the account. YCBM API: GET /v1/profiles. A profile is a bookable page with its own subdomain, appointment types, team members, and locations. Use fields to select fields (e.g. "id,title,subdomain"). Paginated via page (0-based) + maxResults. Returns a JSON array of profiles.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Pagination page number, 0-based (offset-based paging). Use with maxResults. | |
| fields | No | Comma-separated field paths to return (e.g. "id,title,startsAt"). Supports dotted paths for nested objects. Omit to get the default field set. | |
| params | No | Additional documented query-string filters to send verbatim (merged with the typed params above). | |
| maxResults | No | Maximum records per page (page size). Defaults to the API's own default when omitted. |
list_team_membersList a profile's team membersRead-onlyInspect
List the team members configured on a profile (booking page). YCBM API: GET /v1/profiles/{profileId} with a teamMembers field selection. Returns the profile's teamMembers block (each member has id, name, email, description, pic, calendarId).
| Name | Required | Description | Default |
|---|---|---|---|
| profileId | Yes | The profile (booking page) id. |
update_appointment_typeUpdate an appointment typeDestructiveInspect
MUTATES YouCanBookMe data: updates an appointment type on a profile. YCBM API: PATCH /v1/profiles/{profileId}/appointmenttypes/items/{appointmentTypeId} (JSON, partial update). Pass changed fields (name, description, slotLength, price, ...) via the fields passthrough. Path ids are never sent in the body.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above. | |
| profileId | Yes | The profile (booking page) id (path only; required). | |
| appointmentTypeId | Yes | The appointment type id to update (path only; required). |
update_bookingUpdate a bookingDestructiveInspect
MUTATES YouCanBookMe data: updates an existing booking (reschedule, rename, mark cancelled/no-show). YCBM API: PATCH /v1/bookings/{bookingId} (JSON, partial update). Set any of title/startsAt/endsAt/cancelled/noShow/timeZone/locale/units; use the fields passthrough for answers/linkFields or other documented fields. The path id is never sent in the body.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New booking title. | |
| units | No | New number of slot units. | |
| endsAt | No | New end time, ISO 8601 (reschedule). | |
| fields | No | Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above. | |
| locale | No | New locale. | |
| noShow | No | Mark the attendee as a no-show (true) or not (false). | |
| startsAt | No | New start time, ISO 8601 (reschedule). | |
| timeZone | No | New IANA time zone. | |
| bookingId | Yes | The booking id to update (path only; required). | |
| cancelled | No | Set true to cancel the booking, false to un-cancel. |
update_profileUpdate a profile (booking page)DestructiveInspect
MUTATES YouCanBookMe data: updates a profile's (booking page) configuration. YCBM API: PATCH /v1/profiles/{profileId} (JSON, partial update). Pass the fields to change via the fields passthrough (e.g. { title, subdomain, ... }) — profile fields are numerous and use YCBM's own names. The path id is never sent in the body.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above. | |
| profileId | Yes | The profile (booking page) id to update (path only; required). |
update_team_memberUpdate a team memberDestructiveInspect
MUTATES YouCanBookMe data: updates a team member on a profile. YCBM API: PATCH /v1/profiles/{profileId}/teammembers/items/{teamMemberId} (JSON, partial update). Pass changed fields (name, email, description, calendarId, ...) via the fields passthrough. Path ids are never sent in the body.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Additional documented YCBM fields to send in the JSON write body — merged OVER the typed fields above. | |
| profileId | Yes | The profile (booking page) id (path only; required). | |
| teamMemberId | Yes | The team member id to update (path only; required). |
youcanbookme_requestRaw read requestRead-onlyInspect
Power-user escape hatch: GET any YCBM API path not wrapped by a dedicated tool. READ-ONLY — only GET is allowed. Pass the FULL API path after the origin, starting with a slash, INCLUDING any query string, e.g. "/v1/bookings?maxResults=5" or "/v1/profiles". Returns the parsed JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Full API path after the origin, starting with "/", e.g. "/v1/bookings?maxResults=5". |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!