{"apiVersion":"v1","directorySlug":"tilwhen-mcp-34c998d9ac","title":"tilwhen","description":"Date and countdown answers that stay correct: worked out live in your own timezone, so they","pageUrl":"https://www.mcpbundles.com/skills/tilwhen-mcp-34c998d9ac","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.tilwhen.com/mcp","hostedMcpUrl":null,"toolCount":9,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.tilwhen/tilwhen-mcp-34c998d9ac","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"parse_date_query","description":"Parses queries like \"90 business days from today in uganda\" into a normalized operation, answers it, and returns the auditable receipt. Ambiguous dates (03/04/2027) return needsClarification instead of a guess.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","maxLength":200,"minLength":1},"tz":{"type":"string","default":"UTC","maxLength":64},"locale":{"enum":["mdy","dmy"],"type":"string"}},"additionalProperties":false},"title":"Parse a natural-language date question","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"parse_date_query","displayName":"Parse a natural-language date question"},{"name":"add_days","description":"The date N whole calendar days after a date (exclusive counting: the start date is day 0). Omit date for today in tz. For working days use business_days; for the gap between two dates use days_between.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["days"],"properties":{"tz":{"type":"string","default":"UTC","maxLength":64},"date":{"type":"string","default":"today","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"},"days":{"type":"integer","maximum":100000,"minimum":-100000}},"additionalProperties":false},"title":"Add calendar days to a date","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"add_days","displayName":"Add calendar days to a date"},{"name":"subtract_days","description":"The date N whole calendar days before a date (exclusive counting: the start date is day 0). Omit date for today in tz. For working days use business_days; for the gap between two dates use days_between.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["days"],"properties":{"tz":{"type":"string","default":"UTC","maxLength":64},"date":{"type":"string","default":"today","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"},"days":{"type":"integer","maximum":100000,"minimum":-100000}},"additionalProperties":false},"title":"Subtract calendar days from a date","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"subtract_days","displayName":"Subtract calendar days from a date"},{"name":"days_between","description":"Signed whole calendar days from one date to another, midnight to midnight, endpoints exclusive (the gap).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["from","to"],"properties":{"to":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"},"tz":{"type":"string","default":"UTC","maxLength":64},"from":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"}},"additionalProperties":false},"title":"Days between two dates","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"days_between","displayName":"Days between two dates"},{"name":"business_days","description":"Span mode (from+to): business days between two dates, exclusive of the start day, inclusive of the end day. Add mode (days, optional date): the date N business days away. Optional holiday jurisdiction or custom calendar, and a selectable working week.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"to":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"},"tz":{"type":"string","default":"UTC","maxLength":64},"date":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"},"days":{"type":"integer","maximum":100000,"minimum":-100000},"from":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"},"workweek":{"enum":["mon-fri","sun-thu","mon-sat"],"type":"string"},"jurisdiction":{"type":"string","maxLength":8},"customHolidays":{"type":"array","items":{"type":"string"},"maxItems":1000}},"additionalProperties":false},"title":"Business-day calculations","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"business_days","displayName":"Business-day calculations"},{"name":"invoice_due","description":"Due date for Net-N payment terms (calendar days, invoice date = day 0). Optional roll-forward past weekends and, with a jurisdiction or custom calendar, public holidays.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["net"],"properties":{"tz":{"type":"string","default":"UTC","maxLength":64},"net":{"type":"integer","maximum":3650,"minimum":0},"roll":{"type":"boolean"},"workweek":{"enum":["mon-fri","sun-thu","mon-sat"],"type":"string"},"invoiceDate":{"type":"string","default":"today","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"},"jurisdiction":{"type":"string","maxLength":8},"customHolidays":{"type":"array","items":{"type":"string"},"maxItems":1000}},"additionalProperties":false},"title":"Invoice due date from net terms","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"invoice_due","displayName":"Invoice due date from net terms"},{"name":"next_occurrence","description":"The next occurrence strictly after the base date (default today) of either a tracked event slug (e.g. \"christmas\") or a weekday (0 = Sunday .. 6 = Saturday). Provide exactly one of event/weekday.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"tz":{"type":"string","default":"UTC","maxLength":64},"from":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"},"event":{"type":"string","maxLength":40},"weekday":{"type":"integer","maximum":6,"minimum":0}},"additionalProperties":false},"title":"Next occurrence of an event or weekday","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"next_occurrence","displayName":"Next occurrence of an event or weekday"},{"name":"holidays","description":"Observed public holidays with the nominal (legal) date and status: rule (statutory) or declared (officially declared for that year). Declared-only holidays are omitted for undeclared years, with a holiday_data_incomplete warning.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["jurisdiction","year"],"properties":{"year":{"type":"integer","maximum":3000,"minimum":1600},"jurisdiction":{"type":"string","maxLength":8}},"additionalProperties":false},"title":"Public holidays for a jurisdiction and year","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"holidays","displayName":"Public holidays for a jurisdiction and year"},{"name":"explain","description":"Runs any operation and returns the receipt plus human-readable derivation steps. Set op, then pass the fields that operation's own tool takes. Use it when the user asks how an answer was reached.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["op"],"properties":{"op":{"enum":["add_days","subtract_days","days_between","business_days","invoice_due","next_occurrence","holiday_lookup"],"type":"string"},"to":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"},"tz":{"type":"string","default":"UTC","maxLength":64},"net":{"type":"integer","maximum":3650,"minimum":0},"date":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"},"days":{"type":"integer","maximum":100000,"minimum":-100000},"from":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"},"roll":{"type":"boolean"},"year":{"type":"integer","maximum":3000,"minimum":1600},"event":{"type":"string","maxLength":40},"weekday":{"type":"integer","maximum":6,"minimum":0},"workweek":{"enum":["mon-fri","sun-thu","mon-sat"],"type":"string"},"invoiceDate":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|today)$"},"jurisdiction":{"type":"string","maxLength":8},"customHolidays":{"type":"array","items":{"type":"string"},"maxItems":1000}},"additionalProperties":false},"title":"Explain a calculation step by step","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"explain","displayName":"Explain a calculation step by step"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=tilwhen&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AudGlsd2hlbi5jb20vbWNwIn0%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22tilwhen%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.tilwhen.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22tilwhen%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.tilwhen.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=tilwhen&connectorUrl=https%3A%2F%2Fmcp.tilwhen.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"tilwhen\" --url \"https://mcp.tilwhen.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/tilwhen-mcp-34c998d9ac","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/tilwhen-mcp-34c998d9ac/tools/{tool}","mcpServerUrl":"https://mcp.tilwhen.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/tilwhen-mcp-34c998d9ac?live=1"}