How to Automatically Add Attendees and Update Meetings via Outlook VBA
Question details
The user needs to use Excel VBA to automatically populate required attendees for an Outlook meeting without manually clicking 'Invite Attendees', manage accept/decline responses, and update existing meetings when details change.

- Product
- Excel and Outlook
- Device & OS
- not provided
- Scenario
- Automating Outlook meeting creation and updates directly from Excel worksheets using VBA macros.
- Observed behavior
- The user has to manually click 'Invite Attendees' to see the email addresses populate, and struggles to selectively filter meeting responses or programmatically update existing calendar events.
Ensure that you have enabled the Microsoft Outlook Object Library in your Excel VBA Editor (Tools > References) to allow your Excel macros to communicate with Outlook.
Set Meeting Status and Assign Attendees in VBA
Properly configure the appointment object to become a meeting so attendees populate automatically without manual clicks.
By default, an item created in VBA is treated as a standard appointment. You must change its status to a meeting before defining the attendees to ensure the 'To' field populates automatically.
Create a new Outlook appointment item in your VBA code using the Application.CreateItem(olAppointmentItem) method.
Crucially, set the property .MeetingStatus = olMeeting (or 1) before you assign the attendees. This converts the standard appointment into an active meeting invitation.
Use the .RequiredAttendees property (e.g., .RequiredAttendees = "email@example.com") to automatically populate the invitees list without needing to click "Invite Attendees" manually in the UI.
Use .Display to review the meeting window, or .Send to dispatch the invitations to the participants automatically.
Update Existing Meetings Using EntryID
Retrieve and modify an already created Outlook meeting instead of creating duplicates when the schedule or attendees change.
Filter Meeting Responses via Outlook Rules
Manage inbox clutter by filtering acceptance responses while keeping decline notifications visible.
Try WPS Office for Seamless Spreadsheet Automation
While advanced Outlook automation relies heavily on the Microsoft ecosystem, WPS Office provides a robust, free, and lightweight alternative for your daily spreadsheet and macro tasks. It fully supports VBA macros, ensuring high compatibility with your existing Excel files.
- 1. Download WPS Office: Visit the official WPS website to download the free installation package for your operating system.
- 2. Install the Suite: Run the installer and follow the simple on-screen instructions to complete the setup process.
- 3. Open Your Spreadsheets: Launch WPS Spreadsheets and open your existing macro-enabled files to continue your work without interruption.

Frequently Asked Questions
Why do attendees not show up automatically when I create an Outlook meeting via VBA?
This usually happens because the .MeetingStatus property is not set to olMeeting (or 1) before assigning the .RequiredAttendees. You must set the status first so Outlook recognizes the item as a meeting rather than a standard personal calendar appointment.
Can I suppress only 'Accept' responses but keep 'Decline' responses using VBA?
No, setting .ResponseRequested = False in VBA suppresses all responses entirely. The best workaround is to leave responses enabled in your code and set up an Outlook Inbox Rule to automatically move and mark 'Accept' messages as read.
How do I prevent VBA from creating duplicate meetings when schedule details change?
You must store the original meeting's .EntryID in your Excel sheet at the time it is first created. Whenever details change, use the Session.GetItemFromID method to retrieve and update the existing meeting instead of generating a new one.




