Find meeting times across time zones and compare working hours.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Finds when people in other time zones can meet, when the time is not decided yet: the windows on each day when all participants are within their working hours, accounting for weekends, public holidays and daylight-saving changes, and one suggested start time that fits the most days. Saves that suggested time on those days for 30 days and returns a private perfectclock.cc/s/... link that opens it in Perfect Clock.
Time zone whose calendar days are scanned (usually the organizer's).
People or places the meeting must suit, each with their own time zone.
First day in `tz`; default today.
Meeting title, if the user gave one.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Finds when people in other time zones can meet, when the time is not decided yet: the windows on each day when all participants are within their working hours, accounting for weekends, public holidays and daylight-saving changes, and one suggested start time that fits the most days. Saves that suggested time on those days for 30 days and returns a private perfectclock.cc/s/... link that opens it in Perfect Clock.
| Argument | Type | Description |
|---|---|---|
| tz* | string | Time zone whose calendar days are scanned (usually the organizer's). |
| days | integer | |
| from | string | First day in `tz`; default today. |
| title | string | Meeting title, if the user gave one. |
| participants* | array | People or places the meeting must suit, each with their own time zone. |
| durationMinutes | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tz",
"participants"
],
"properties": {
"tz": {
"type": "string",
"description": "Time zone whose calendar days are scanned (usually the organizer's)."
},
"days": {
"type": "integer",
"default": 5,
"maximum": 14,
"minimum": 1
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day in `tz`; default today."
},
"title": {
"type": "string",
"maxLength": 120,
"description": "Meeting title, if the user gave one."
},
"participants": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"tz"
],
"properties": {
"tz": {
"type": "string",
"description": "IANA time zone of this participant, e.g. Asia/Tbilisi."
},
"label": {
"type": "string",
"maxLength": 60,
"description": "How the participant or place is called in the conversation, e.g. \"Anna\" or \"Tokyo office\"."
},
"workHours": {
"type": "array",
"items": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
},
"maxItems": 2,
"minItems": 2,
"description": "Local working hours [start, end]; default [\"09:00\",\"17:00\"]."
}
}
},
"maxItems": 10,
"minItems": 1,
"description": "People or places the meeting must suit, each with their own time zone."
},
"durationMinutes": {
"type": "integer",
"default": 60,
"maximum": 480,
"minimum": 15
}
}
}Plans a one-off or recurring meeting with people in other time zones when its time is known (e.g. "every other Tuesday at 10:00 Berlin time with Anna in Tbilisi"). Expands it into concrete dates and shows each one in every participant's local time, with working-hours checks, public holidays and daylight-saving shifts. Saves the schedule for 30 days and returns a private perfectclock.cc/s/... link that opens it in Perfect Clock.
| Argument | Type | Description |
|---|---|---|
| tz* | string | Time zone the meeting time is fixed in (usually the organizer's). |
| rule* | object | Recurrence of the meeting. |
| time* | string | Local start time in `tz`. |
| title* | string | Meeting title. |
| participants* | array | People or places the meeting must suit, each with their own time zone. |
| maxOccurrences | integer | How many upcoming meetings to list. |
| durationMinutes | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"title",
"tz",
"time",
"rule",
"participants"
],
"properties": {
"tz": {
"type": "string",
"description": "Time zone the meeting time is fixed in (usually the organizer's)."
},
"rule": {
"type": "object",
"required": [
"freq"
],
"properties": {
"freq": {
"enum": [
"once",
"daily",
"weekly",
"monthly"
],
"type": "string"
},
"byDay": {
"type": "array",
"items": {
"enum": [
"MO",
"TU",
"WE",
"TH",
"FR",
"SA",
"SU"
],
"type": "string"
},
"description": "Weekdays for weekly rules; for monthly with setPos, the weekday."
},
"count": {
"type": "integer",
"maximum": 500,
"minimum": 1
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First possible date in `tz`; default today."
},
"until": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"setPos": {
"type": "integer",
"maximum": 4,
"minimum": -1,
"description": "Monthly \"Nth weekday\": 1-4, or -1 for the last."
},
"interval": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Every N days/weeks/months; default 1."
}
},
"description": "Recurrence of the meeting."
},
"time": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"description": "Local start time in `tz`."
},
"title": {
"type": "string",
"maxLength": 120,
"description": "Meeting title."
},
"participants": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"tz"
],
"properties": {
"tz": {
"type": "string",
"description": "IANA time zone of this participant, e.g. Asia/Tbilisi."
},
"label": {
"type": "string",
"maxLength": 60,
"description": "How the participant or place is called in the conversation, e.g. \"Anna\" or \"Tokyo office\"."
},
"workHours": {
"type": "array",
"items": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
},
"maxItems": 2,
"minItems": 2,
"description": "Local working hours [start, end]; default [\"09:00\",\"17:00\"]."
}
}
},
"maxItems": 10,
"minItems": 1,
"description": "People or places the meeting must suit, each with their own time zone."
},
"maxOccurrences": {
"type": "integer",
"default": 8,
"maximum": 20,
"minimum": 1,
"description": "How many upcoming meetings to list."
},
"durationMinutes": {
"type": "integer",
"default": 60,
"maximum": 720,
"minimum": 5
}
}
}