Every event you publish is a meeting request.
Subject, when, where, a body, sometimes a Teams link. Outlook already has a format for this, and Event Schedule writes it when you save an event and reads it when you edit one in Outlook.
- Subject
-
Thursday Night Jazz
The event name, exactly as you typed it.
- When
-
Thu 15 Oct 2026, 8:00 PM to 10:00 PM
The start time plus the event duration, stamped with the schedule timezone rather than yours.
- Where
-
The Blue Room, 118 Main Street
The venue address on the event.
- Body
-
Doors at 7:30. Two sets.
The event description, or your own calendar description template if you set one.
- Sensitivity
-
normal
Switches to private when the event is unlisted.
- Online meeting
-
none, this one has a venue
A Teams meeting instead, when the event has no venue and the schedule asked for one.
One record One event in Event Schedule, one item on your Outlook calendar, and a mapping row that remembers they are the same thing. Every schedule starts unanswered, so nothing moves until you pick a direction.
The unit
Not two calendars. One record, two clients.
Here
The event
Name, date, duration, venue, description, visibility, tickets. The thing your audience sees on your public page.
There
The calendar item
One item on the Outlook calendar you picked, in the schedule timezone, marked private when the event is unlisted.
Between
The mapping
A row tying the Outlook item back to the event. It is the reason a second save is an edit rather than a duplicate.
Everything below is that record, read from one side or the other. See the fields
Sync direction
A request gets one answer.
Outlook answers an invitation with one choice from a short list. The answer row on the request at the top of this page is that choice, and these four are the whole list.
To Outlook
Events from Event Schedule appear in Outlook. Nothing in Outlook is read.
From Outlook
Events from Outlook appear in Event Schedule. Nothing is written back.
Both ways
Create, edit or delete in either place and the other side follows.
Off
The account stays connected, the sync simply does not run. Every schedule starts here, so nothing moves until you answer.
One account, per schedule
FreeThe schedule owner connects the Microsoft account, and the sync runs on that account. The calendar and the direction belong to the schedule, so a second schedule can point at a different Outlook calendar entirely.
Or one event by hand
FreeAnswer to Outlook or both ways and every event also carries its own Outlook panel in the editor. Push a single event across from there on demand, or take that one back out of Outlook, without changing what the schedule does with the rest.
The payload
Field by field, both ways.
No mystery mapping. This is the request Event Schedule sends, and what it takes back out of one that arrives.
| Request field | Sent to Outlook | Read back in |
|---|---|---|
| Subject | The event name | Renames the event |
| Start and end | Start time plus duration, in the schedule timezone | Start and length become start and duration |
| All day | A whole-day item when the event has no duration | A one-day item arrives with no duration, a longer one with its length |
| Location | The venue address | Matched to a venue, or added as one |
| Body | The description, or your calendar template | Converted back to Markdown |
| Sensitivity | Private for an unlisted event, normal otherwise | Not read back |
| Online meeting | A Teams meeting when you ask for one, and its join link comes straight back to the event link field while that field is empty | Not read back: a Teams link on an item somebody else made stays in Outlook |
Sync is per event, not per date: a recurring event crosses as one Outlook item. Every individual date is covered by the published feed further down this page.
Microsoft Teams
The one platform we name.
An online event in Event Schedule carries a single link field, and that is deliberate: there are no streaming integrations to configure and nothing to break when a platform changes its API. Teams is the exception, and it arrives through this sync rather than through a settings page of its own.
Turn the toggle on and an online event synced to Outlook from a work or school account gets a Teams meeting created with it. The join link is written into the event link field while that field is still empty, so your public page has it too. How online events work
The exact conditions
Free- Toggle
-
On, per schedule
Off by default. It sits beside the sync direction on the Outlook tab.
- Event
-
No venue
An event with a venue is a room, not a meeting, so nothing is created for it.
- Account
-
Work or school
Personal Microsoft accounts cannot host a Teams meeting. The Outlook item is still created, just without one.
- Link
-
Yours wins
The join link is only saved when the event has no link yet. A link you typed is never overwritten.
Microsoft Graph
Four things stand between a change and a missed change.
push
Microsoft Graph says something moved
Event Schedule holds a change-notification subscription on the calendar you picked. Outlook posts to it the moment an item changes, and Event Schedule then asks Graph what changed.
60 hrs
The subscription has a shelf life
Graph subscriptions expire. This one is created for about sixty hours and a nightly job renews it before it lapses, or recreates it if it already has.
15 min
A poll, every quarter hour
The safety net. A notification that never arrived is not a change that never lands, because the poll comes round anyway.
1 request
And the poll is cheap
Each schedule keeps a delta token, so the poll asks only for what changed since last time. A calendar with nothing new costs a single request.
Push first, poll behind it, and a token so the poll costs almost nothing. Near real time when the notification lands, and correct either way.
Deleted in Outlook
Somebody clears their calendar. Then what?
A deletion in Outlook is not automatically a decision about your public calendar, so you say once what it should mean.
Keep it
The event stays exactly as it is. Outlook was tidied, your public calendar was not.
Mark it cancelled
The event is flagged cancelled, which takes the date off your public calendar but keeps the record.
Delete it
The event is removed from Event Schedule as well.
Caution
Delete means delete. The other two choices are reversible; that one removes the event from Event Schedule, so the setting is worth reading twice before you pick it.
A quieter guard
Graph also reports an item as gone when it simply moves out of the window being watched. Event Schedule checks the reason and applies your policy only to a genuine deletion, so a show pushed out to next spring is not quietly taken down.
One setting, shared with Google and CalDAV inbound sync, because it is a decision about your calendar rather than about a provider.
From Outlook
The same document, read the other way.
An item added in Outlook becomes a real event here, not a shadow copy. It is accepted on the schedule the moment it lands, named from the subject, given a URL from your own event URL pattern, and filed under your default category if you set one.
Bookings are not overwritten
ProAn appointment booked on your booking page also lands on your Outlook calendar, but the calendar never writes back over it. A rescheduled booking cannot be dragged back to its old time by a stale sync.
- Subject
-
Sound check with Marla
Becomes the event name.
- When
-
Wed 21 Oct 2026, 4:00 PM to 6:00 PM
Start becomes the start, and the length of the item becomes the duration in whole hours.
- Where
-
The Blue Room
Matched against the venues on your schedule, and added as one if it is new.
- Body
-
Bring the spare cable.
Outlook's HTML body is converted back to Markdown, and only rewritten when it actually changed.
Delta The delta response only carries what changed, and the token that says where to resume next time.
The other direction
A standing invitation, for everyone else.
Graph sync connects your own account. Your audience does not need an account at all: every schedule publishes an iCal feed, and Outlook can subscribe to it from the web like any published internet calendar.
- Public events only. Drafts, unlisted events, cancelled events and password-protected events stay out of it.
- Recurring events are expanded, one entry per date, ninety days ahead.
- Each event also has its own iCal download, per date, for the person who wants one show and not the season.
- Feed URL
- your-schedule.eventschedule.com/feed/ical
Copyable from your schedule settings, alongside an RSS version of the same listing.
- Calendar name
- Your schedule name
Carried in the feed with your timezone, so it lands correctly labelled in the subscriber's client.
- Contents
- Upcoming public dates
One entry per date, each with a stable identifier so a client updates the existing entry instead of adding a second one.
Free Feeds, the iCal downloads and the embeddable calendar are all on the free plan.
Three steps
Connect once. Then forget it.
Sign in with Microsoft
One OAuth round trip from your account settings. Event Schedule asks for calendar read and write, never sees a password, and keeps a refresh token so the connection does not need redoing.
Pick the calendar and the direction
Your Outlook calendars are listed for you. Choose one, choose to, from, both or off, and optionally turn on Teams meetings and a deletion policy.
Save an event
Saving, editing or deleting an event goes straight out to Outlook. Anything coming the other way arrives by notification, with the fifteen-minute poll behind it.
Selfhosting it
.envOn your own server, the integration runs on your own Microsoft Entra application rather than ours: register the app, then set the client ID, client secret, redirect URI, tenant and webhook secret. Nothing calls out to us, and the change notifications come to your own domain.
Read the selfhost setup guideRelated pages
Frequently asked questions
What people in Microsoft 365 ask before they connect it.
Is two-way Outlook sync available on the free plan?
Yes. Outlook Calendar sync is free on every plan, in both directions, including the optional Teams meetings and the deletion policy. There is no calendar feature behind the paywall.
Which direction does it sync?
Whichever you choose, per schedule. To Outlook pushes your events out. From Outlook pulls Outlook items in. Both ways does both, so a change in either place reaches the other. Off leaves the account connected but stops the sync.
How quickly do changes sync?
Near real time. Event Schedule holds a Microsoft Graph change-notification subscription on your calendar, so Outlook pushes the news as it happens. Behind that sits a poll every fifteen minutes, so a notification that goes missing does not cost you the change. The subscription itself lasts about sixty hours and is renewed nightly.
Does it work with personal Microsoft accounts and work accounts?
Both. Personal Microsoft accounts such as Outlook.com, Hotmail and Live work, and so do Microsoft 365 work or school accounts. The one difference is Teams: personal accounts cannot host a Teams meeting, so the event is still created in Outlook, just without one attached.
What happens if I delete an event in Outlook?
That is your call, set once per schedule: keep the event, mark it cancelled so the date leaves your public calendar, or delete it here too. The setting is shared with Google and CalDAV inbound sync. Event Schedule also checks why Graph reported the event as gone, and only applies the policy to a real deletion, so an event that merely moved out of the sync window is left alone.
Can I sync a single event rather than the whole schedule?
Yes, once the schedule is set to send events out (to Outlook, or both ways). Each event then carries its own Outlook Calendar panel in the editor: sync just that one, or remove it from Outlook again. The schedule-level direction covers everything else.
Do recurring events send every date to Outlook?
No. Outlook sync works at the event level, so a recurring event goes across as one Outlook item rather than one per date. If you want every date in a calendar, use the published iCal feed or the per-date iCal download, which do expand recurring events.
Does Outlook Calendar sync work with selfhosted Event Schedule?
Yes. Register your own application in Microsoft Entra, then set the client ID, client secret, redirect URI, tenant and webhook secret in your environment file. The selfhost guide walks through the app registration, the permission scope and the webhook endpoint.
Free on every plan
Send the first request. Both ways.
Pick a name, connect Microsoft, choose a direction. Two-way Outlook sync, Teams meetings and the published feed cost nothing on any plan.
No credit card required