Zovo Meeting Planner
Server Details
Find meeting times across TZs
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
Two tools with clearly separate purposes: point-in-time conversion vs. cross-timezone slot planning. The descriptions explicitly cross-reference each other and state what each does not do, eliminating boundary confusion.
Both names are snake_case verb_noun phrases (convert_time, find_meeting_time). The verb differs appropriately by action while the pattern stays predictable.
Only 2 tools for the server's scope, which is thin even though each tool is very deep and parameter-rich. A helper such as listing supported places or validating zones would round out the surface.
Covers the two core workflows (conversion and slot finding, including .ics output and DST handling) with explicitly acknowledged gaps like calendar availability and public holidays. Those gaps are stated and workable around, so the surface is mostly complete for its stated purpose.
Available Tools
2 toolsconvert_timeConvert time between time zonesARead-onlyIdempotentInspect
Use this when the user wants to convert a time between time zones or cities (time zone converter, e.g. 'convert 3pm PST to IST', 'time zone converter New York to London', 'what time is 9am EST in Warsaw on Nov 3'). Takes a date, a time, a source place (city, IANA zone, US state, country, UTC offset, or abbreviation) and up to 20 target places; returns the same instant in each place with UTC offset, abbreviation, +1/-1 day shift, the hour difference, and a note when a daylight saving change happens within 7 days. Explains times that are skipped or repeated by DST changes. Does not plan meetings (find_meeting_time covers that), look up flight times, or convert units.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target places in the same formats, e.g. ["London", "Asia/Kolkata", "Sydney"]. | |
| date | No | Local date at the source place as YYYY-MM-DD, e.g. 2026-11-03. Defaults to today at the source. Always pass it when the user names a day, because DST depends on the date. | |
| from | Yes | Source place: a city ("New York", "Portland, Oregon"), an IANA zone ("Europe/Warsaw"), a US state, a country, a UTC offset ("UTC+5:30"), or an abbreviation ("PST", "CET", "IST"). Abbreviations mean the region's local clock on that date; ambiguous ones (IST, CST, AST, BST) use the first meaning and say so. | |
| time | No | Local time at the source place, 24-hour or 12-hour, e.g. "15:00", "3pm", "9:30 am". Omit (with date) to convert the current moment. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| notes | Yes | |
| status | Yes | |
| primary | Yes | |
| alternate | Yes | |
| status_note | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/closed-world, and the description still adds substantial context: it discloses the return contents (UTC offset, abbreviation, +/-1 day shift, hour difference, 7-day DST warning) and states it explains skipped or repeated local times caused by DST. That is real behavioral detail beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense but well-ordered paragraph: trigger first, then inputs/return shape mid-way, then exclusions last. Every sentence carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter conversion tool with annotations and an output schema, the description covers trigger, input formats, output shape, DST edge cases, and out-of-scope uses. Nothing an agent needs in order to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description nonetheless reinforces accepted source formats (city, IANA zone, US state, country, UTC offset, abbreviation), the max 20 targets, and the ambiguity handling for IST/CST/AST/BST, adding usable phrasing that eases correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (convert) and resource (time between time zones/cities), and gives concrete example phrasings such as 'convert 3pm PST to IST'. It also names the sibling it is not (find_meeting_time), so an agent can distinguish them without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit 'use this when' trigger, then lists explicit exclusions: does not plan meetings (routing to find_meeting_time), does not look up flight times, does not convert units. When-to-use and when-not-to-use are both covered with the alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_meeting_timeFind a meeting time across time zonesARead-onlyIdempotentInspect
Use this when the user wants to plan a meeting across time zones (meeting planner, 'find a 1-hour slot for New York, London and Bangalore on 2026-11-10', working-hour overlap for a distributed team). Takes 2-8 participants' places with optional working hours and work days, a date or date range of up to 14 days, and a duration. Returns up to 10 distinct ranked slots (default 5), ordered by a fairness cost: 2 hours per person outside working hours plus the time outside working hours of the worst-off person, with night (22:00-07:00) and days off weighing more. Each slot lists every participant's local time and status, a calendar (.ics) download link, the flexible window of meeting times when everyone is inside working hours, and other dates with the same local times. If nobody can meet inside working hours in the range, it also returns the closest time within 7 days after the range that works for everyone. Pass selected_start_utc to get the .ics for one specific slot. Does not read calendars, check availability, issue invitations, support overnight working hours, or account for public holidays.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Meeting title for the calendar file, e.g. "Q4 planning sync". | |
| date_to | No | Last day to search (inclusive), YYYY-MM-DD, at most 14 days after date_from, e.g. 2026-10-09. Defaults to date_from. | |
| work_end | No | Default local working-day end for everyone, e.g. "17:00" (default). | |
| date_from | No | First day to search, YYYY-MM-DD in the first participant's time zone, e.g. 2026-10-06. Defaults to today there. | |
| work_start | No | Default local working-day start for everyone, e.g. "09:00" (default). | |
| max_results | No | How many ranked non-overlapping slots to return, e.g. 5 (default). | |
| participants | Yes | 2-8 participants in order; the first one is the reference whose dates define the range, e.g. [{"place":"New York"},{"place":"London"},{"place":"Bangalore"}]. | |
| step_minutes | No | Slot start granularity in minutes: 15, 30 (default), or 60. | |
| duration_minutes | No | Meeting length in minutes, e.g. 30 or 60 (default 60). | |
| include_weekends | No | Treat every day of the week as a working day for participants without work_days, e.g. true for weekend events (default false). | |
| selected_start_utc | No | Optional chosen start in UTC, e.g. 2026-10-06T14:00:00Z, to get that exact slot's local times and its .ics calendar link. |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | Yes | |
| kind | Yes | |
| notes | Yes | |
| slots | Yes | |
| request | Yes | |
| selected | Yes | |
| downloads | Yes | |
| reference | Yes | |
| participants | Yes | |
| overlap_windows | Yes | |
| has_full_overlap | Yes | |
| next_full_overlap | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description goes far beyond them: it discloses the ranking cost function, that night hours (22:00-07:00) and days off weigh more, the 10-slot cap with default 5, and the fallback that returns the closest time within 7 days after the range when no in-hours slot exists. It also states the exact contents of each slot (local times, status, .ics link, flexible window, equivalent dates), which the agent cannot infer from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the usage trigger, then mechanics, then outputs, then exclusions in a deliberate order that matches how an agent would evaluate a call. The long sentence about slot contents is dense but every clause carries distinct information (ranking, slot fields, fallback).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the full decision surface for a 11-parameter tool with a nested participant object: when to use it, the search-range constraints, the ranking semantics that explain why slots come back in a given order, the single-slot escape hatch, and what it explicitly cannot do. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description earns an increment by explaining relationships the schema states only in isolation: participants are 2-8 with the first defining the reference date range, dates span up to 14 days, and selected_start_utc switches the call into a single-slot .ics lookup mode. It stops short of adding syntax detail for work_start/work_end or step_minutes beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('find a meeting time across time zones') and immediately grounds it in a concrete example ('find a 1-hour slot for New York, London and Bangalore on 2026-11-10'). It is unmistakably a planning tool, not a conversion tool, so an agent can distinguish it from the convert_time sibling without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit trigger ('Use this when the user wants to plan a meeting across time zones... working-hour overlap for a distributed team') and closes with clear exclusions ('does not read calendars, check availability, issue invitations'). The only gap is that it never names convert_time as the alternative for plain time conversion, leaving that routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
convert_time - First observed
find_meeting_time
Related MCP Connectors
Fair meeting times across time zones: find the overlap, convert times, make calendar links.
Find meeting times that overlap working hours across IANA time zones, DST-aware. Free tier.
Time zone conversion, meeting-slot finding across countries, DST checks and .ics invites. All.
Merged free/busy, find mutual time, propose bookings with human approval. Never event contents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to find meeting times that overlap working hours across IANA time zones, DST-aware, and to search available time zones.MIT
- AlicenseNot gradedqualityDmaintenanceA timezone-aware MCP server that converts times, looks up current local times, and finds overlapping working-hour slots for distributed teams.8 npmMIT
- AlicenseBqualityCmaintenanceEnables converting moments between IANA zones, answering what time it is in one place when it’s a given time in another, and finding overlapping meeting windows for multiple participants’ work hours, all locally via date-fns-tz/Intl.4MIT
- FlicenseNot gradedqualityBmaintenanceEnables autonomous resolution of multi-timezone calendar event overlaps and negotiation of deep-work buffers through deterministic, zero-dependency MCP-compatible tooling.8-
Glama MCP Gateway
Add one secure layer between your agents and this server.