AddEvent MCP by usefulapi

Read AddEvent calendars, events, RSVPs and subscribers; create and update calendars and events.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
83%
命名质量
97%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(3)

  • LOWTool 'addevent_list_calendar_subscribers' name length outside 3-30 range在 addevent_list_calendar_subscribers 中
  • LOWTool 'addevent_get_calendar_subscriber' name length outside 3-30 range在 addevent_get_calendar_subscriber 中
  • LOWTool 'addevent_list_calendar_templates' name length outside 3-30 range在 addevent_list_calendar_templates 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~6,475token 数(工具定义)
~3.0 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 5.06%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "addevent": {
      "url": "https://addevent.usefulapi.io/mcp"
    }
  }
}

远程端点

https://addevent.usefulapi.io/mcpstreamable-http

它能做什么

工具清单

工具(18)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢addevent_list_calendars(calendar_ids, sort_by, sort_order, page, page_size)

List the account's calendars (newest first by default) with id, title, timezone, whether it is the default calendar, landing-page links and counts of events and subscribers. GET /calendars.

输入模式

{
  "type": "object",
  "properties": {
    "calendar_ids": {
      "description": "Only these calendar ids.",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^\\S+$"
          },
          {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        ],
        "description": "The id (text or number)."
      }
    },
    "sort_by": {
      "description": "Sort field (default created).",
      "type": "string",
      "enum": [
        "created",
        "title"
      ]
    },
    "sort_order": {
      "description": "Sort direction. Needs sort_by.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-20 (default 10).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢addevent_get_calendar(calendar_id)

One calendar by id: title, timezone, week start, template ids, subscriber and event counts, links, custom data. GET /calendars/{id}.

输入模式

{
  "type": "object",
  "properties": {
    "calendar_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^\\S+$"
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      ],
      "description": "Calendar id (see addevent_list_calendars)."
    }
  },
  "required": [
    "calendar_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡addevent_create_calendar(title, timezone, weekday_begin, description, internal_name, ...)

WRITE: creates a new calendar in the AddEvent account (a new, empty calendar; nothing existing is changed and nobody is notified). Needs a title. POST /calendars.

输入模式

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Calendar title (single line)."
    },
    "timezone": {
      "description": "Default timezone for events on this calendar (IANA name).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "weekday_begin": {
      "description": "First day of the week.",
      "type": "string",
      "enum": [
        "sunday",
        "monday"
      ]
    },
    "description": {
      "description": "Shown on the calendar landing page.",
      "type": "string",
      "maxLength": 5000
    },
    "internal_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Internal name, never shown publicly."
    },
    "calendar_color": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Color 1-20 from the palette."
    },
    "landing_page_template_id": {
      "description": "Calendar landing page template id, or 'default' (see addevent_list_calendar_templates).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "embeddable_calendar_template_id": {
      "description": "Embeddable calendar template id, or 'default'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "custom_data": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 2000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ]
      },
      "description": "Arbitrary key-value pairs to store on the object (snake_case keys), e.g. an external id."
    }
  },
  "required": [
    "title"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴addevent_update_calendar(calendar_id, title, timezone, weekday_begin, description, ...)

WRITE: changes fields of an existing calendar (only the fields you pass; the rest stay). Title, description and timezone changes show on its landing page and can reach people who subscribe to the calendar feed. Not reversible by this server (no previous values are kept), so read the calendar first. PATCH /calendars/{id}.

输入模式

{
  "type": "object",
  "properties": {
    "calendar_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^\\S+$"
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      ],
      "description": "Calendar id to change."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "New title (single line)."
    },
    "timezone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "IANA timezone such as America/Los_Angeles, or 'floating' (same local time for everyone). See addevent_list_timezones."
    },
    "weekday_begin": {
      "type": "string",
      "enum": [
        "sunday",
        "monday"
      ]
    },
    "description": {
      "type": "string",
      "maxLength": 5000
    },
    "internal_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Internal name, never shown publicly."
    },
    "calendar_color": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Color 1-20 from the palette."
    },
    "landing_page_template_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "embeddable_calendar_template_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "custom_data": {
      "description": "Key-value pairs to store on the calendar (snake_case keys).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 2000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ]
      }
    }
  },
  "required": [
    "calendar_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢addevent_list_events(calendar_ids, event_ids, starts_before, ends_after, search, ...)

Search the account's events (newest created first; by start time when a date filter is used): title, start/end, timezone, location, RSVP settings and stats, landing-page links. Filter by calendar, event ids, text, date window or a custom_data pair. GET /events.

输入模式

{
  "type": "object",
  "properties": {
    "calendar_ids": {
      "description": "Only events on these calendar ids.",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^\\S+$"
          },
          {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        ],
        "description": "The id (text or number)."
      }
    },
    "event_ids": {
      "description": "Only these event ids.",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^\\S+$"
          },
          {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        ],
        "description": "The id (text or number)."
      }
    },
    "starts_before": {
      "description": "Only events that start before this date-time (datetime_max; naive comparison, timezones ignored).",
      "type": "string"
    },
    "ends_after": {
      "description": "Only events that end after this date-time (datetime_min; naive comparison, timezones ignored).",
      "type": "string"
    },
    "search": {
      "description": "Case-insensitive text in title, internal name, description or location.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "custom_data_key": {
      "description": "Custom data key (needs custom_data_value).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "custom_data_value": {
      "description": "Custom data value (needs custom_data_key).",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "sort_by": {
      "description": "Sort field.",
      "type": "string",
      "enum": [
        "created",
        "title",
        "calendar_id",
        "datetime_start"
      ]
    },
    "sort_order": {
      "description": "Sort direction. Needs sort_by.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-20 (default 10).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢addevent_get_event(event_id)

One event by id (evt-...): all fields incl. description, organizer, reminder, recurring rule, RSVP settings and stats, custom data and share links. GET /events/{id}.

输入模式

{
  "type": "object",
  "properties": {
    "event_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^\\S+$"
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      ],
      "description": "Event id, like evt-0f571af553d8437eb6a9ce22384fdcba (see addevent_list_events)."
    }
  },
  "required": [
    "event_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡addevent_create_event(title, datetime_start, calendar_id, datetime_end, all_day_event, ...)

WRITE: creates a new event on a calendar (the account's default calendar if calendar_id is omitted). Creates a public event landing page and share links; it does not e-mail anyone, though people subscribed to that calendar's feed will see the event on their next sync. Needs title and datetime_start. POST /events.

输入模式

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Event title (single line)."
    },
    "datetime_start": {
      "type": "string",
      "description": "Start date-time: YYYY-MM-DD, YYYY-MM-DD hh:mm or YYYY-MM-DD hh:mm:ss."
    },
    "calendar_id": {
      "description": "Calendar to add the event to (see addevent_list_calendars); default calendar if omitted.",
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^\\S+$"
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      ]
    },
    "datetime_end": {
      "description": "End date-time (default: start + 1 hour). Same formats as the start.",
      "type": "string"
    },
    "all_day_event": {
      "description": "All-day event: only the dates are used.",
      "type": "boolean"
    },
    "timezone": {
      "description": "IANA timezone for the start/end (default: the calendar's timezone), or 'floating'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "recurring_rule": {
      "description": "iCalendar recurrence rule such as FREQ=WEEKLY;COUNT=10. The start must match the rule. Omit for a one-off event; on update an empty string makes the event stop repeating.",
      "type": "string",
      "maxLength": 500
    },
    "description": {
      "description": "Plain text or simple HTML (keep under ~500 characters for cross-browser links).",
      "type": "string",
      "maxLength": 10000
    },
    "internal_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Internal name, never shown publicly."
    },
    "location": {
      "description": "Address or URL (meeting link). Use either location or location_id, not both.",
      "type": "string",
      "maxLength": 1000
    },
    "location_id": {
      "description": "Id of a saved location (0 = none). Not together with location.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "organizer_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Organizer name (needs organizer_email)."
    },
    "organizer_email": {
      "description": "Organizer e-mail (needs organizer_name).",
      "type": "string",
      "maxLength": 254,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "reminder": {
      "description": "Minutes before the start for a calendar-app reminder (0-10800).",
      "type": "integer",
      "minimum": 0,
      "maximum": 10800
    },
    "color": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Color 1-20 from the palette."
    },
    "free_busy": {
      "description": "How the event shows in an attendee's calendar.",
      "type": "string",
      "enum": [
        "free",
        "busy",
        "default"
      ]
    },
    "landing_page_template_id": {
      "description": "Event landing page template id or 'default' (see addevent_list_event_templates).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "rsvp_enabled": {
      "description": "Require an RSVP before the event can be added to a calendar.",
      "type": "boolean"
    },
    "rsvp_form_id": {
      "description": "RSVP form id or 'default' (see addevent_list_rsvp_forms).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "custom_data": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 2000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ]
      },
      "description": "Arbitrary key-value pairs to store on the object (snake_case keys), e.g. an external id."
    }
  },
  "required": [
    "title",
    "datetime_start"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴addevent_update_event(event_id, title, datetime_start, calendar_id, datetime_end, ...)

WRITE: changes fields of an existing event (only the fields you pass; the rest stay). The change goes live on its landing page and share links, and people who subscribed to the calendar or added the event with a live link are updated on their next calendar sync, so a time or location change can notify real people. No previous values are kept: read the event first. PATCH /events/{id}.

输入模式

{
  "type": "object",
  "properties": {
    "event_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^\\S+$"
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      ],
      "description": "Event id (evt-...) to change."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "New title (single line)."
    },
    "datetime_start": {
      "description": "New start: YYYY-MM-DD, YYYY-MM-DD hh:mm or YYYY-MM-DD hh:mm:ss.",
      "type": "string"
    },
    "calendar_id": {
      "description": "Move the event to this calendar id.",
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^\\S+$"
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      ]
    },
    "datetime_end": {
      "description": "End date-time (default: start + 1 hour). Same formats as the start.",
      "type": "string"
    },
    "all_day_event": {
      "description": "All-day event: only the dates are used.",
      "type": "boolean"
    },
    "timezone": {
      "description": "IANA timezone for the start/end (default: the calendar's timezone), or 'floating'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "recurring_rule": {
      "description": "iCalendar recurrence rule such as FREQ=WEEKLY;COUNT=10. The start must match the rule. Omit for a one-off event; on update an empty string makes the event stop repeating.",
      "type": "string",
      "maxLength": 500
    },
    "description": {
      "description": "Plain text or simple HTML (keep under ~500 characters for cross-browser links).",
      "type": "string",
      "maxLength": 10000
    },
    "internal_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Internal name, never shown publicly."
    },
    "location": {
      "description": "Address or URL (meeting link). Use either location or location_id, not both.",
      "type": "string",
      "maxLength": 1000
    },
    "location_id": {
      "description": "Id of a saved location (0 = none). Not together with location.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "organizer_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Organizer name (needs organizer_email)."
    },
    "organizer_email": {
      "description": "Organizer e-mail (needs organizer_name).",
      "type": "string",
      "maxLength": 254,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "reminder": {
      "description": "Minutes before the start for a calendar-app reminder (0-10800).",
      "type": "integer",
      "minimum": 0,
      "maximum": 10800
    },
    "color": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Color 1-20 from the palette."
    },
    "free_busy": {
      "description": "How the event shows in an attendee's calendar.",
      "type": "string",
      "enum": [
        "free",
        "busy",
        "default"
      ]
    },
    "landing_page_template_id": {
      "description": "Event landing page template id or 'default' (see addevent_list_event_templates).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "rsvp_enabled": {
      "description": "Require an RSVP before the event can be added to a calendar.",
      "type": "boolean"
    },
    "rsvp_form_id": {
      "description": "RSVP form id or 'default' (see addevent_list_rsvp_forms).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "custom_data": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 2000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ]
      },
      "description": "Arbitrary key-value pairs to store on the object (snake_case keys), e.g. an external id."
    }
  },
  "required": [
    "event_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢addevent_list_rsvp_attendees(event_ids, calendar_ids, attending, sort_by, sort_order, ...)

List RSVP attendees (personal data: e-mail addresses and the answers they gave on the RSVP form). Filter by calendar, event or response (going/maybe/not-going). Paged, 20 at most per page: read only what the task needs. IP address and coordinates are removed from the reply. GET /rsvps.

输入模式

{
  "type": "object",
  "properties": {
    "event_ids": {
      "description": "Only attendees of these event ids.",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^\\S+$"
          },
          {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        ],
        "description": "The id (text or number)."
      }
    },
    "calendar_ids": {
      "description": "Only attendees of events on these calendar ids.",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^\\S+$"
          },
          {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        ],
        "description": "The id (text or number)."
      }
    },
    "attending": {
      "description": "Only attendees with this response.",
      "type": "string",
      "enum": [
        "going",
        "maybe",
        "not-going"
      ]
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "created",
        "event_id",
        "attending",
        "email"
      ]
    },
    "sort_order": {
      "description": "Sort direction. Needs sort_by.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-20 (default 10).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢addevent_get_rsvp_attendee(attendee_id)

One RSVP attendee by id (personal data: e-mail and form answers; IP address and coordinates removed). GET /rsvps/{id}.

输入模式

{
  "type": "object",
  "properties": {
    "attendee_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^\\S+$"
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      ],
      "description": "RSVP attendee id (see addevent_list_rsvp_attendees)."
    }
  },
  "required": [
    "attendee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡addevent_create_rsvp_attendee(event_id, email, attending, rsvp_form_data)

WRITE: adds ONE RSVP attendee (one e-mail address, personal data) to an event. This server never asks AddEvent to send the confirmation or organizer notification e-mails, but the event's own reminder and follow-up e-mails (if the event has them) will later go to this address, so only add someone who really RSVP'd. The e-mail must be unique per event. POST /events/{id}/rsvps.

输入模式

{
  "type": "object",
  "properties": {
    "event_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^\\S+$"
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      ],
      "description": "Event id (evt-...) to RSVP to."
    },
    "email": {
      "type": "string",
      "maxLength": 254,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Attendee e-mail address (unique per event)."
    },
    "attending": {
      "description": "The attendee's response.",
      "type": "string",
      "enum": [
        "going",
        "maybe",
        "not-going"
      ]
    },
    "rsvp_form_data": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 2000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ]
      },
      "description": "Answers to the event's RSVP form as field-name -> value. The default form needs {\"name\": \"...\"}."
    }
  },
  "required": [
    "event_id",
    "email"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴addevent_update_rsvp_attendee(attendee_id, email, attending, rsvp_form_data)

WRITE: changes ONE RSVP attendee (email, response or form answers; only the fields you pass). The event's reminder and update e-mails go to the e-mail address stored here, so changing it redirects those e-mails to that person. This server never triggers the confirmation or organizer notification e-mails. PATCH /rsvps/{id}.

输入模式

{
  "type": "object",
  "properties": {
    "attendee_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^\\S+$"
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      ],
      "description": "RSVP attendee id."
    },
    "email": {
      "description": "New e-mail address.",
      "type": "string",
      "maxLength": 254,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "attending": {
      "type": "string",
      "enum": [
        "going",
        "maybe",
        "not-going"
      ]
    },
    "rsvp_form_data": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 2000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ]
      },
      "description": "Answers to the event's RSVP form as field-name -> value. The default form needs {\"name\": \"...\"}."
    }
  },
  "required": [
    "attendee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢addevent_list_calendar_subscribers(calendar_ids, status, sort_by, sort_order, page, ...)

List people subscribed to the account's calendars (personal data: the form answers they gave, such as name and e-mail; calendar app type, sync status). Paged, 20 at most per page. IP address and coordinates are removed. GET /subscribers.

输入模式

{
  "type": "object",
  "properties": {
    "calendar_ids": {
      "description": "Only subscribers of these calendar ids.",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^\\S+$"
          },
          {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        ],
        "description": "The id (text or number)."
      }
    },
    "status": {
      "description": "active = synced in the last 30 days; inactive = not; blocked = blocked by the owner. AddEvent returns only active ones when omitted, so call once per status.",
      "type": "string",
      "enum": [
        "active",
        "inactive",
        "blocked"
      ]
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "created",
        "synced",
        "calendar_id"
      ]
    },
    "sort_order": {
      "description": "Sort direction. Needs sort_by.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "page_size": {
      "description": "Results per page, 1-20 (default 10).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢addevent_get_calendar_subscriber(subscriber_id)

One calendar subscriber by id (personal data; IP address and coordinates removed). GET /subscribers/{id}.

输入模式

{
  "type": "object",
  "properties": {
    "subscriber_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^\\S+$"
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        }
      ],
      "description": "Subscriber id (see addevent_list_calendar_subscribers)."
    }
  },
  "required": [
    "subscriber_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢addevent_list_rsvp_forms

The account's RSVP forms (id, name), newest first. Use the id as rsvp_form_id on an event. GET /events/rsvp-forms.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢addevent_list_event_templates

The account's event landing page templates (id, name), newest first. Use the id as landing_page_template_id on an event. GET /events/templates.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢addevent_list_calendar_templates(type)

The account's calendar landing page templates or embeddable calendar templates (id, name), newest first. Use the id as landing_page_template_id / embeddable_calendar_template_id on a calendar. GET /calendars/templates.

输入模式

{
  "type": "object",
  "properties": {
    "type": {
      "description": "calendar-landing (default) or calendar-embed (embeddable calendars).",
      "type": "string",
      "enum": [
        "calendar-landing",
        "calendar-embed"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢addevent_list_timezones(search, limit)

Timezone names AddEvent supports (use them as the timezone of events and calendars), with current UTC offset. Optional text filter on the name. GET /timezones.

输入模式

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Case-insensitive part of the name, e.g. 'Prague' or 'America/'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "limit": {
      "description": "Most entries to return (default 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 500
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本18 个工具