InviteKit Calendar Files

.ics files & calendar links

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
100%
이름 품질
100%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,717토큰 (도구 정의)
~13.1 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.12%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "calendar-invite": {
      "url": "https://calendar-invite.zovo.one/mcp"
    }
  }
}

원격 엔드포인트

https://calendar-invite.zovo.one/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (2)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢generate_calendar_event(title, start, end, duration_minutes, all_day, ...)

Use this when the user wants a calendar invite, an .ics file, or an add-to-calendar link (Google Calendar, Outlook, Office 365, Yahoo) for one event or one repeating event: a webinar, class, meeting, party, deadline, or launch. Takes the title, local start/end and the event's time zone (city or IANA zone), or dates only for all-day events, plus optional location, description, link, organizer name, reminders, and a repeat rule (daily, weekly on chosen weekdays, monthly by date, nth weekday such as the last Friday, or the first/last weekday of the month, yearly; with count, until date, and skipped dates). Returns a downloadable RFC 5545 .ics file with time zone data, four add-to-calendar links, and the first 5 dates in the event's zone and optional attendee zones, with daylight saving changes flagged. Does not send invitations, read or change anyone's calendar, or track RSVPs. Do not use for a list of different sessions (use generate_event_series) or for finding a meeting time across zones.

입력 스키마

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 200,
      "description": "Event title, e.g. Product launch webinar."
    },
    "start": {
      "type": "string",
      "maxLength": 40,
      "description": "Local start YYYY-MM-DDTHH:MM in the event's time zone, e.g. 2026-11-05T18:30, or a date YYYY-MM-DD for an all-day event. No UTC offset."
    },
    "end": {
      "description": "Local end YYYY-MM-DDTHH:MM, or just a time HH:MM on the start day, e.g. 21:00. For all-day events, the last day YYYY-MM-DD (inclusive). Default: 1 hour, or 1 day for all-day.",
      "type": "string",
      "maxLength": 40
    },
    "duration_minutes": {
      "description": "Length in minutes instead of end, e.g. 90.",
      "type": "integer",
      "minimum": 1,
      "maximum": 20160
    },
    "all_day": {
      "description": "true for an all-day event (dates only), e.g. a conference day or a deadline. Automatic when start has no time.",
      "type": "boolean"
    },
    "location": {
      "description": "Venue, address, or meeting room shown in the calendar, e.g. Pier 39, San Francisco.",
      "type": "string",
      "maxLength": 300
    },
    "description": {
      "description": "Event details or agenda (plain text; line breaks allowed), e.g. Bring a laptop.",
      "type": "string",
      "maxLength": 1500
    },
    "url": {
      "description": "Optional event page or video-call link, e.g. https://example.com/webinar.",
      "type": "string",
      "maxLength": 500
    },
    "organizer_name": {
      "description": "Optional organizer name shown in the details, e.g. Acme Events. No email needed.",
      "type": "string",
      "maxLength": 100
    },
    "reminders_minutes_before": {
      "description": "Up to 3 reminders in minutes before the start, e.g. [15, 1440] for 15 minutes and 1 day before.",
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 40320
      }
    },
    "time_zone": {
      "description": "Time zone of the start/end: IANA zone (Europe/Warsaw), city (Chicago, Sydney), or UTC. Required for timed events; not used for all-day events.",
      "type": "string",
      "maxLength": 80
    },
    "recurrence": {
      "description": "Optional repeat rule, e.g. {\"frequency\":\"weekly\",\"weekdays\":[\"TU\",\"TH\"],\"count\":10}.",
      "type": "object",
      "properties": {
        "frequency": {
          "type": "string",
          "enum": [
            "daily",
            "weekly",
            "monthly",
            "yearly"
          ],
          "description": "How often it repeats, e.g. weekly."
        },
        "interval": {
          "description": "Repeat every N days/weeks/months/years, e.g. 2 for every other week. Default 1.",
          "type": "integer",
          "minimum": 1,
          "maximum": 99
        },
        "weekdays": {
          "description": "Weekly: the days it repeats on, e.g. [\"TU\",\"TH\"] (default: the start's weekday). Monthly/yearly with nth_weekday: one weekday, e.g. [\"TU\"], or several with nth to pick from the set, e.g. [\"MO\",\"TU\",\"WE\",\"TH\",\"FR\"] with nth -1 for the last weekday of the month.",
          "maxItems": 7,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 12
          }
        },
        "monthly_on": {
          "description": "Monthly/yearly: day_of_month (same date, e.g. the 15th; default) or nth_weekday (e.g. the second Tuesday or the last Friday).",
          "type": "string",
          "enum": [
            "day_of_month",
            "nth_weekday"
          ]
        },
        "nth": {
          "description": "With nth_weekday: 1-5, or -1 for the last, e.g. 2 for the second Tuesday. Default: the start date's position in its month.",
          "type": "integer",
          "minimum": -1,
          "maximum": 5
        },
        "count": {
          "description": "Total number of dates in the pattern, e.g. 10. Do not combine with until.",
          "type": "integer",
          "minimum": 1,
          "maximum": 1000
        },
        "until": {
          "description": "Last possible date YYYY-MM-DD (inclusive), e.g. 2027-06-30. Leave out count and until for no end date.",
          "type": "string",
          "maxLength": 10
        },
        "exceptions": {
          "description": "Dates YYYY-MM-DD to skip, e.g. [\"2026-12-24\"]. Each must be a date the pattern produces.",
          "maxItems": 60,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 10
          }
        }
      },
      "required": [
        "frequency"
      ]
    },
    "viewer_time_zones": {
      "description": "Optional places or zones of attendees to show local times for, e.g. [\"New York\", \"Tokyo\"].",
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 80
      }
    }
  },
  "required": [
    "title",
    "start"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string"
    },
    "all_day": {
      "type": "boolean"
    },
    "when": {
      "type": "string"
    },
    "time_zone": {
      "type": [
        "string",
        "null"
      ]
    },
    "zone_label": {
      "type": [
        "string",
        "null"
      ]
    },
    "start": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string"
        },
        "time": {
          "type": "string"
        }
      },
      "required": [
        "date"
      ],
      "additionalProperties": false
    },
    "end": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string"
        },
        "time": {
          "type": "string"
        }
      },
      "required": [
        "date"
      ],
      "additionalProperties": false
    },
    "duration": {
      "type": "string"
    },
    "location": {
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "url": {
      "type": [
        "string",
        "null"
      ]
    },
    "organizer": {
      "type": [
        "string",
        "null"
      ]
    },
    "reminders": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "recurrence": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "rrule": {
              "type": [
                "string",
                "null"
              ]
            },
            "text": {
              "type": "string"
            },
            "total": {
              "type": [
                "number",
                "null"
              ]
            },
            "count": {
              "type": [
                "number",
                "null"
              ]
            },
            "until": {
              "type": [
                "string",
                "null"
              ]
            },
            "last_date": {
              "type": [
                "string",
                "null"
              ]
            },
            "exceptions": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "rrule",
            "text",
            "total",
            "count",
            "until",
            "last_date",
            "exceptions"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "occurrences": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      }
    },
    "viewer_zones": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "links": {
      "type": "object",
      "properties": {
        "google": {
          "type": "string"
        },
        "outlook": {
          "type": "string"
        },
        "office365": {
          "type": "string"
        },
        "yahoo": {
          "type": "string"
        }
      },
      "required": [
        "google",
        "outlook",
        "office365",
        "yahoo"
      ],
      "additionalProperties": false
    },
    "downloads": {
      "type": "object",
      "properties": {
        "ics": {
          "type": "string"
        }
      },
      "required": [
        "ics"
      ],
      "additionalProperties": false
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "title",
    "all_day",
    "when",
    "time_zone",
    "zone_label",
    "start",
    "end",
    "duration",
    "location",
    "description",
    "url",
    "organizer",
    "reminders",
    "recurrence",
    "occurrences",
    "viewer_zones",
    "links",
    "downloads",
    "notes"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢generate_event_series(calendar_name, time_zone, events, location, description, ...)

Use this when the user wants one calendar file (.ics) that adds several different events at once: a course or class schedule, a training program, a conference agenda, match fixtures, or a list of webinars on irregular dates. Takes 1-40 sessions (each with its own start, end or duration, optional title, location and note) plus a shared time zone, location, details, link, organizer name and reminders. Returns one .ics file with one event per session and a dated list of the sessions. Does not make add-to-calendar web links per session, send invitations, or change anyone's calendar. Do not use for an event that repeats on a regular pattern (use generate_calendar_event with recurrence).

입력 스키마

{
  "type": "object",
  "properties": {
    "calendar_name": {
      "description": "Name for the schedule, e.g. Spanish A1 evening course. Shown as the calendar name and default title.",
      "type": "string",
      "maxLength": 100
    },
    "time_zone": {
      "description": "Time zone for all sessions: IANA zone or city, e.g. America/Chicago. Required when sessions have times.",
      "type": "string",
      "maxLength": 80
    },
    "events": {
      "minItems": 1,
      "maxItems": 40,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "description": "Session title, e.g. Week 1: Introduction. Default: calendar_name with the session number.",
            "type": "string",
            "maxLength": 200
          },
          "start": {
            "type": "string",
            "maxLength": 40,
            "description": "Local start YYYY-MM-DDTHH:MM, e.g. 2027-01-12T18:00, or YYYY-MM-DD for all-day."
          },
          "end": {
            "description": "Local end time HH:MM or YYYY-MM-DDTHH:MM, e.g. 19:30. All-day: last day YYYY-MM-DD.",
            "type": "string",
            "maxLength": 40
          },
          "duration_minutes": {
            "description": "Length in minutes instead of end, e.g. 90.",
            "type": "integer",
            "minimum": 1,
            "maximum": 20160
          },
          "all_day": {
            "description": "true for a date-only event, e.g. an exam day.",
            "type": "boolean"
          },
          "location": {
            "description": "Location for this session if it differs, e.g. Room 204.",
            "type": "string",
            "maxLength": 300
          },
          "description": {
            "description": "Short note for this session, e.g. Quiz on chapter 3.",
            "type": "string",
            "maxLength": 300
          }
        },
        "required": [
          "start"
        ]
      },
      "description": "1-40 distinct sessions with their own dates, e.g. [{\"title\":\"Week 1\",\"start\":\"2027-01-12T18:00\",\"end\":\"19:30\"}]."
    },
    "location": {
      "description": "Default location for every session, e.g. Community Center, Room 2.",
      "type": "string",
      "maxLength": 300
    },
    "description": {
      "description": "Shared details added to every session, e.g. Bring your workbook.",
      "type": "string",
      "maxLength": 600
    },
    "url": {
      "description": "Optional shared link, e.g. a course page or video-call link: https://example.com/course.",
      "type": "string",
      "maxLength": 500
    },
    "organizer_name": {
      "description": "Optional organizer or teacher name, e.g. Ms. Rivera.",
      "type": "string",
      "maxLength": 100
    },
    "reminders_minutes_before": {
      "description": "Up to 3 reminders for every session, minutes before, e.g. [60].",
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 40320
      }
    }
  },
  "required": [
    "events"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "calendar_name": {
      "type": [
        "string",
        "null"
      ]
    },
    "time_zone": {
      "type": [
        "string",
        "null"
      ]
    },
    "zone_label": {
      "type": [
        "string",
        "null"
      ]
    },
    "event_count": {
      "type": "number"
    },
    "first_date": {
      "type": "string"
    },
    "last_date": {
      "type": "string"
    },
    "location": {
      "type": [
        "string",
        "null"
      ]
    },
    "reminders": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      }
    },
    "downloads": {
      "type": "object",
      "properties": {
        "ics": {
          "type": "string"
        }
      },
      "required": [
        "ics"
      ],
      "additionalProperties": false
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "calendar_name",
    "time_zone",
    "zone_label",
    "event_count",
    "first_date",
    "last_date",
    "location",
    "reminders",
    "events",
    "downloads",
    "notes"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 2개