Skip to main content
Glama

Urlaub Smart

Plan vacation days

plan_vacation

Optimal vacation plan for a region and year: which days to book so that public holidays and weekends turn into the longest breaks. Returns the plan blocks (booking dates, days off, factor, holidays used), further opportunities, a markdown table and a link to the interactive plan on urlaub-smart.de. Cite the URL when answering.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNoPlanning year; defaults to the year people currently plan for
shiftNoRolling shift rotation instead of Mon–Fri, e.g. 4 days on / 2 days off. Replaces the weekday assumption entirely.
localeNoLanguage of names and explanations (German only)de
regionYesRegion as name, slug or ISO code, e.g. "Bayern", "bavaria", "DE-BY", "Tirol", "Zürich" or a country like "Deutschland" / "AT". Germany, Austria and Switzerland only.
strategyNobalanced = mix, long-weekends = max 2 vacation days per block, extended = blocks of 4+ daysbalanced
fixedDatesNoISO dates already booked as vacation; the plan works around them
vacationDaysNoVacation days available for the year
carryoverDaysNoPart of vacationDays that is carry-over from last year and expires on March 31; spent first on periods before the deadline
schoolHolidaysNoany = ignore, avoid = no overlap with school holidays, prefer = book only inside school holidaysany
companyClosuresNoCompany closures (Betriebsferien) as inclusive ISO date ranges; treated like public holidays
companyFreeDatesNoWorking days the employer gives off without a vacation day, ISO dates (e.g. 2027-12-24, 2027-12-31); treated like public holidays

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / region / description
      Previous value: -"Region as name, slug or ISO code, e.g. \"Bayern\", \"bavaria\", \"DE-BY\", \"Tirol\", \"Zürich\" or a country like \"Deutschland\" / \"AT\""New value: +"Region as name, slug or ISO code, e.g. \"Bayern\", \"bavaria\", \"DE-BY\", \"Tirol\", \"Zürich\" or a country like \"Deutschland\" / \"AT\". Germany, Austria and Switzerland only."
  2. Changed1 schema field changed
    • addedInput schema / properties / shift
      Added value: +{
      +  "description": "Rolling shift rotation instead of Mon–Fri, e.g. 4 days on / 2 days off. Replaces the weekday assumption entirely.",
      +  "properties": {
      +    "firstWorkingDay": {
      +      "description": "ISO date of the first working day of a cycle",
      +      "type": "string"
      +    },
      +    "offDays": {
      +      "maximum": 14,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "onDays": {
      +      "maximum": 14,
      +      "minimum": 1,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "onDays",
      +    "offDays",
      +    "firstWorkingDay"
      +  ],
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / locale / description
      Previous value: -"Language of names and explanations"New value: +"Language of names and explanations (German only)"
  4. First observed

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the output (blocks, markdown table, URL) and instructs to cite the URL, which is helpful. However, it doesn't disclose potential limitations (e.g., that it relies on an external service, how it handles invalid regions, or any rate limits). The description is not misleading but it leaves out operational details that could affect agent behavior, like whether the plan is computed locally or via a remote service.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loaded with the core purpose, then lists the output components and a specific instruction to cite the URL. Every sentence earns its place: the first defines what the tool does, the second enumerates the return values, and the third gives a critical usage directive. There is no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 11 parameters, a nested object, and no output schema, the description adequately conveys the overall function and output format. It explains the return structure (blocks, opportunities, table, link) and includes an actionable instruction. It doesn't describe how parameters like shift or schoolHolidays affect the plan, but those are covered in the schema. The description is sufficient for an agent to understand when and how to use the tool, though it could mention the supported regions explicitly (though that's in the schema).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning every parameter already has a description in the schema. The tool description adds no additional parameter-level semantics beyond naming 'region and year' in the opening sentence. Since the schema handles parameter documentation, the description doesn't need to add more, but it also doesn't provide any extra context that the schema lacks. This is a solid baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: creating an optimal vacation plan for a region and year by suggesting booking days that maximize breaks around holidays and weekends. It specifies the resource (vacation plan) and the action (plan), and it distinguishes itself from siblings like best_bridge_days by focusing on the comprehensive planning output (blocks, opportunities, markdown table, link) rather than just listing bridge days.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does and what it returns, including the interactive link. It doesn't explicitly contrast with sibling tools or state when to prefer this over best_bridge_days, but the purpose is clear enough that an agent can infer it is the full planning tool. The mention of 'optimal vacation plan' and the detailed output implies it is the go-to for vacation planning, while siblings are more specific. This is good but lacks an explicit when-not-to-use statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources