Microsoft Exchange · Arazzo Workflow

Microsoft Exchange Provision a Calendar and Add an Event

Version 1.0.0

Create a new calendar, add an event to it, and read the event back.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub CalendarCollaborationContactsEmailEnterpriseArazzoWorkflows

Provider

microsoft-exchange

Workflows

provision-calendar-and-add-event
Create a calendar, add an event to it, and confirm the event.
Creates a calendar with a name and color, creates an event within it, and fetches the event to verify it persisted.
3 steps inputs: calendarName, endDateTime, eventSubject, startDateTime, timeZone outputs: calendarId, eventId, subject
1
createCalendar
Create a new calendar in the default calendar group with the supplied name and a UI color.
2
addEvent
Create an event with subject and start/end times inside the new calendar.
3
confirmEvent
Read the event back to confirm it persisted with the expected subject and times.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Exchange Provision a Calendar and Add an Event
  summary: Create a new calendar, add an event to it, and read the event back.
  description: >-
    A calendar provisioning pattern on Microsoft Graph calendar. The workflow
    creates a new named calendar in the user's default calendar group, creates
    an event inside that calendar, and reads the event back to confirm its
    scheduling. Each step inlines its request so the flow can be executed
    without consulting the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: calendarsApi
  url: ../openapi/microsoft-exchange-calendars-api-openapi.yml
  type: openapi
- name: eventsApi
  url: ../openapi/microsoft-exchange-events-api-openapi.yml
  type: openapi
workflows:
- workflowId: provision-calendar-and-add-event
  summary: Create a calendar, add an event to it, and confirm the event.
  description: >-
    Creates a calendar with a name and color, creates an event within it, and
    fetches the event to verify it persisted.
  inputs:
    type: object
    required:
    - calendarName
    - eventSubject
    - startDateTime
    - endDateTime
    - timeZone
    properties:
      calendarName:
        type: string
        description: The name of the calendar to create.
      eventSubject:
        type: string
        description: The subject of the event to add.
      startDateTime:
        type: string
        description: The event start in ISO 8601 format.
      endDateTime:
        type: string
        description: The event end in ISO 8601 format.
      timeZone:
        type: string
        description: The time zone name for start and end.
  steps:
  - stepId: createCalendar
    description: >-
      Create a new calendar in the default calendar group with the supplied
      name and a UI color.
    operationId: createCalendar
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.calendarName
        color: auto
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      calendarId: $response.body#/id
      name: $response.body#/name
  - stepId: addEvent
    description: >-
      Create an event with subject and start/end times inside the new calendar.
    operationId: createEventInCalendar
    parameters:
    - name: calendar-id
      in: path
      value: $steps.createCalendar.outputs.calendarId
    requestBody:
      contentType: application/json
      payload:
        subject: $inputs.eventSubject
        start:
          dateTime: $inputs.startDateTime
          timeZone: $inputs.timeZone
        end:
          dateTime: $inputs.endDateTime
          timeZone: $inputs.timeZone
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      eventId: $response.body#/id
  - stepId: confirmEvent
    description: >-
      Read the event back to confirm it persisted with the expected subject and
      times.
    operationId: getEvent
    parameters:
    - name: event-id
      in: path
      value: $steps.addEvent.outputs.eventId
    - name: $select
      in: query
      value: subject,start,end
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      subject: $response.body#/subject
  outputs:
    calendarId: $steps.createCalendar.outputs.calendarId
    eventId: $steps.addEvent.outputs.eventId
    subject: $steps.confirmEvent.outputs.subject

Work with this as data

Every workflow 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 arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow 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 workflow
curl "https://apis.io/api/v1/arazzo/microsoft-exchange-provision-calendar-and-add-event-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.