Deadsimple Email · Schema

CalendarInvite

A calendar invitation carried in the message body, which is what makes the recipient's mail client show Accept/Decline and puts the event on their calendar. Attaching an .ics file does not do this: it arrives as a download nobody can act on. Times need a zone -- a trailing "Z", an offset, or `timezone`. Attendees default to the message's own to + cc. The send response returns `calendar_uid`; keep it, because rescheduling (same uid, higher sequence) and cancelling (method CANCEL) are matched to the original event by UID.

EmailArtificial IntelligenceAutomationCommunications

Properties

Name Type Description
title string Event title, as it appears on the calendar
start string ISO 8601 start. A bare date ("2026-09-15") makes it all-day.
end string ISO 8601 end. Omit to use duration_minutes.
duration_minutes integer Length when `end` is absent
timezone string IANA zone for a local time carrying no offset, e.g. "America/New_York". Required for a naive start/end, since otherwise the meeting would land at the wrong hour.
location string
description string
attendees array Defaults to the message's to + cc
reminder_minutes integer Alarm this many minutes before the event
all_day boolean
recurrence string RFC 5545 rule, e.g. "FREQ=WEEKLY;COUNT=4"
uid string Pass the uid of an event already sent to reschedule or cancel it. Omit for a new invitation.
sequence integer Revision number. Must rise above the last one sent whenever an existing event changes, or clients ignore the update.
method string REQUEST asks for an RSVP. CANCEL withdraws an event (uid required). PUBLISH announces one with no RSVP.
ics string Your own iCalendar object, instead of the fields above. The MIME method parameter is read from its METHOD line.
View JSON Schema on GitHub

JSON Schema

deadsimple-email-calendar-invite-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/deadsimple-email/json-schema/deadsimple-email-calendar-invite-schema.json",
  "title": "CalendarInvite",
  "description": "A calendar invitation carried in the message body, which is what makes the recipient's mail client show Accept/Decline and puts the event on their calendar. Attaching an .ics file does not do this: it arrives as a download nobody can act on. Times need a zone -- a trailing \"Z\", an offset, or `timezone`. Attendees default to the message's own to + cc. The send response returns `calendar_uid`; keep it, because rescheduling (same uid, higher sequence) and cancelling (method CANCEL) are matched to the original event by UID.\n",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/deadsimple-email-openapi.json#/components/schemas/CalendarInvite",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Event title, as it appears on the calendar"
    },
    "start": {
      "type": "string",
      "description": "ISO 8601 start. A bare date (\"2026-09-15\") makes it all-day.\n"
    },
    "end": {
      "type": "string",
      "description": "ISO 8601 end. Omit to use duration_minutes."
    },
    "duration_minutes": {
      "type": "integer",
      "default": 30,
      "description": "Length when `end` is absent"
    },
    "timezone": {
      "type": "string",
      "description": "IANA zone for a local time carrying no offset, e.g. \"America/New_York\". Required for a naive start/end, since otherwise the meeting would land at the wrong hour.\n"
    },
    "location": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "attendees": {
      "type": "array",
      "description": "Defaults to the message's to + cc",
      "items": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "object",
            "properties": {
              "email": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "optional": {
                "type": "boolean"
              }
            }
          }
        ]
      }
    },
    "reminder_minutes": {
      "type": "integer",
      "description": "Alarm this many minutes before the event"
    },
    "all_day": {
      "type": "boolean"
    },
    "recurrence": {
      "type": "string",
      "description": "RFC 5545 rule, e.g. \"FREQ=WEEKLY;COUNT=4\""
    },
    "uid": {
      "type": "string",
      "description": "Pass the uid of an event already sent to reschedule or cancel it. Omit for a new invitation.\n"
    },
    "sequence": {
      "type": "integer",
      "default": 0,
      "description": "Revision number. Must rise above the last one sent whenever an existing event changes, or clients ignore the update.\n"
    },
    "method": {
      "type": "string",
      "enum": [
        "REQUEST",
        "CANCEL",
        "PUBLISH"
      ],
      "default": "REQUEST",
      "description": "REQUEST asks for an RSVP. CANCEL withdraws an event (uid required). PUBLISH announces one with no RSVP.\n"
    },
    "ics": {
      "type": "string",
      "description": "Your own iCalendar object, instead of the fields above. The MIME method parameter is read from its METHOD line.\n"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/deadsimple-email-calendar-invite"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.