Perfect Clock MCP
An official MCP server provided by Perfect Clock that enables AI agents to plan meetings across time zones and find suitable meeting windows. It supports tools for scheduling and finding availability, integrating with Google Calendar for read-only event access, and operates without authentication requirements.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://perfectclock.cc/mcpWhat you can do with it
- Plan meetings across time zones from a conversation
- Find meeting windows that suit everyone's local time
- Schedule international calls for remote teams
Source and maintenance
Protocol and capabilities
- Server
- perfect-clock 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 2 advertised
- Resources
- 2 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": true
},
"prompts": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
2 advertised
plan_meeting_schedule — Plan a meeting schedule
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.
{
"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
}
}
}{
"title": "Plan a meeting schedule",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}find_meeting_windows — Find meeting windows
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.
{
"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
}
}
}{
"title": "Find meeting windows",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}Prompts
0 advertised
Resources
2 advertised
schedule-widget — Meeting schedule
Meetings in every participant's local time, with a button that opens them in Perfect Clock.
ui://perfect-clock/schedule-v4.htmlwindows-widget — Meeting windows
Times when everyone is within working hours, by day, with the suggested start and a button that opens it in Perfect Clock.
ui://perfect-clock/windows-v1.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 977 ms
- 95th percentile latency
- 977 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 977 ms · metadata changed · 2 tool(s), 2 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http perfect-clock-mcp https://perfectclock.cc/mcpCodex
codex mcp add perfect-clock-mcp --url https://perfectclock.cc/mcpCursor
{
"mcpServers": {
"perfect-clock-mcp": {
"url": "https://perfectclock.cc/mcp"
}
}
}Cline
{
"mcpServers": {
"perfect-clock-mcp": {
"type": "streamableHttp",
"url": "https://perfectclock.cc/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"perfect-clock-mcp": {
"type": "http",
"url": "https://perfectclock.cc/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http perfect-clock-mcp https://perfectclock.cc/mcpClaude Desktop
{
"mcpServers": {
"perfect-clock-mcp": {
"url": "https://perfectclock.cc/mcp"
}
}
}Windsurf
{
"mcpServers": {
"perfect-clock-mcp": {
"serverUrl": "https://perfectclock.cc/mcp"
}
}
}Let your agent find its tools
Find servers like Perfect Clock MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Perfect Clock MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.