Turn a meeting request into a checked calendar invitation
Read an incoming scheduling request, resolve the participants and constraints, and prepare a conflict-free invitation.
How this works
Use this for recurring meeting requests that otherwise require a person to interpret an email, check calendars and assemble an invitation. AI extracts the intent; explicit scheduling rules determine suitable times and who should attend.
Bound the workflow by sender, meeting type and calendar scope. An email asking for a call does not authorize inviting every person mentioned in the thread. Preserve the distinction between suggested times, calendar holds and sent invitations.
Before you start
Scheduling policy
Record working hours, default durations, buffers, permitted meeting types and the calendar owner’s preferences.
Access and action scope
Identify which calendars may be read and whether the task authorizes sending invitations or only preparing them.
Prepare the inputs
- request
- Required
Email or local message export
Preserve sender, participants, time wording and message ID.
- availability
- Required
Calendar free/busy or timestamped export
Record timezone and freshness; missing calendars are not assumed free.
- preferences
- Required
Versioned scheduling rules
Specify duration and buffer rules rather than guessing from the subject.
Implementation, step by step
Recognize the request
- Check that the message is a genuine scheduling request within the allowed scope. Extract purpose, participants, duration and proposed windows.
- Use message IDs to detect previous processing. Treat quoted historical requests separately from the current sender’s instruction.
Checkpoint: A unique scheduling request has structured facts and explicit ambiguities.
Resolve people and times
- Match addresses to the permitted directory and confirm which people are required versus optional. Avoid expanding distribution lists without evidence.
- Convert requested times using the event date and named timezone, including daylight-saving changes. Clarify phrases such as next Friday when multiple interpretations are plausible.
Checkpoint: Participant identities and absolute time windows are reliable.
Evaluate available slots
- Intersect permitted calendars, working hours and requested windows. Apply travel or focus buffers and any meeting-type limits mechanically.
- Rank feasible slots using stated preferences, not inferred personal priorities. If a required calendar is unavailable, mark the slot tentative.
Checkpoint: Candidate slots include the constraint checks that support them.
Prepare the invitation
- Draft a concise title, agenda and location or meeting link using supplied facts. Include only necessary context from the email.
- Show the selected time in the organizer’s and requester’s timezones when relevant. Keep sensitive thread content out of broadly visible calendar descriptions.
Checkpoint: A reviewable invitation matches the request and participant scope.
Send only within scope and verify
- Refresh availability immediately before an authorized send. If drafting only, return the invitation file or proposed slot without altering calendars.
- Record event ID and request ID after creation. If the result is uncertain, look up that event before retrying so the requester does not receive duplicates.
Checkpoint: The handoff states proposed, held or sent status with a receipt.
Decisions along the way
No valid slot exists
Draft a short alternatives request rather than overriding buffers or moving existing events.
Meeting already exists
Compare the requested change with the existing event and prepare an update, not a second invitation.
What you will produce
meeting-proposal.json
JSONA structured invitation proposal.
Include: request_id · participants · start · end · timezone · agenda · constraint_checks · status
scheduling-receipt.md
MarkdownEvidence of an authorized action or a clear draft-only status.
Include: event_id · request_id · action · verified_state
Check the result
- Check timezone conversion against the specific date.
- Verify every required attendee and buffer.
- Search for existing events linked to the request before creation.
When something goes wrong
Calendar access fails
Return the extracted request and an availability gap; do not invent a free slot.
Availability changes at send time
Recompute candidates and preserve the draft without overwriting unrelated events.
A worked example
SYNTHETIC EXAMPLE · NOT A REPORTED BUSINESS RESULT
Request
Synthetic: schedule a 30-minute follow-up.
Inputs
The requester offers Tuesday 10:00–12:00 in UTC. The organizer is free at 10:30 but has a required 15-minute buffer until 10:45.
Expected result
Propose 10:45–11:15 UTC if all required calendars are free; create no event until sending is authorized.
Run a small pilot
Start small
Pilot one calendar and one allowed meeting type.
Record the baseline
Measure scheduling touches and incorrect or duplicate invites.
Agree success criteria
Require correct participants, timezones and action receipts in all pilot runs.
Stop or revise
Stop autonomous sends after an unexplained duplicate or identity mismatch.
Keep the scope clear
- Incoming email cannot expand calendar access or action authority.
- A prepared invitation is not evidence that attendees received or accepted it.
Check before using
The calendar owner reviews unresolved ambiguity and attendance changes.
Business activities
- Coordinate meetings and follow-ups
FROM A RECIPE TO YOUR WORKFLOW
Bring the company context together.
This workflow needs reliable inputs before it needs a better prompt. Moat8 Vault brings working information into a readable archive for the AI tools you use.
For this recipe: Meeting request · Calendar availability · Scheduling preferences · Participant directory
Start with one recurring task, agree which sources to use, and review the first result with your team.
Discuss this workflow