Time of Meeting
Server Details
Fair meeting times across time zones: find the overlap, convert times, make calendar links.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 6 tools
Most tools have clearly distinct roles: search_cities finds locations, current_time_in_cities shows current local status, convert_time converts a specific time, find_best_meeting_time proposes slots, create_meeting_link builds an invitation, and get_dst_changes lists clock changes. There is minor overlap because convert_time also returns a meeting link for a 60-minute meeting, which could cause confusion with create_meeting_link, though the descriptions clarify the intended sequence.
All names use snake_case, and most follow a verb_noun or verb_phrase pattern (convert_time, create_meeting_link, find_best_meeting_time, get_dst_changes, search_cities). current_time_in_cities is a descriptive noun phrase rather than a verb-led name, which is a minor deviation but still readable and intuitive.
Six tools are well-scoped for a time-zone meeting planning server. Each tool covers a distinct part of the workflow—city lookup, current time, conversion, meeting-time search, invitation creation, and DST changes—without unnecessary bloat.
The tool set covers the core lifecycle: finding cities, checking current time, converting times, finding fair meeting slots, creating invitations, and checking DST changes. Minor gaps remain, such as no explicit date-range parameter or holiday awareness, but agents can work around these for typical meeting planning.
Available Tools
6 toolsconvert_timeConvert a local timeARead-onlyInspect
Convert one city's local time into one or more other cities. The result includes a https://timeofmeeting.com link for a 60-minute meeting. Choose a different length with create_meeting_link.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Cities to convert into. An array, or one comma-separated string. City name or a city id from search_cities. Spelling and accents are flexible. | |
| from | Yes | The city the clock time belongs to. City name or a city id from search_cities. Spelling and accents are flexible. | |
| time | Yes | Local time in the from city, YYYY-MM-DD HH:MM or YYYY-MM-DDTHH:MM. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | |
| utc | Yes | |
| from | Yes | |
| link | Yes | |
| error | No | |
| links | Yes | |
| candidates | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds genuinely new behavioral context: the output always contains a timeofmeeting.com link scoped to a fixed 60-minute meeting, which an agent would not otherwise know.
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?
Two sentences, zero padding. What the tool does comes first, the link caveat and its escape hatch follow immediately.
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?
An output schema exists so return values need no elaboration, and the description covers the surprising fixed-60-minute behavior plus the alternative for other lengths. It omits timezone/ambiguity handling, but the schema's strict time pattern and city parameters largely cover the call path.
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 description coverage is 100%, and the parameter docs already explain city names/ids, flexible accents, the array form, and the time format. The description adds nothing beyond 'one or more other cities', so the baseline 3 applies.
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 ('Convert one city's local time into one or more other cities'), and distinguishes itself from the sibling create_meeting_link by naming it directly. An agent can place this among current_time_in_cities and find_best_meeting_time without opening any 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?
Gives an explicit routing rule: if you want a meeting length other than 60 minutes, use create_meeting_link. However it offers no guidance on when to prefer this over find_best_meeting_time or current_time_in_cities, which is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_meeting_linkCreate a meeting linkARead-onlyInspect
Build the invitation for one chosen slot. duration_minutes is the meeting length, chosen now, with the same choices as the planner Duration control. title is an optional meeting name, e.g. Weekly sync. The first item is always the planner link: open this meeting on timeofmeeting.com (see and adjust it in the planner). formats then adds text to paste into a chat or email, a calendar file for Outlook, Apple Calendar and most calendar apps, an add-to-Google-Calendar link, or a QR code image someone can scan with a phone, in that order. The calendar file is https://timeofmeeting.com/c?q=. Use this after find_best_meeting_time, or when the time is already known.
| Name | Required | Description | Default |
|---|---|---|---|
| start | Yes | ISO time with Z or an offset, or a local time in the first city (YYYY-MM-DD HH:MM). | |
| title | No | Optional meeting name, e.g. Weekly sync. It is the calendar event name and the first line of the text. When omitted, the invitation stays as it is now. | |
| cities | Yes | Two to eight cities. An array, or one comma-separated string. City name or a city id from search_cities. Spelling and accents are flexible. | |
| formats | No | Extras after the planner link, which is always included: open this meeting on timeofmeeting.com (see and adjust it in the planner). Returned in this order: text (text to paste into a chat or email), ics (calendar file for Outlook, Apple Calendar and most calendar apps), google (add-to-Google-Calendar link), qr (QR code image someone can scan with a phone). Default when omitted: ["text", "ics", "google"]. An empty array returns the planner link only. qr is included only when requested. | |
| duration_minutes | No | Meeting length in minutes, chosen when the invitation is made. Same choices as the planner Duration control: 15, 30, 45, 60, 90, 120, or any whole number from 5 to 1440 in steps of 5. Default 30. |
Output Schema
| Name | Required | Description |
|---|---|---|
| link | Yes | |
| error | No | |
| items | Yes | |
| local | Yes | |
| start | Yes | |
| title | Yes | |
| cities | Yes | |
| candidates | No | |
| same_day_window | Yes | |
| duration_minutes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds real behavioral detail beyond that: the planner link is always the first returned item, formats are appended in a fixed order, qr is opt-in, and the calendar file is served from https://timeofmeeting.com/c?q=. That is useful disclosure of return composition.
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?
The opening sentence is well front-loaded, but the middle sentence is a long enumeration of the four formats that duplicates the schema verbatim, and the calendar-file URL sentence is a fragment awkwardly placed mid-paragraph. Several sentences do not earn their place given the 100% schema coverage.
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?
An output schema exists, so the description did not need to narrate return values, yet it does so partially (link ordering) rather than completely. For a five-parameter read-only link builder with full schema coverage, nothing critical to correct invocation 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 description coverage is 100%, so the schema already documents every parameter including formats ordering, defaults, and duration constraints. The description mostly restates these ('duration_minutes... same choices as the planner Duration control', 'title is optional... e.g. Weekly sync'), adding only marginal meaning, which lands at the baseline 3.
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 artifact: 'Build the invitation for one chosen slot,' and immediately scopes it to the planner link plus optional formats. An agent can distinguish it from find_best_meeting_time (which picks the slot) 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?
Explicitly routes usage: 'Use this after find_best_meeting_time, or when the time is already known,' naming the sibling and the precondition. It stops short of stating when *not* to use it or what to do if the slot is still undecided beyond the implied routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
current_time_in_citiesCurrent time in citiesARead-onlyInspect
Show the current local time, offset, and work-hour band for each city. The result includes a https://timeofmeeting.com link.
| Name | Required | Description | Default |
|---|---|---|---|
| cities | Yes | One to eight cities. An array, or one comma-separated string. City name or a city id from search_cities. Spelling and accents are flexible. |
Output Schema
| Name | Required | Description |
|---|---|---|
| utc | Yes | |
| link | Yes | |
| error | No | |
| cities | Yes | |
| candidates | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false (consistent with this read-only description), so the safety bar is low. The description adds real context beyond the annotations by naming the returned fields (local time, offset, work-hour band) and disclosing the embedded https://timeofmeeting.com link, though it says nothing about invalid-city handling or failure modes.
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?
Two tight sentences with zero filler, core behavior front-loaded in the first sentence and the notable return artifact (the meeting link) placed last where it belongs.
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?
An output schema exists, so return values need not be re-explained, and the description still usefully previews them. It is nearly complete for a simple read tool, with only minor gaps around edge-case behavior (unknown cities, ambiguous names).
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 description coverage is 100% and there is only one parameter, so the schema already fully documents the array-or-comma-separated input, the 1-8 city limit, and flexible spelling. The description adds no parameter-level detail beyond what the schema provides, making the baseline 3 appropriate.
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 ('Show') and resource ('current local time, offset, and work-hour band for each city'), which is immediately distinguishable from siblings like convert_time or find_best_meeting_time. However, it never names an alternative tool or explicitly contrasts its scope with them, so sibling differentiation is left to inference.
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?
Usage is implied by the description (use this to get the present time in one or more cities), but there is no explicit when-to-use/when-not guidance, no mention of the search_cities prerequisite implied by the schema, and no exclusions relative to convert_time or find_best_meeting_time.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_best_meeting_timeFind a fair meeting timeARead-onlyInspect
Propose up to three fair meeting times while the slot is still being chosen. Ranking does not take a meeting length. Each slot has a score and the reasons. The result has one https://timeofmeeting.com link that opens the planner with those cities, and next_step, which says the user can choose a duration when creating the invitation. It does not include calendar files or a QR code. After a slot is chosen, call create_meeting_link.
| Name | Required | Description | Default |
|---|---|---|---|
| cities | Yes | Two to eight cities. An array, or one comma-separated string. City name or a city id from search_cities. Spelling and accents are flexible. | |
| end_date | No | Last day, YYYY-MM-DD. Defaults to six days after the start. At most 31 days. | |
| start_date | No | First day, YYYY-MM-DD. Defaults to today (UTC). |
Output Schema
| Name | Required | Description |
|---|---|---|
| link | Yes | |
| note | Yes | |
| error | No | |
| slots | Yes | |
| cities | Yes | |
| end_date | Yes | |
| next_step | Yes | |
| candidates | No | |
| start_date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, read-only, closed-world operation, so the bar is lower. The description still adds genuine behavioral traits beyond them: ranking ignores meeting length, each slot carries a score and reasons, the result contains a planner link plus a next_step field, and it explicitly excludes calendar files and QR codes. Some of the return-format detail overlaps the output schema, keeping it short of a 5.
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?
Purpose is front-loaded in the first sentence, and each subsequent sentence carries usable information. It is slightly scattered—the exclusion sentence ('does not include calendar files or a QR code') and the link description could be tightened—but nothing is wasted.
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?
With full schema coverage and an output schema present, the description need not re-explain return values, yet it still covers scope, ranking semantics, output highlights, and sibling routing. Complete for correct invocation, with minor redundancy against the output schema as the only blemish.
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 description coverage is 100% and the description adds no parameter-level detail (no mention of cities limits or date ranges). Per the rubric, full schema coverage yields a baseline of 3 regardless of description depth.
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 (propose) and resource (up to three fair meeting times) with a clear scope qualifier ('while the slot is still being chosen'). An agent can distinguish it from create_meeting_link, which is explicitly the post-selection step, 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?
Gives both the when-to-use condition ('while the slot is still being chosen') and the explicit alternative with its trigger ('After a slot is chosen, call create_meeting_link'). The routing decision is fully determined by the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dst_changesDaylight-saving changesARead-onlyInspect
List clock changes for one city. Defaults to the next year. Each change includes a https://timeofmeeting.com link. The range can be at most 366 days. dst_changes still calls this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City name or a city id from search_cities. Spelling and accents are flexible. | |
| end_date | No | Last day, YYYY-MM-DD. Defaults to 365 days later. | |
| start_date | No | First day, YYYY-MM-DD. Defaults to today (UTC). |
Output Schema
| Name | Required | Description |
|---|---|---|
| city | Yes | |
| link | Yes | |
| error | No | |
| changes | Yes | |
| end_date | Yes | |
| candidates | No | |
| start_date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a safe read (readOnlyHint=true, destructiveHint=false), so the description's job is supplementary — and it delivers by disclosing the next-year default and the hard 366-day range cap. It does not describe pagination or result ordering, which keeps it from a 5.
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?
The first three sentences are tight and front-load the verb, scope, default, and limit. The trailing sentence 'dst_changes still calls this tool' is cryptic and adds no actionable information, diluting an otherwise efficient block.
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?
With an output schema present, the description needn't detail return values, and it correctly focuses on scope, defaults, and the range cap. What remains thin is the absence of any routing guidance among the five sibling time tools.
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 description coverage is 100%, so the baseline is 3; the description goes beyond the schema by adding a cross-parameter constraint (range at most 366 days) that is not encoded anywhere in the input schema. It also confirms each entry carries a https://timeofmeeting.com link.
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 ('List') plus a concrete resource ('clock changes') scoped to 'one city', which is clearly distinct from the time-conversion and meeting-scheduling siblings. It never names an alternative, so it stops short of the sibling-differentiation that would earn a 5, but the intent is unambiguous.
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?
There is no when-to-use versus when-not-to-use guidance and no alternative tool is referenced (e.g. convert_time or current_time_in_cities), even though several siblings operate on the same city/time domain. The user must infer the use case purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_citiesSearch citiesBRead-onlyInspect
Find cities by name. Each city includes its id, time zone, country, and a https://timeofmeeting.com link.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | City name, such as Bern or Zürich. Spelling and accents are flexible. A city id such as gn:2657896 is also accepted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| link | Yes | |
| error | No | |
| query | Yes | |
| results | Yes | |
| candidates | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false). The description's only addition is a listing of returned fields and a link, which largely duplicates the existing output schema; it says nothing about matching behavior, tie-breaking among similar names, or pagination/result limits.
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?
Two short sentences, front-loaded with the purpose and with no filler. The second sentence is somewhat redundant against the output schema, which keeps it just short of ideal.
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 single-parameter lookup with full schema coverage, complete annotations, and an output schema, the description supplies enough for correct invocation. The one missing piece is its role as a prerequisite resolver for the sibling time tools.
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 description coverage is 100% for the single required parameter, and the schema already documents flexible spelling/accents and acceptance of a raw city id. The description adds no syntax, format, or constraint detail beyond that, so the baseline of 3 applies.
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 cities by name"), which is unambiguous and clearly distinct from the time-oriented siblings. It does not, however, explicitly position itself relative to those siblings (e.g., as the id-resolver feeding convert_time or current_time_in_cities).
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?
The description gives no when-to-use or when-not-to-use guidance and never references the sibling tools, even though the returned id and time zone are exactly what several siblings require. Any routing logic an agent applies must be inferred entirely from the tool name and output.
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.
7 tool updates
- Changed
convert_time1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "candidates": { + "items": { + "properties": { + "country": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "region": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "type": "array" + }, + "error": { + "type": "string" + }, + "from": { + "properties": { + "country": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "link": { + "type": "string" + }, + "local": { + "type": "string" + }, + "name": { + "type": "string" + }, + "offset": { + "type": "string" + }, + "region": { + "type": [ + "string", + "null" + ] + }, + "weekend": { + "type": [ + "string", + "null" + ] + }, + "zone": { + "type": "string" + } + }, + "required": [ + "name", + "zone", + "local", + "offset", + "kind", + "link" + ], + "type": "object" + }, + "link": { + "type": "string" + }, + "links": { + "properties": { + "google": { + "type": "string" + }, + "ics": { + "type": "string" + }, + "meeting": { + "type": "string" + }, + "planner": { + "type": "string" + } + }, + "required": [ + "meeting", + "planner", + "ics", + "google" + ], + "type": "object" + }, + "to": { + "items": { + "properties": { + "country": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "link": { + "type": "string" + }, + "local": { + "type": "string" + }, + "name": { + "type": "string" + }, + "offset": { + "type": "string" + }, + "region": { + "type": [ + "string", + "null" + ] + }, + "weekend": { + "type": [ + "string", + "null" + ] + }, + "zone": { + "type": "string" + } + }, + "required": [ + "name", + "zone", + "local", + "offset", + "kind", + "link" + ], + "type": "object" + }, + "type": "array" + }, + "utc": { + "type": "string" + } + }, + "required": [ + "link", + "utc", + "from", + "to", + "links" + ], + "type": "object" +}
- Changed
create_meeting_link1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "candidates": { + "items": { + "properties": { + "country": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "region": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "type": "array" + }, + "cities": { + "items": { + "properties": { + "country": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "link": { + "type": "string" + }, + "local": { + "type": "string" + }, + "name": { + "type": "string" + }, + "offset": { + "type": "string" + }, + "region": { + "type": [ + "string", + "null" + ] + }, + "weekend": { + "type": [ + "string", + "null" + ] + }, + "zone": { + "type": "string" + } + }, + "required": [ + "name", + "zone", + "local", + "offset", + "kind", + "link" + ], + "type": "object" + }, + "type": "array" + }, + "duration_minutes": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "items": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "format": { + "enum": [ + "link", + "text", + "ics", + "google", + "qr" + ], + "type": "string" + }, + "mime_type": { + "type": "string" + }, + "text": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "format", + "description" + ], + "type": "object" + }, + "type": "array" + }, + "link": { + "type": "string" + }, + "local": { + "items": { + "properties": { + "kind": { + "type": "string" + }, + "local_end": { + "type": "string" + }, + "local_start": { + "type": "string" + }, + "name": { + "type": "string" + }, + "weekend": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name", + "local_start", + "local_end", + "kind", + "weekend" + ], + "type": "object" + }, + "type": "array" + }, + "same_day_window": { + "type": "string" + }, + "start": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "link", + "items", + "start", + "title", + "duration_minutes", + "cities", + "local", + "same_day_window" + ], + "type": "object" +}
- Changed
current_time_in_cities1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "candidates": { + "items": { + "properties": { + "country": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "region": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "type": "array" + }, + "cities": { + "items": { + "properties": { + "country": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "link": { + "type": "string" + }, + "local": { + "type": "string" + }, + "name": { + "type": "string" + }, + "offset": { + "type": "string" + }, + "region": { + "type": [ + "string", + "null" + ] + }, + "weekend": { + "type": [ + "string", + "null" + ] + }, + "zone": { + "type": "string" + } + }, + "required": [ + "name", + "zone", + "local", + "offset", + "kind", + "link" + ], + "type": "object" + }, + "type": "array" + }, + "error": { + "type": "string" + }, + "link": { + "type": "string" + }, + "utc": { + "type": "string" + } + }, + "required": [ + "link", + "utc", + "cities" + ], + "type": "object" +}
- Removed
dst_changes - Changed
find_best_meeting_time1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "candidates": { + "items": { + "properties": { + "country": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "region": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "type": "array" + }, + "cities": { + "items": { + "properties": { + "country": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "link": { + "type": "string" + }, + "name": { + "type": "string" + }, + "native": { + "type": [ + "string", + "null" + ] + }, + "query": { + "type": "string" + }, + "region": { + "type": [ + "string", + "null" + ] + }, + "zone": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name", + "link" + ], + "type": "object" + }, + "type": "array" + }, + "end_date": { + "type": "string" + }, + "error": { + "type": "string" + }, + "link": { + "type": "string" + }, + "next_step": { + "type": "string" + }, + "note": { + "type": "string" + }, + "slots": { + "items": { + "properties": { + "cities": { + "items": { + "properties": { + "country": { + "type": "string" + }, + "dst": { + "type": [ + "object", + "null" + ] + }, + "kind": { + "type": "string" + }, + "local_end": { + "type": "string" + }, + "local_start": { + "type": "string" + }, + "name": { + "type": "string" + }, + "offset": { + "type": "string" + }, + "weekend": { + "type": [ + "string", + "null" + ] + }, + "zone": { + "type": "string" + } + }, + "required": [ + "name", + "zone", + "local_start", + "local_end", + "offset", + "kind" + ], + "type": "object" + }, + "type": "array" + }, + "end": { + "type": "string" + }, + "label": { + "type": "string" + }, + "reasons": { + "items": { + "type": "string" + }, + "type": "array" + }, + "score": { + "type": "number" + }, + "shifted": { + "type": "boolean" + }, + "start": { + "type": "string" + } + }, + "required": [ + "score", + "label", + "shifted", + "start", + "end", + "reasons", + "cities" + ], + "type": "object" + }, + "type": "array" + }, + "start_date": { + "type": "string" + } + }, + "required": [ + "link", + "start_date", + "end_date", + "cities", + "slots", + "next_step", + "note" + ], + "type": "object" +}
- Added
get_dst_changes - Changed
search_cities1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "candidates": { + "items": { + "properties": { + "country": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "region": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "type": "array" + }, + "error": { + "type": "string" + }, + "link": { + "type": "string" + }, + "query": { + "type": "string" + }, + "results": { + "items": { + "properties": { + "country": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "link": { + "type": "string" + }, + "name": { + "type": "string" + }, + "native": { + "type": [ + "string", + "null" + ] + }, + "query": { + "type": "string" + }, + "region": { + "type": [ + "string", + "null" + ] + }, + "zone": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name", + "link" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "link", + "query", + "results" + ], + "type": "object" +}
6 tool updates
- First observed
convert_time - First observed
create_meeting_link - First observed
current_time_in_cities - First observed
dst_changes - First observed
find_best_meeting_time - First observed
search_cities
Publisher details
- Operator
- U-Things · Publisher source
- Operator website
- https://timeofmeeting.com · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://timeofmeeting.com/mcp · Publisher source
- Trust center
- Not applicable
- Restrictions
- None: free, no sign-up, rate-limited · Publisher source
Related MCP Connectors
Time zone conversion, meeting-slot finding across countries, DST checks and .ics invites. All.
Find meeting times that overlap working hours across IANA time zones, DST-aware. Free tier.
Find a time a group can meet: no-login availability poll that picks the best meeting slot.
Merged free/busy, find mutual time, propose bookings with human approval. Never event contents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to find meeting times that overlap working hours across IANA time zones, DST-aware, and to search available time zones.MIT
- 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-
- AlicenseAqualityBmaintenanceProvides accurate time zone conversions, DST-safe scheduling, holidays for 200+ countries, business day calculations, and cross-zone meeting slot suggestions.5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.