# Real-time scheduling

Real-time scheduling means offering and booking times from what's in
people's calendars now, rather than a copy that may be out of date, and
keeping the meeting right as plans change.

[Scheduling Requests](https://docs.cronofy.com/developers/managed-scheduling/scheduling-requests/index.md)
do this for you. Each one applies an Organizational Unit's Scheduling Controls
to the live availability of its members, books the time that's chosen, and
follows the meeting through rescheduling and cancelling.

**Real-time scheduling**

Diagram of real-time scheduling in Cronofy: Scheduling Requests apply Scheduling Controls to live Availability, built on Calendar Connectivity, which connects to Google, Microsoft 365, Exchange, and Apple calendars.

```mermaid
flowchart TB
  subgraph Cronofy
    Scheduling_Requests[Scheduling Requests]
    Scheduling_Controls[Scheduling Controls]
    Availability
    Calendar_Connectivity[Calendar Connectivity]
  end
  subgraph Calendar_services [Calendar services]
    direction LR
    Google
    Microsoft_365[Microsoft 365]
    Exchange
    Apple
  end
  Scheduling_Requests --- Scheduling_Controls
  Scheduling_Controls --- Availability
  Availability --- Calendar_Connectivity
  Calendar_Connectivity --- Calendar_services
```

- Scheduling Requests run real-time scheduling, applying the Organizational Unit's Scheduling Controls.
- Scheduling Controls apply to Cronofy's live Availability.
- Availability is built on Cronofy's Calendar Connectivity.
- Calendar Connectivity connects to the calendar services: Google, Microsoft 365, Exchange and Apple.


## Live availability
Cronofy finds times from the connected calendars of everyone involved,
whether they're people or meeting rooms, across Google, Microsoft 365,
Exchange, and Apple at once. Any busy time in those calendars is excluded,
so every time offered is one that's free right now.

## Pre-approved availability
Free time in a calendar isn't necessarily time someone wants booked.
Pre-approved availability is the time an organization has agreed in advance
can be booked, without anyone confirming each meeting. It comes from the
Organizational Unit's Scheduling Controls:

- Each member's working hours

- [Selection Rules](https://docs.cronofy.com/schedule/scheduling-and-booking/selection-rules/index.md)
for who needs to attend, such as one interviewer from a pool

- [Booking limits](https://docs.cronofy.com/schedule/scheduling-and-booking/booking-limits/index.md)
for how often each person can be booked, such as one interview a day

- How much notice a meeting needs, and which times to offer

The times offered are where pre-approved availability and free calendar time
overlap, so a booking can go straight into the calendars.

## Keeping it right
When a time is chosen, whether on Cronofy's booking page or on your own,
Cronofy creates the event in the calendars it belongs in. It then keeps the
meeting in step with those calendars: if the host moves the event in their
own calendar, the Scheduling Request follows, and the recipient can
reschedule or decline from the link they booked with.

Your application hears about each change through
[Scheduling Request webhooks](https://docs.cronofy.com/api-reference/managed-scheduling/scheduling-requests/webhooks/index.md),
so its records stay in step too.

## Using real-time scheduling
- The [Scheduler Embed](https://docs.cronofy.com/api-reference/managed-scheduling/embedded-scheduler/index.md)
lets your users create Scheduling Requests inside your product.

- The [Scheduling Requests API](https://docs.cronofy.com/developers/managed-scheduling/scheduling-requests/index.md)
creates them from your own code, with times offered on Cronofy's booking
page or in your own UI.

- The [MCP Server](https://docs.cronofy.com/developers/temporal-grid/mcp-server/index.md)
lets AI agents find times and book meetings on your users' behalf.

[Getting Started](https://docs.cronofy.com/developers/getting-started/index.md) walks
through all of these with a Sandbox.

If you need to own every detail of the workflow yourself, the same live
availability is available through
[modular calendar and availability control](https://docs.cronofy.com/developers/calendar-and-availability/index.md).



---
[Read in HTML](https://docs.cronofy.com/developers/temporal-grid/real-time-scheduling/)