Calendar
События и расписание
Подключение: https://mcp.legalstack.ru/mcp/calendar или в составе агрегированного сервера https://mcp.legalstack.ru/mcp.
Имя сервера: legalstack-calendar. Инструментов: 7.
add_event_participant
Добавить участника (приглашённого) к существующему событию. Возвращает: { attendeeId, eventId }.
{
"type": "object",
"properties": {
"eventId": {
"type": "string",
"description": "ID события (UUID, из list_events/get_event)."
},
"name": {
"type": "string",
"description": "Имя участника."
},
"email": {
"type": "string",
"description": "Email участника."
},
"timezone": {
"description": "Таймзона участника (например Europe/Moscow).",
"type": "string"
}
},
"required": [
"eventId",
"name",
"email"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}create_event
Создать событие в календаре. Время — в ISO с таймзоной Москвы (UTC+3), например 2026-03-15T10:00:00+03:00. Возвращает: текст-подтверждение с названием и ID созданного события.
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"description": "Название события."
},
"description": {
"description": "Описание.",
"type": "string"
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}",
"description": "Начало, ISO с таймзоной Москвы: 2026-03-15T10:00:00+03:00."
},
"endDate": {
"description": "Окончание, ISO с таймзоной Москвы: 2026-03-15T11:00:00+03:00.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}"
},
"allDay": {
"description": "Событие на весь день.",
"type": "boolean"
},
"type": {
"description": "Тип события (например meeting, deadline, hearing).",
"type": "string"
},
"color": {
"description": "Цвет события (hex, например #2563eb).",
"type": "string"
}
},
"required": [
"title",
"startDate"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}delete_event
⚠ Необратимо удаляет событие из календаря. Восстановления нет. Возвращает: текст «Событие удалено».
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID события (UUID)."
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}get_availability
Свободные слоты для встречи по календарям указанных пользователей. Только чтение. Используй, чтобы подобрать время («когда все свободны на 30 минут на этой неделе»). Возвращает: массив слотов { start, end, hostUserIds } или текст «Свободных слотов нет».
{
"type": "object",
"properties": {
"userIds": {
"minItems": 1,
"type": "array",
"items": {
"type": "string"
},
"description": "ID пользователей-хостов (find_user/list_users из tasks-сервера)."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}",
"description": "Начало окна поиска, ISO с таймзоной Москвы."
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}",
"description": "Конец окна поиска, ISO с таймзоной Москвы."
},
"durationMin": {
"type": "integer",
"minimum": 5,
"maximum": 9007199254740991,
"description": "Длительность встречи в минутах."
},
"stepMin": {
"description": "Шаг сетки слотов в минутах (по умолчанию = длительности).",
"type": "integer",
"minimum": 5,
"maximum": 9007199254740991
},
"mode": {
"description": "single — свободен любой хост; collective — свободны все одновременно.",
"type": "string",
"enum": [
"single",
"round_robin",
"collective"
]
}
},
"required": [
"userIds",
"from",
"to",
"durationMin"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}get_event
Полная карточка одного события по ID. Только чтение. ID берётся из list_events. Возвращает: объект события.
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID события (UUID)."
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}list_events
События календаря за конкретный месяц и год. Только чтение. Возвращает: { events: [{ id, title, startDate, endDate, allDay, description }] } или текст «События не найдены».
{
"type": "object",
"properties": {
"month": {
"type": "integer",
"minimum": 1,
"maximum": 12,
"description": "Месяц (1-12)."
},
"year": {
"type": "integer",
"minimum": 2000,
"maximum": 2100,
"description": "Год (например 2026)."
}
},
"required": [
"month",
"year"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}update_event
Изменить событие. Передавай только меняемые поля. Время — ISO с таймзоной Москвы (UTC+3). Возвращает: текст-подтверждение с новым названием события.
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID события (UUID)."
},
"title": {
"description": "Новое название.",
"type": "string"
},
"description": {
"description": "Новое описание.",
"type": "string"
},
"startDate": {
"description": "Новое начало, ISO с таймзоной: 2026-03-15T10:00:00+03:00.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}"
},
"endDate": {
"description": "Новое окончание, ISO с таймзоной: 2026-03-15T11:00:00+03:00.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}"
},
"allDay": {
"description": "Событие на весь день.",
"type": "boolean"
},
"type": {
"description": "Новый тип события.",
"type": "string"
},
"color": {
"description": "Новый цвет события (hex).",
"type": "string"
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}