Make a printable calendar as a print-ready vector PDF without leaving the chat.
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.
Use this when the user wants the list of public holidays for a country (and optionally a state or region) in a year, for example to check what a printed calendar will mark ("bank holidays 2027 UK", "Texas holidays 2027", "Feiertage Bayern 2027"). Returns each holiday with its date, weekday and type, including observed weekdays when a holiday falls on a weekend; observances are optional. Does not count business days between dates, and does not cover school terms or religious calendars outside the holiday data.
Country: ISO two-letter code or name, e.g. US, GB, DE, PL, FR, JP, BR, AU, CA.
Year, e.g. 2027. Default: next year from October on, otherwise this year.
Language for month and weekday names: en (default), pl, de, es, fr, it, pt, nl or ja. Holiday names use this language when the country's data has it, else English. Example: de
Optional state, province or region for local holidays, e.g. TX or CA (US), BY (Bavaria, DE), SCT (Scotland), NSW (AU), ON (CA).
Also show observances, bank and optional days (e.g. Mother's Day, Valentine's Day, Christmas Eve). Default false: public holidays only.
Use this when the user wants the list of public holidays for a country (and optionally a state or region) in a year, for example to check what a printed calendar will mark ("bank holidays 2027 UK", "Texas holidays 2027", "Feiertage Bayern 2027"). Returns each holiday with its date, weekday and type, including observed weekdays when a holiday falls on a weekend; observances are optional. Does not count business days between dates, and does not cover school terms or religious calendars outside the holiday data.
| Argument | Type | Description |
|---|---|---|
| year | integer | Year, e.g. 2027. Default: next year from October on, otherwise this year. |
| country* | string | Country: ISO two-letter code or name, e.g. US, GB, DE, PL, FR, JP, BR, AU, CA. |
| language | string | Language for month and weekday names: en (default), pl, de, es, fr, it, pt, nl or ja. Holiday names use this language when the country's data has it, else English. Example: de |
| subdivision | string | Optional state, province or region for local holidays, e.g. TX or CA (US), BY (Bavaria, DE), SCT (Scotland), NSW (AU), ON (CA). |
| include_observances | boolean | Also show observances, bank and optional days (e.g. Mother's Day, Valentine's Day, Christmas Eve). Default false: public holidays only. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"country"
],
"properties": {
"year": {
"type": "integer",
"maximum": 2200,
"minimum": 1950,
"description": "Year, e.g. 2027. Default: next year from October on, otherwise this year."
},
"country": {
"type": "string",
"maxLength": 60,
"description": "Country: ISO two-letter code or name, e.g. US, GB, DE, PL, FR, JP, BR, AU, CA."
},
"language": {
"type": "string",
"maxLength": 20,
"description": "Language for month and weekday names: en (default), pl, de, es, fr, it, pt, nl or ja. Holiday names use this language when the country's data has it, else English. Example: de"
},
"subdivision": {
"type": "string",
"maxLength": 60,
"description": "Optional state, province or region for local holidays, e.g. TX or CA (US), BY (Bavaria, DE), SCT (Scotland), NSW (AU), ON (CA)."
},
"include_observances": {
"type": "boolean",
"description": "Also show observances, bank and optional days (e.g. Mother's Day, Valentine's Day, Christmas Eve). Default false: public holidays only."
}
}
}Use this when the user wants a printable calendar ("printable calendar", "2027 calendar printable", "monthly calendar template", "yearly calendar", "wall calendar", "school year calendar", "calendar with holidays") as a PDF. Builds a year on one page, a 12-month wall calendar with cover, a single month, or a month range up to 24 months, with public holidays for a country and state, custom birthdays and events, Monday or Sunday weeks, ISO week numbers, notes lines, paper size, language and an accent colour. Returns a preview and a PDF download link. Does not add events to Google, Outlook or Apple calendars, does not schedule meetings, and does not draw lunar, Hijri or Hebrew calendars.
| Argument | Type | Description |
|---|---|---|
| end | string | For layout range: last month as YYYY-MM (at most 24 months after start), e.g. 2027-06. |
| year | integer | Year for layout year or wall, e.g. 2027. Default: next year from October on, otherwise this year. |
| bleed | boolean | Add a 0.125 in print bleed with trim marks in the PDF boxes, for professional printing. Default false. |
| month | string | For layout month: the month as YYYY-MM, e.g. 2027-03. |
| notes | boolean | Add a ruled notes area under each month page (not on the one-page year). Default false. |
| paper | string | Paper size: letter (8.5x11 in), a4, a3 or tabloid (11x17 in). Default letter for US/Canada/Mexico, a4 for other countries. |
| start | string | For layout range: first month as YYYY-MM, e.g. 2026-08. |
| title | string | Optional title printed on the calendar, e.g. "Kowalski Family 2027". Default: the year or month. |
| accent | string | One accent colour for headings and holiday marks: a hex code like #0F766E or a name (indigo, blue, navy, teal, green, olive, red, crimson, pink, purple, orange, amber, brown, slate, gray, black). Default indigo. |
| events | array | Custom events and birthdays (up to 60). Example: [{"date":"03-04","title":"Mom's birthday"},{"date":"2027-06-12","title":"Wedding"}] |
| layout* | string | year = whole year on one page; wall = 12-month wall calendar, a cover plus one month per page; month = one month on one page; range = one page per month from start to end (e.g. a school year). Example: wall |
| country | string | Country for public holidays: ISO two-letter code or name, e.g. US, GB, DE, PL, FR, JP, BR, AU, CA. Omit for a calendar without holidays. |
| holidays | boolean | Show public holidays when a country is given. Default true; false hides them. |
| language | string | Language for month and weekday names: en (default), pl, de, es, fr, it, pt, nl or ja. Holiday names use this language when the country's data has it, else English. Example: de |
| week_start | string | First day of each week row. Default: the country's custom (Sunday for US, CA, BR, JP...; Monday for most of Europe); without a country, Sunday for English, Monday otherwise. Example: monday |
| orientation | string | Page orientation. Default landscape. Example: portrait |
| start_month | integer | First month (1-12) for a 12-month year or wall calendar; 8 makes an August-to-July academic calendar. Default 1. |
| subdivision | string | Optional state, province or region for local holidays, e.g. TX or CA (US), BY (Bavaria, DE), SCT (Scotland), NSW (AU), ON (CA). |
| week_numbers | boolean | Print ISO 8601 week numbers beside each week row. Default false. Example: true |
| include_observances | boolean | Also show observances, bank and optional days (e.g. Mother's Day, Valentine's Day, Christmas Eve). Default false: public holidays only. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"layout"
],
"properties": {
"end": {
"type": "string",
"maxLength": 20,
"description": "For layout range: last month as YYYY-MM (at most 24 months after start), e.g. 2027-06."
},
"year": {
"type": "integer",
"maximum": 2200,
"minimum": 1950,
"description": "Year for layout year or wall, e.g. 2027. Default: next year from October on, otherwise this year."
},
"bleed": {
"type": "boolean",
"description": "Add a 0.125 in print bleed with trim marks in the PDF boxes, for professional printing. Default false."
},
"month": {
"type": "string",
"maxLength": 20,
"description": "For layout month: the month as YYYY-MM, e.g. 2027-03."
},
"notes": {
"type": "boolean",
"description": "Add a ruled notes area under each month page (not on the one-page year). Default false."
},
"paper": {
"enum": [
"letter",
"a4",
"a3",
"tabloid"
],
"type": "string",
"maxLength": 30,
"description": "Paper size: letter (8.5x11 in), a4, a3 or tabloid (11x17 in). Default letter for US/Canada/Mexico, a4 for other countries."
},
"start": {
"type": "string",
"maxLength": 20,
"description": "For layout range: first month as YYYY-MM, e.g. 2026-08."
},
"title": {
"type": "string",
"maxLength": 80,
"description": "Optional title printed on the calendar, e.g. \"Kowalski Family 2027\". Default: the year or month."
},
"accent": {
"type": "string",
"maxLength": 20,
"description": "One accent colour for headings and holiday marks: a hex code like #0F766E or a name (indigo, blue, navy, teal, green, olive, red, crimson, pink, purple, orange, amber, brown, slate, gray, black). Default indigo."
},
"events": {
"type": "array",
"items": {
"type": "object",
"required": [
"date",
"title"
],
"properties": {
"date": {
"type": "string",
"maxLength": 30,
"description": "MM-DD for every year (a birthday, e.g. 03-04) or YYYY-MM-DD for one date (e.g. 2027-05-14). \"Mar 4\" also works."
},
"title": {
"type": "string",
"maxLength": 60,
"description": "Short label drawn in the day cell, e.g. Mom's birthday."
}
}
},
"maxItems": 60,
"description": "Custom events and birthdays (up to 60). Example: [{\"date\":\"03-04\",\"title\":\"Mom's birthday\"},{\"date\":\"2027-06-12\",\"title\":\"Wedding\"}]"
},
"layout": {
"enum": [
"year",
"wall",
"month",
"range"
],
"type": "string",
"maxLength": 30,
"description": "year = whole year on one page; wall = 12-month wall calendar, a cover plus one month per page; month = one month on one page; range = one page per month from start to end (e.g. a school year). Example: wall"
},
"country": {
"type": "string",
"maxLength": 60,
"description": "Country for public holidays: ISO two-letter code or name, e.g. US, GB, DE, PL, FR, JP, BR, AU, CA. Omit for a calendar without holidays."
},
"holidays": {
"type": "boolean",
"description": "Show public holidays when a country is given. Default true; false hides them."
},
"language": {
"type": "string",
"maxLength": 20,
"description": "Language for month and weekday names: en (default), pl, de, es, fr, it, pt, nl or ja. Holiday names use this language when the country's data has it, else English. Example: de"
},
"week_start": {
"enum": [
"monday",
"sunday"
],
"type": "string",
"maxLength": 30,
"description": "First day of each week row. Default: the country's custom (Sunday for US, CA, BR, JP...; Monday for most of Europe); without a country, Sunday for English, Monday otherwise. Example: monday"
},
"orientation": {
"enum": [
"landscape",
"portrait"
],
"type": "string",
"maxLength": 30,
"description": "Page orientation. Default landscape. Example: portrait"
},
"start_month": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "First month (1-12) for a 12-month year or wall calendar; 8 makes an August-to-July academic calendar. Default 1."
},
"subdivision": {
"type": "string",
"maxLength": 60,
"description": "Optional state, province or region for local holidays, e.g. TX or CA (US), BY (Bavaria, DE), SCT (Scotland), NSW (AU), ON (CA)."
},
"week_numbers": {
"type": "boolean",
"description": "Print ISO 8601 week numbers beside each week row. Default false. Example: true"
},
"include_observances": {
"type": "boolean",
"description": "Also show observances, bank and optional days (e.g. Mother's Day, Valentine's Day, Christmas Eve). Default false: public holidays only."
}
}
}