---
title: Calendar Scheduler (Plugin)
---

# Calendar Scheduler (Plugin)

> **Marketplace plugin** — Calendar Scheduler is not built into Omniscio. Nothing on this page
> works until you install it from the Plugin Marketplace, enable it, and connect your Google
> Calendar.

## What it is

A scheduling tool that lives inside Omniscio. You define **event types** (the kinds of meeting
someone can book with you) and your **availability**, and the plugin publishes a **public booking
link** you can hand to anyone — including people who do not use Omniscio. When somebody books, the
meeting lands on your Google Calendar.

It is a first-party marketplace plugin: free, with its own sidebar entry, its own backend, and a
set of CLI routes an agent can drive. It is the only thing that provides Omniscio's booking-link
capability, so the **Send Booking Link** action in Team Time appears only while this plugin is
installed, enabled and connected.

Because a booking link is a public door, the plugin treats some actions as things a human should
agree to: creating or editing an event type, changing your availability, deciding an approval,
cancelling or rescheduling, disconnecting Google Calendar, changing settings or webhooks, and
running its heartbeat all ask for confirmation rather than acting silently.

## Where to find it

- **Install it** from the Plugin Marketplace (`plugin-marketplace.md`) — it is free, category
  `productivity`, authored by Edo.
- **Its own screen** — once enabled it adds a **Calendar Scheduler** row to the sidebar (calendar
  icon), and hides the project panel inside it. That screen is where you build event types, set
  availability, and read your bookings.
- **Plugin settings** — the plugin's settings panel is where its options live, reached the same
  way as any marketplace plugin's (`plugin-settings-panel.md`).
- **Team Time** — the **Send Booking Link** action on a Team Time row creates a Gmail draft
  containing a booking link. It is only visible when this plugin is installed, enabled and running
  (`team-time.md`).
- **For agents** — the plugin's CLI routes are listed in `plugin-cli-discovery.md` alongside every
  other plugin's.

## How it behaves

**Connecting Google Calendar.** The plugin uses Google Calendar as the calendar of record. You
connect it once (an OAuth flow you finish from the plugin), and it can be disconnected again later;
disconnecting is a confirm-first action.

**Availability and slots.** Open slots are derived from the availability you set, not typed in by
bookers. A booking page preview and a slot list are both requestable, so you can see exactly what a
visitor would be offered before you send the link.

**Approval, cancel and reschedule.** A booking can require your decision before it is confirmed,
and the plugin keeps a list of requests awaiting one. Bookings are not write-once: a booker can be
given a link that lets them cancel or reschedule themselves, which produces a fresh list of
reschedule times rather than a free-text change.

**Today's agenda in the inbox.** The plugin has one user-facing setting, **Today's agenda in the
inbox**, **on by default**. While it is on, today's meetings appear as inbox rows — a summary
before the day starts, then a reminder 15 minutes before each meeting. Turning it off clears those
rows; your bookings, invitees and reminder emails are unaffected.

**Health check.** The plugin runs a heartbeat every 30 minutes that checks its own health. It is
gated behind approval, so it does not spend anything or reach outside the machine on its own.

**Webhooks.** The plugin can post to a webhook URL you configure; changing that configuration is a
confirm-first action.

## For agents

An agent drives this plugin through its CLI routes (`plugin-cli-discovery.md`), which are grouped
by what they act on:

- **Event types** — list, view, create, edit, delete (delete archives rather than destroys).
- **Availability** — read and set.
- **Bookings** — list; view one; list reschedule times; cancel; reschedule; list requests awaiting
  approval and approve or decline one.
- **Booking pages** — preview a page, list open slots, and book a slot.
- **Identity** — read the connected identity and the display name, and set the display name.
- **Connection** — check whether Google Calendar is connected, start a connection, finish it, or
  disconnect.
- **Settings and webhooks** — read and change.
- **Discovery** — plugin status, and describe-an-action.

Routes that change state ask the user by default. Creating or editing an event type, changing
availability, deciding an approval, cancelling or rescheduling, disconnecting, and changing
settings or webhooks are marked `requiresConfirmation` and ask; every other write asks too unless
the plugin marked it `safe`. Booking a slot, and starting or finishing the Google Calendar
connection, are marked `safe` and run without asking. Reading is not gated.

## Related

How plugins are found, installed and enabled is on [Plugin marketplace](plugin-marketplace.md), and where a plugin's own options live is on [Plugin settings panel](plugin-settings-panel.md). What a plugin can draw on top of the app is on [Plugin UI access](plugin-ui-access.md). The row that offers **Send Booking Link** is documented on [Team Time](team-time.md), and the CLI-route surface this plugin's routes appear in is [Plugin CLI discovery](plugin-cli-discovery.md).
