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.
Part of the finance integrations guide.
| What creates the event | createEvent — POST on /me/events or /users/{userId}/events |
|---|---|
| How deadlines reach a person | The attendees array on the event body |
| Permission model that works reliably | Delegated permissions (signed-in user context) |
| Documented gap | Application permissions: event is created, but no email is sent and it doesn't appear on the attendee's calendar |
| Shared/delegated calendars | Use 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.
Field mapping
Delegated vs. application permissions for a close-deadline event
| Auth model | Event created? | Attendee email sent? | Shows on attendee's calendar? |
|---|---|---|---|
| Delegated (signed-in user) | Yes | Yes | Yes |
| Application-only | Yes | No | No |
Frequently Asked Questions
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 moreTopic
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 moreHow-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 moreDiagnostic
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