Skip to main content

How do I add month-end close deadlines to Outlook calendars?

Call Microsoft Graph's createEvent (POST /me/events or /users/{id}/events) with the deadline as start and end, and each responsible person listed in the attendees array. Graph is explicit that this only reliably notifies attendees under delegated permissions — application permissions can create the event without ever emailing or showing it on an attendee's calendar.

Zuny FesterBy Zuny Fester, Head of Operations and Marketing
Reviewed by Zuny Fester
Published Last reviewed Editorial policy

Part of the finance integrations guide.

What creates the eventcreateEvent — POST on /me/events or /users/{userId}/events
How deadlines reach a personThe attendees array on the event body
Permission model that works reliablyDelegated permissions (signed-in user context)
Documented gapApplication permissions: event is created, but no email is sent and it doesn't appear on the attendee's calendar
Shared/delegated calendarsUse Calendars.ReadWrite.Shared; the calendar must actually be shared or delegated to the app's identity first

Creating the event itself

Loopfour's Outlook integration exposes createEvent, which maps directly to Microsoft Graph's POST /me/events endpoint (or /users/{id}/events for another user's calendar, subject to permissions). A close deadline becomes an event with a subject ("Bank reconciliation due"), a start/end time, and an attendees array listing the person or people responsible.

The permission model that actually determines whether it's seen

Creating the event and someone actually seeing it are two different guarantees, and Microsoft's own Graph documentation on shared and delegated calendars is specific about where they diverge. Under delegated permissions (the app acting as a signed-in user), events created with attendees behave the way a person sending a meeting invite from Outlook would expect. Under application permissions (the app acting with its own identity, no signed-in user), Microsoft's own guidance is explicit: the event is technically created, but no email is sent to attendees, and it doesn't show up in the attendee's or organizer's calendar the way it would under delegated auth.

Getting into a shared or delegated calendar specifically

To post a close deadline into someone else's calendar rather than the integration's own, Microsoft's guidance calls for the least-privileged delegated permission, Calendars.ReadWrite.Shared, and for that calendar to actually be shared or delegated to the signed-in identity first — access isn't automatic just because both accounts are in the same tenant. A delegate (someone the calendar owner has explicitly shared with) can create and receive events on the owner's behalf; an app with no such relationship configured can't reach that calendar at all, regardless of the permission scope requested.

Next step

Map the finance workflow with the most exposure and prove the automation path.

Bring the invoice, contract, payment reconciliation, or customer finance workflow you have to defend at audit. Loopfour can map the trigger, controls, integrations, and approval loop.

Book a workflow review

Field mapping

Delegated vs. application permissions for a close-deadline event

Auth modelEvent created?Attendee email sent?Shows on attendee's calendar?
Delegated (signed-in user)YesYesYes
Application-onlyYesNoNo

Frequently Asked Questions

Application permissions are still useful for events that don't need attendee notification — blocking time on a shared team calendar, for instance. For a close deadline that specific people need to see and be reminded of, delegated permissions are the mechanism that actually delivers that.

No — the same createEvent call supports a recurrence pattern in the event body rather than requiring a separate recurring-event endpoint. A monthly close deadline can be created once with a monthly recurrence rule.

No — Calendars.ReadWrite.Shared only reaches a calendar that's actually been shared or delegated to the acting identity first. There's no permission scope that grants access to an arbitrary user's calendar without that relationship existing.

Sources

Related

How-to

What should be on a month-end close checklist?

A complete close checklist covers subledger lockout, bank and balance-sheet reconciliations, accrual entries, intercompany revaluation and elimination if applicable, inventory review if applicable, consolidated review, and period lock. Each task should have a clear owner and a place in the dependency order, not just a due date.

Read more

Topic

Integrations

Every finance automation vendor publishes an integrations page: a grid of logos, a claim of "seamless" connectivity, and not much else. That page answers a marketing question — does this vendor touch…

Read more

How-to

How do I track close checklist sign-off using Slack reactions?

Post each close checklist item as its own message, then have the responsible person react to it with an agreed emoji to signal sign-off. Loopfour's Slack integration reads that back via reactions.get, which returns a users array naming who reacted — but Slack's own docs warn that array can be incomplete, so treat it as a strong signal, not a guaranteed audit trail.

Read more

Diagnostic

What breaks when an Outlook calendar event doesn't sync to an attendee?

A close-deadline event created through Loopfour's Outlook integration under application permissions is created successfully but silently invisible to attendees — Microsoft's own Graph documentation confirms no email is sent and the event doesn't show up in the attendee's or organizer's calendar under that auth model. The API call succeeds; nobody gets reminded.

Read more