canonical: https://jentic.com/apis/morgen.so/morgen

# Morgen So Morgen API

Jentic publishes the only available OpenAPI specification for Morgen API, keeping it validated and agent-ready. Morgen is a calendar and task workspace that aggregates events across Google, Microsoft, iCloud, and other providers and adds task lists, virtual rooms, and integration controls. The API exposes 24 endpoints for managing calendar accounts, listing and editing events, creating tasks and task lists, configuring third-party integrations, and provisioning virtual meeting rooms. Authentication uses a bearer token or an Authorization API key header.

## For AI agents

Read and modify a user's calendars, events, tasks, task lists, and virtual rooms across Google, Microsoft, iCloud, and other providers connected to Morgen.

## Scope

Does not handle email delivery, video conferencing media streams, or contact CRM records - use for calendar, task, and virtual-room orchestration only.

## Capabilities

- List linked calendar accounts and their connected providers via `/accounts/list`
- Create, update, and delete events on any connected calendar through the /events endpoints
- Manage tasks and task lists alongside calendar events using the /tasks and /taskLists routes
- Provision and update virtual meeting rooms with `/virtualRooms/create` and `/virtualRooms/update`
- Connect or revoke third-party calendar integrations via `/integrations/{serviceName}/auth`
- Read and update the authenticated user's identity profile through /identity and `/identity/update`

## Use cases

### Cross-Provider Calendar Scheduling

Morgen aggregates calendars from Google, Microsoft, iCloud, and other providers behind a single API surface, so an assistant can read availability and create events without integrating each provider directly. The `/calendars/list` and /events endpoints expose every connected source uniformly, and writes propagate back to the underlying provider. This collapses what would normally be three OAuth integrations into one.

Example prompt: Call GET `/calendars/list` to find the user's primary Google calendar, then POST to /events to create a 30-minute meeting with two attendees on tomorrow at 10:00 local time.

### Task Triage from a Single Inbox

Morgen blends tasks and calendar events in one workspace. Agents can list every task across every connected task list, filter by due date, and reschedule or close them in bulk via the /tasks endpoints. This is useful for a daily-planner agent that drafts a focus list at the start of the day and updates statuses at the end.

Example prompt: List all tasks across the user's task lists, filter to those due in the next 24 hours, and update each completed task's status via the /tasks endpoint.

### Virtual Room Provisioning for Meetings

Morgen can attach a virtual room to any event so attendees join via a stable URL. Agents create the room with `/virtualRooms/create`, attach it to an event, and update or remove it later. This is useful when a scheduling agent needs to add a video link to an event without forcing a specific provider on the user.

Example prompt: Create a Morgen virtual room via `/virtualRooms/create` and attach the resulting URL to an existing event using /events update.

### AI Scheduling Agent via Jentic

An AI agent looking to schedule a meeting searches Jentic for the Morgen event creation operation, loads its input schema, and executes the call. The agent never sees the bearer token - Jentic injects it from the encrypted vault. The same flow handles task creation, integration connection, and identity reads.

Example prompt: Search Jentic for 'create a calendar event in Morgen', load the POST /events operation, and execute it to book a 1:1 with a teammate at 3pm tomorrow.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/calendars/list` | List all connected calendars |
| GET | `/accounts/list` | List linked calendar/task accounts |
| POST | `/virtualRooms/create` | Create a virtual meeting room |
| POST | `/virtualRooms/update` | Update an existing virtual room |
| POST | `/integrations/{serviceName}/auth` | Initiate auth for a provider integration |
| GET | `/identity` | Read the authenticated user's identity |
| POST | `/identity/update` | Update the authenticated user's identity |

## Key resources

- **Calendars** — List and inspect calendars across every connected provider.
- **Events** — Create, update, list, and delete calendar events.
- **Tasks** — Create and manage tasks within Morgen task lists.
- **Task Lists** — Manage groupings of tasks per workspace.
- **Virtual Rooms** — Provision and update video meeting rooms attached to events.
- **Integrations** — Connect and revoke third-party calendar and task providers.
- **Accounts** — List the calendar and task accounts linked to Morgen.
- **Identity** — Read and update the authenticated user's profile.

## Why Jentic

- **Setup:** Wiring Morgen by hand means choosing between its bearer token and API key auth, both set in the Authorization header, and mapping calendar, task, and virtual-room actions onto its endpoints. Through Jentic you install once, import the Morgen API from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** Morgen carries its targets in the request body rather than the URL path, so limit the agent to the operations it needs, such as listing calendars or creating a virtual room. You choose the operations it may call, so identity updates are not included unless you add them.
- **Credential handling:** Your Morgen bearer token or API key is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list my calendars' or 'create a virtual room', and Jentic returns the matching Morgen operation with its input schema, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Calendly API** — Calendly focuses on bookable scheduling links rather than direct event CRUD across multiple providers.
- **Google Calendar API** — Google Calendar is the underlying provider Morgen wraps for Google accounts.
- **Slack API** — Slack delivers reminders and meeting notifications driven by Morgen events.

## FAQ

### Why is there no official OpenAPI spec for Morgen API?

Morgen does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Morgen API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Morgen API use?

Morgen accepts a bearer token or an API key passed in the Authorization header. Through Jentic, the credential is stored in the encrypted vault and injected into each request - agents never receive the raw token in their context.

### Can I create events on a Google Calendar through the Morgen API?

Yes. Once the user has connected a Google account via `/integrations/{serviceName}/auth`, that calendar appears in `/calendars/list` and you can create events on it with POST to the /events endpoints. Morgen handles the underlying Google Calendar write.

### What are the rate limits for the Morgen API?

Morgen does not publish hard rate limits in the spec. Treat the API as fair-use per workspace and back off on 429 responses. Cache calendar and account lists rather than polling for every event read.

### How do I schedule a meeting through Jentic?

Run pip install jentic, then search 'create a calendar event in Morgen', load the POST /events operation, and execute it with the meeting details. Jentic supplies the bearer token from your vault.

### Is the Morgen API free?

Morgen offers a free personal tier and paid plans for teams and advanced scheduling features. API access is included with all paid plans; check morgen.so for current pricing.

### Can I limit what my agent is allowed to do with the Morgen API?

Yes. Because you run Jentic One yourself, you decide which Morgen operations your agent can call, so you can allow it to list calendars and events or create a virtual room while withholding everything else. Morgen carries its targets in the request body rather than the URL path, so the boundary is set by the operations you grant, not by path patterns. Sensitive actions like updating the user's identity through `/identity/update` stay off-limits unless you explicitly add them.
