Read AddEvent calendars, events, RSVPs and subscribers; create and update calendars and events.
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.
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.
Calendar title (single line).
Default timezone for events on this calendar (IANA name).
Arbitrary key-value pairs to store on the object (snake_case keys), e.g. an external id.
Shown on the calendar landing page.
Internal name, never shown publicly.
First day of the week.
Color 1-20 from the palette.
Calendar landing page template id, or 'default' (see addevent_list_calendar_templates).
Embeddable calendar template id, or 'default'.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| title* | string | Calendar title (single line). |
| timezone | string | Default timezone for events on this calendar (IANA name). |
| custom_data | object | Arbitrary key-value pairs to store on the object (snake_case keys), e.g. an external id. |
| description | string | Shown on the calendar landing page. |
| internal_name | string | Internal name, never shown publicly. |
| weekday_begin | string | First day of the week. |
| calendar_color | integer | Color 1-20 from the palette. |
| landing_page_template_id | string | Calendar landing page template id, or 'default' (see addevent_list_calendar_templates). |
| embeddable_calendar_template_id | string | Embeddable calendar template id, or 'default'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Calendar title (single line)."
},
"timezone": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Default timezone for events on this calendar (IANA name)."
},
"custom_data": {
"type": "object",
"description": "Arbitrary key-value pairs to store on the object (snake_case keys), e.g. an external id.",
"propertyNames": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
}
},
"description": {
"type": "string",
"maxLength": 5000,
"description": "Shown on the calendar landing page."
},
"internal_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Internal name, never shown publicly."
},
"weekday_begin": {
"enum": [
"sunday",
"monday"
],
"type": "string",
"description": "First day of the week."
},
"calendar_color": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Color 1-20 from the palette."
},
"landing_page_template_id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Calendar landing page template id, or 'default' (see addevent_list_calendar_templates)."
},
"embeddable_calendar_template_id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Embeddable calendar template id, or 'default'."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| color | integer | Color 1-20 from the palette. |
| title* | string | Event title (single line). |
| location | string | Address or URL (meeting link). Use either location or location_id, not both. |
| reminder | integer | Minutes before the start for a calendar-app reminder (0-10800). |
| timezone | string | IANA timezone for the start/end (default: the calendar's timezone), or 'floating'. |
| free_busy | string | How the event shows in an attendee's calendar. |
| calendar_id | any | Calendar to add the event to (see addevent_list_calendars); default calendar if omitted. |
| custom_data | object | Arbitrary key-value pairs to store on the object (snake_case keys), e.g. an external id. |
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.
| Argument | Type | Description |
|---|---|---|
| email* | string | Attendee e-mail address (unique per event). |
| event_id* | any | Event id (evt-...) to RSVP to. |
| attending | string | The attendee's response. |
| rsvp_form_data | object | Answers to the event's RSVP form as field-name -> value. The default form needs {"name": "..."}. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"event_id",
"email"
],
"properties": {
"email": {
"type": "string",
"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,}$",
"maxLength": 254,
"description": "Attendee e-mail address (unique per event)."
},
"event_id": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "Event id (evt-...) to RSVP to."
},
"attending": {
"enum": [
"going",
"maybe",
"not-going"
],
"type": "string",
"description": "The attendee's response."
},
"rsvp_form_data": {
"type": "object",
"description": "Answers to the event's RSVP form as field-name -> value. The default form needs {\"name\": \"...\"}.",
"propertyNames": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
}
}
}
}One calendar by id: title, timezone, week start, template ids, subscriber and event counts, links, custom data. GET /calendars/{id}.
| Argument | Type | Description |
|---|---|---|
| calendar_id* | any | Calendar id (see addevent_list_calendars). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"calendar_id"
],
"properties": {
"calendar_id": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "Calendar id (see addevent_list_calendars)."
}
}
}One calendar subscriber by id (personal data; IP address and coordinates removed). GET /subscribers/{id}.
| Argument | Type | Description |
|---|---|---|
| subscriber_id* | any | Subscriber id (see addevent_list_calendar_subscribers). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subscriber_id"
],
"properties": {
"subscriber_id": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "Subscriber id (see addevent_list_calendar_subscribers)."
}
}
}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}.
| Argument | Type | Description |
|---|---|---|
| event_id* | any | Event id, like evt-0f571af553d8437eb6a9ce22384fdcba (see addevent_list_events). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"event_id"
],
"properties": {
"event_id": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "Event id, like evt-0f571af553d8437eb6a9ce22384fdcba (see addevent_list_events)."
}
}
}One RSVP attendee by id (personal data: e-mail and form answers; IP address and coordinates removed). GET /rsvps/{id}.
| Argument | Type | Description |
|---|---|---|
| attendee_id* | any | RSVP attendee id (see addevent_list_rsvp_attendees). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"attendee_id"
],
"properties": {
"attendee_id": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "RSVP attendee id (see addevent_list_rsvp_attendees)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| status | string | 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. |
| sort_by | string | |
| page_size | integer | Results per page, 1-20 (default 10). |
| sort_order | string | Sort direction. Needs sort_by. |
| calendar_ids | array | Only subscribers of these calendar ids. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"status": {
"enum": [
"active",
"inactive",
"blocked"
],
"type": "string",
"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."
},
"sort_by": {
"enum": [
"created",
"synced",
"calendar_id"
],
"type": "string"
},
"page_size": {
"type": "integer",
"maximum": 20,
"description": "Results per page, 1-20 (default 10).",
"exclusiveMinimum": 0
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction. Needs sort_by."
},
"calendar_ids": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "The id (text or number)."
},
"maxItems": 50,
"minItems": 1,
"description": "Only subscribers of these calendar ids."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| type | string | calendar-landing (default) or calendar-embed (embeddable calendars). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"type": {
"enum": [
"calendar-landing",
"calendar-embed"
],
"type": "string",
"description": "calendar-landing (default) or calendar-embed (embeddable calendars)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| sort_by | string | Sort field (default created). |
| page_size | integer | Results per page, 1-20 (default 10). |
| sort_order | string | Sort direction. Needs sort_by. |
| calendar_ids | array | Only these calendar ids. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"sort_by": {
"enum": [
"created",
"title"
],
"type": "string",
"description": "Sort field (default created)."
},
"page_size": {
"type": "integer",
"maximum": 20,
"description": "Results per page, 1-20 (default 10).",
"exclusiveMinimum": 0
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction. Needs sort_by."
},
"calendar_ids": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "The id (text or number)."
},
"maxItems": 50,
"minItems": 1,
"description": "Only these calendar ids."
}
}
}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.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| search | string | Case-insensitive text in title, internal name, description or location. |
| sort_by | string | Sort field. |
| event_ids | array | Only these event ids. |
| page_size | integer | Results per page, 1-20 (default 10). |
| ends_after | string | Only events that end after this date-time (datetime_min; naive comparison, timezones ignored). |
| sort_order | string | Sort direction. Needs sort_by. |
| calendar_ids | array | Only events on these calendar ids. |
| starts_before |
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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| sort_by | string | |
| attending | string | Only attendees with this response. |
| event_ids | array | Only attendees of these event ids. |
| page_size | integer | Results per page, 1-20 (default 10). |
| sort_order | string | Sort direction. Needs sort_by. |
| calendar_ids | array | Only attendees of events on these calendar ids. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"sort_by": {
"enum": [
"created",
"event_id",
"attending",
"email"
],
"type": "string"
},
"attending": {
"enum": [
"going",
"maybe",
"not-going"
],
"type": "string",
"description": "Only attendees with this response."
},
"event_ids": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "The id (text or number)."
},
"maxItems": 50,
"minItems": 1,
"description": "Only attendees of these event ids."
},
"page_size": {
"type": "integer",
"maximum": 20,
"description": "Results per page, 1-20 (default 10).",
"exclusiveMinimum": 0
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction. Needs sort_by."
},
"calendar_ids": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "The id (text or number)."
},
"maxItems": 50,
"minItems": 1,
"description": "Only attendees of events on these calendar ids."
}
}
}The account's RSVP forms (id, name), newest first. Use the id as rsvp_form_id on an event. GET /events/rsvp-forms.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Most entries to return (default 100). |
| search | string | Case-insensitive part of the name, e.g. 'Prague' or 'America/'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"description": "Most entries to return (default 100).",
"exclusiveMinimum": 0
},
"search": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Case-insensitive part of the name, e.g. 'Prague' or 'America/'."
}
}
}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}.
| Argument | Type | Description |
|---|---|---|
| title | string | New title (single line). |
| timezone | string | IANA timezone such as America/Los_Angeles, or 'floating' (same local time for everyone). See addevent_list_timezones. |
| calendar_id* | any | Calendar id to change. |
| custom_data | object | Key-value pairs to store on the calendar (snake_case keys). |
| description | string | |
| internal_name | string | Internal name, never shown publicly. |
| weekday_begin | string | |
| calendar_color | integer | Color 1-20 from the palette. |
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}.
| Argument | Type | Description |
|---|---|---|
| color | integer | Color 1-20 from the palette. |
| title | string | New title (single line). |
| event_id* | any | Event id (evt-...) to change. |
| location | string | Address or URL (meeting link). Use either location or location_id, not both. |
| reminder | integer | Minutes before the start for a calendar-app reminder (0-10800). |
| timezone | string | IANA timezone for the start/end (default: the calendar's timezone), or 'floating'. |
| free_busy | string | How the event shows in an attendee's calendar. |
| calendar_id | any |
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}.
| Argument | Type | Description |
|---|---|---|
| string | New e-mail address. | |
| attending | string | |
| attendee_id* | any | RSVP attendee id. |
| rsvp_form_data | object | Answers to the event's RSVP form as field-name -> value. The default form needs {"name": "..."}. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"attendee_id"
],
"properties": {
"email": {
"type": "string",
"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,}$",
"maxLength": 254,
"description": "New e-mail address."
},
"attending": {
"enum": [
"going",
"maybe",
"not-going"
],
"type": "string"
},
"attendee_id": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "RSVP attendee id."
},
"rsvp_form_data": {
"type": "object",
"description": "Answers to the event's RSVP form as field-name -> value. The default form needs {\"name\": \"...\"}.",
"propertyNames": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
}
}
}
}| description |
| string |
| Plain text or simple HTML (keep under ~500 characters for cross-browser links). |
| location_id | integer | Id of a saved location (0 = none). Not together with location. |
| datetime_end | string | End date-time (default: start + 1 hour). Same formats as the start. |
| rsvp_enabled | boolean | Require an RSVP before the event can be added to a calendar. |
| rsvp_form_id | string | RSVP form id or 'default' (see addevent_list_rsvp_forms). |
| all_day_event | boolean | All-day event: only the dates are used. |
| internal_name | string | Internal name, never shown publicly. |
| datetime_start* | string | Start date-time: YYYY-MM-DD, YYYY-MM-DD hh:mm or YYYY-MM-DD hh:mm:ss. |
| organizer_name | string | Organizer name (needs organizer_email). |
| recurring_rule | string | 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. |
| organizer_email | string | Organizer e-mail (needs organizer_name). |
| landing_page_template_id | string | Event landing page template id or 'default' (see addevent_list_event_templates). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"title",
"datetime_start"
],
"properties": {
"color": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Color 1-20 from the palette."
},
"title": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Event title (single line)."
},
"location": {
"type": "string",
"maxLength": 1000,
"description": "Address or URL (meeting link). Use either location or location_id, not both."
},
"reminder": {
"type": "integer",
"maximum": 10800,
"minimum": 0,
"description": "Minutes before the start for a calendar-app reminder (0-10800)."
},
"timezone": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "IANA timezone for the start/end (default: the calendar's timezone), or 'floating'."
},
"free_busy": {
"enum": [
"free",
"busy",
"default"
],
"type": "string",
"description": "How the event shows in an attendee's calendar."
},
"calendar_id": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "Calendar to add the event to (see addevent_list_calendars); default calendar if omitted."
},
"custom_data": {
"type": "object",
"description": "Arbitrary key-value pairs to store on the object (snake_case keys), e.g. an external id.",
"propertyNames": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
}
},
"description": {
"type": "string",
"maxLength": 10000,
"description": "Plain text or simple HTML (keep under ~500 characters for cross-browser links)."
},
"location_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Id of a saved location (0 = none). Not together with location."
},
"datetime_end": {
"type": "string",
"description": "End date-time (default: start + 1 hour). Same formats as the start."
},
"rsvp_enabled": {
"type": "boolean",
"description": "Require an RSVP before the event can be added to a calendar."
},
"rsvp_form_id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "RSVP form id or 'default' (see addevent_list_rsvp_forms)."
},
"all_day_event": {
"type": "boolean",
"description": "All-day event: only the dates are used."
},
"internal_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Internal name, never shown publicly."
},
"datetime_start": {
"type": "string",
"description": "Start date-time: YYYY-MM-DD, YYYY-MM-DD hh:mm or YYYY-MM-DD hh:mm:ss."
},
"organizer_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Organizer name (needs organizer_email)."
},
"recurring_rule": {
"type": "string",
"maxLength": 500,
"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."
},
"organizer_email": {
"type": "string",
"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,}$",
"maxLength": 254,
"description": "Organizer e-mail (needs organizer_name)."
},
"landing_page_template_id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Event landing page template id or 'default' (see addevent_list_event_templates)."
}
}
}| string |
| Only events that start before this date-time (datetime_max; naive comparison, timezones ignored). |
| custom_data_key | string | Custom data key (needs custom_data_value). |
| custom_data_value | string | Custom data value (needs custom_data_key). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"search": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Case-insensitive text in title, internal name, description or location."
},
"sort_by": {
"enum": [
"created",
"title",
"calendar_id",
"datetime_start"
],
"type": "string",
"description": "Sort field."
},
"event_ids": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "The id (text or number)."
},
"maxItems": 50,
"minItems": 1,
"description": "Only these event ids."
},
"page_size": {
"type": "integer",
"maximum": 20,
"description": "Results per page, 1-20 (default 10).",
"exclusiveMinimum": 0
},
"ends_after": {
"type": "string",
"description": "Only events that end after this date-time (datetime_min; naive comparison, timezones ignored)."
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction. Needs sort_by."
},
"calendar_ids": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "The id (text or number)."
},
"maxItems": 50,
"minItems": 1,
"description": "Only events on these calendar ids."
},
"starts_before": {
"type": "string",
"description": "Only events that start before this date-time (datetime_max; naive comparison, timezones ignored)."
},
"custom_data_key": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Custom data key (needs custom_data_value)."
},
"custom_data_value": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Custom data value (needs custom_data_key)."
}
}
}| landing_page_template_id |
| string |
| embeddable_calendar_template_id | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"calendar_id"
],
"properties": {
"title": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "New title (single line)."
},
"timezone": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "IANA timezone such as America/Los_Angeles, or 'floating' (same local time for everyone). See addevent_list_timezones."
},
"calendar_id": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "Calendar id to change."
},
"custom_data": {
"type": "object",
"description": "Key-value pairs to store on the calendar (snake_case keys).",
"propertyNames": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
}
},
"description": {
"type": "string",
"maxLength": 5000
},
"internal_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Internal name, never shown publicly."
},
"weekday_begin": {
"enum": [
"sunday",
"monday"
],
"type": "string"
},
"calendar_color": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Color 1-20 from the palette."
},
"landing_page_template_id": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"embeddable_calendar_template_id": {
"type": "string",
"maxLength": 100,
"minLength": 1
}
}
}| Move the event to this calendar id. |
| custom_data | object | Arbitrary key-value pairs to store on the object (snake_case keys), e.g. an external id. |
| description | string | Plain text or simple HTML (keep under ~500 characters for cross-browser links). |
| location_id | integer | Id of a saved location (0 = none). Not together with location. |
| datetime_end | string | End date-time (default: start + 1 hour). Same formats as the start. |
| rsvp_enabled | boolean | Require an RSVP before the event can be added to a calendar. |
| rsvp_form_id | string | RSVP form id or 'default' (see addevent_list_rsvp_forms). |
| all_day_event | boolean | All-day event: only the dates are used. |
| internal_name | string | Internal name, never shown publicly. |
| datetime_start | string | New start: YYYY-MM-DD, YYYY-MM-DD hh:mm or YYYY-MM-DD hh:mm:ss. |
| organizer_name | string | Organizer name (needs organizer_email). |
| recurring_rule | string | 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. |
| organizer_email | string | Organizer e-mail (needs organizer_name). |
| landing_page_template_id | string | Event landing page template id or 'default' (see addevent_list_event_templates). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"event_id"
],
"properties": {
"color": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Color 1-20 from the palette."
},
"title": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "New title (single line)."
},
"event_id": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "Event id (evt-...) to change."
},
"location": {
"type": "string",
"maxLength": 1000,
"description": "Address or URL (meeting link). Use either location or location_id, not both."
},
"reminder": {
"type": "integer",
"maximum": 10800,
"minimum": 0,
"description": "Minutes before the start for a calendar-app reminder (0-10800)."
},
"timezone": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "IANA timezone for the start/end (default: the calendar's timezone), or 'floating'."
},
"free_busy": {
"enum": [
"free",
"busy",
"default"
],
"type": "string",
"description": "How the event shows in an attendee's calendar."
},
"calendar_id": {
"anyOf": [
{
"type": "string",
"pattern": "^\\S+$",
"maxLength": 100,
"minLength": 1
},
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
],
"description": "Move the event to this calendar id."
},
"custom_data": {
"type": "object",
"description": "Arbitrary key-value pairs to store on the object (snake_case keys), e.g. an external id.",
"propertyNames": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
}
},
"description": {
"type": "string",
"maxLength": 10000,
"description": "Plain text or simple HTML (keep under ~500 characters for cross-browser links)."
},
"location_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Id of a saved location (0 = none). Not together with location."
},
"datetime_end": {
"type": "string",
"description": "End date-time (default: start + 1 hour). Same formats as the start."
},
"rsvp_enabled": {
"type": "boolean",
"description": "Require an RSVP before the event can be added to a calendar."
},
"rsvp_form_id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "RSVP form id or 'default' (see addevent_list_rsvp_forms)."
},
"all_day_event": {
"type": "boolean",
"description": "All-day event: only the dates are used."
},
"internal_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Internal name, never shown publicly."
},
"datetime_start": {
"type": "string",
"description": "New start: YYYY-MM-DD, YYYY-MM-DD hh:mm or YYYY-MM-DD hh:mm:ss."
},
"organizer_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Organizer name (needs organizer_email)."
},
"recurring_rule": {
"type": "string",
"maxLength": 500,
"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."
},
"organizer_email": {
"type": "string",
"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,}$",
"maxLength": 254,
"description": "Organizer e-mail (needs organizer_name)."
},
"landing_page_template_id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Event landing page template id or 'default' (see addevent_list_event_templates)."
}
}
}