• Outlook User
  • New Outlook app
  • Outlook.com
  • Outlook Mac
  • Outlook & iCloud
  • Developer
  • Microsoft 365 Admin
    • Common Problems
    • Microsoft 365
    • Outlook BCM
    • Utilities & Addins

Forward meeting details to another address

Slipstick Systems

› Developer › Forward meeting details to another address

Last reviewed on August 29, 2018     21 Comments

A security update disabled the Run a script option in the rules wizard in Outlook 2010 and all newer Outlook versions. See Run-a-Script Rules Missing in Outlook for more information and the registry key to fix restore it.

In our article discussing BCCing messages, Michael wanted to BCC all incoming meeting requests and cancellations to another address. You can do this with a run a script rule. The macro at the bottom of the page is an ItemAdd macro and watches for new items to be added to the calendar, forwarding appointment details as well as meeting details to another address.

The Run a script version is built off of the AutoAcceptMeeting request code sample.

To use this macro, open the VBA Editor (Alt+F11) and paste the code into ThisOutlookSession.

Next you will need to create a rule that looks for meeting cancellation or meeting request forms then choose the Run a Script action.
Forward meeting Request Rule

The macro creates and sends a message containing appointment details. The message body will look like the following screenshot and can be edited to add or remove fields.

Forward Meeting Details

Sub ForwardMeetingDetails(oRequest As MeetingItem)
 
Dim oAppt As AppointmentItem
Set oAppt = oRequest.GetAssociatedAppointment(True)
  
 
Dim fwdAppt As MailItem
Set fwdAppt = Application.CreateItem(olMailItem)
 strBody = "Organizer: " & oAppt.Organizer & vbCrLf _
 & "Start: " & oAppt.Start & vbCrLf & "End: " & oAppt.End _
 & vbCrLf & "Location: " & oAppt.Location & vbCrLf & "Message: " & oAppt.Body
  
With fwdAppt
 .Recipients.Add "alias@domain.com"
 .Subject = oAppt.Subject
 .Body = strBody
 .Send
End With


End Sub

Forward appointment details when an appointment is added to the calendar

With a few tweaks to the macro above, you can forward all appointments added to your calendar to another address.

This macro watches for new items to be added to the calendar and sends the details in a message.

It's an Application_Startup procedure and runs when Outlook starts. To test it without restarting Outlook, click in the Application_Startup macro and press Run (F5).

This macro needs to be in ThisOutlookSession.


Dim WithEvents newAppt As Items
  
Private Sub Application_Startup()
   Dim NS As Outlook.NameSpace
   Set NS = Application.GetNamespace("MAPI")
   Set newAppt = NS.GetDefaultFolder(olFolderCalendar).Items
   Set NS = Nothing
End Sub
  
Private Sub newAppt_ItemAdd(ByVal Item As Object)

Dim fwdAppt As MailItem
Set fwdAppt = Application.CreateItem(olMailItem)
Dim strBody As String
 strBody = "Organizer: " & Item.Organizer & vbCrLf _
 & "Start: " & Item.Start & vbCrLf & "End: " & Item.End _
 & vbCrLf & "Location: " & Item.Location & vbCrLf & "Message: " & Item.Body
   
With fwdAppt
 .Recipients.Add "maryc@domain.net"
 .Subject = Item.Subject
 .BodyFormat = olFormatPlain
 .Body = strBody

'Use Display to view onscreen and send yourself. Send will send it automatically
' .Display 
 .Send
End With
    
End Sub

More Information

More Run a Script Samples:

  • Autoaccept a Meeting Request using Rules
  • Automatically Add a Category to Accepted Meetings
  • Blocking Mail From New Top-Level Domains
  • Convert RTF Messages to Plain Text Format
  • Create a rule to delete mail after a number of days
  • Create a Task from an Email using a Rule
  • Create an Outlook Appointment from a Message
  • Create Appointment From Email Automatically
  • Delegates, Meeting Requests, and Rules
  • Delete attachments from messages
  • Forward meeting details to another address
  • How to Change the Font used for Outlook's RSS Feeds
  • How to Process Mail After Business Hours
  • Keep Canceled Meetings on Outlook's Calendar
  • Macro to Print Outlook email attachments as they arrive
  • Move messages CC'd to an address
  • Open All Hyperlinks in an Outlook Email Message
  • Outlook AutoReplies: One Script, Many Responses
  • Outlook's Rules and Alerts: Run a Script
  • Process messages received on a day of the week
  • Read Outlook Messages using Plain Text
  • Receive a Reminder When a Message Doesn't Arrive?
  • Run a script rule: Autoreply using a template
  • Run a script rule: Reply to a message
  • Run a Script Rule: Send a New Message when a Message Arrives
  • Run Rules Now using a Macro
  • Run-a-Script Rules Missing in Outlook
  • Save all incoming messages to the hard drive
  • Save and Rename Outlook Email Attachments
  • Save Attachments to the Hard Drive
  • Save Outlook Email as a PDF
  • Sort messages by Sender domain
  • Talking Reminders
  • To create a rule with wildcards
  • Use a Macro to Copy Data in an Email to Excel
  • Use a Rule to delete older messages as new ones arrive
  • Use a run a script rule to mark messages read
  • Use VBA to move messages with attachments
Forward meeting details to another address was last modified: August 29th, 2018 by Diane Poremsky
Post Views: 19

Related Posts:

  • A simple run a rule script marks Outlook messages read when the messag
    Use a run a script rule to mark messages read
  • Automatically Add a Category to Accepted Meetings
  • Keep Canceled Meetings on Outlook's Calendar
  • Move messages CC'd to an address

About Diane Poremsky

A Microsoft Outlook Most Valuable Professional (MVP) since 1999, Diane is the author of several books, including Outlook 2013 Absolute Beginners Book. She also created video training CDs and online training classes for Microsoft Outlook. You can find her helping people online in Outlook Forums as well as in the Microsoft Answers and TechNet forums.

Comments

  1. grijsbert says

    September 27, 2017 at 5:49 am

    Hello Diane,

    The script does not work when I test it by sending a meetingrequest to myself.
    What could be the problem? Privacy-options?

    Reply
    • Diane Poremsky says

      October 8, 2017 at 9:10 pm

      its not privacy options -it picks up the values from the meeting request and creates an new message. If you send it to your own address, it could be a spam filter blocking mail from you, to you.
      Try changing .send to .display so you can see the created message.

      Reply
  2. Tom Harron says

    April 20, 2017 at 1:20 pm

    I have vba code in Outlook to forward an email if instr(subject line) = . Works great and thank you. The email address is actually a cell phone number as a SMS text. Works great, as long as Outlook is open.

    If I close Outlook app, it does not work.

    Before the VBA code, I did the email forwarding by setting up 'Manage Rules & Alerts | New Rule | Send an alert to my mobile device when I get messages from someone" When I set up this rule in this fashion, it DOES work when Outlook app is closed!

    I would rather use the VBA method, as I need 60 people to set up their Outlook similarly

    Is there a way to make the VBA scripts to run when Outlook is closed?

    Reply
    • Diane Poremsky says

      April 20, 2017 at 10:51 pm

      No, sorry, there is not. VBA need Outlook loaded to run.

      Reply
  3. Dipika says

    December 12, 2016 at 7:29 am

    Hi Daine,

    I work in India, IST Time zone and our work hours are 9:00am-6:30pm.
    Now since we work with USA clients, many meetings are scheduled after 7:00PM IST, to attend which either we have to connected via GTM from our mobile at the time of meeting or stretch our work hours to attend the meeting. So we need to prepare before hand for such meeting. But many a times we forget to check our calendar before we leave for the day and also these meetings we get a reminder 15/30 minutes prior to the start time of the meeting, which is after we have left from office. Hence we don't get notified at a correct time. So i wanted to know if there is an option to run a script at 6:00PM IST(as we are actively working in front of our desktop at that time), that reads from our calendar, meeting details, and displays as a pop up/ alert/ reminder, about the meetings that are scheduled after 6:30PM IST.

    Reply
    • Diane Poremsky says

      December 12, 2016 at 12:53 pm

      it should be possible - i don't have any scripts that do that, but will look into it as I'm sure others would like to do this too.

      Reply
      • Dipika says

        December 13, 2016 at 5:09 am

        Great Diane,

        Thank you for your quick response.

      • Dipika says

        January 11, 2017 at 10:45 pm

        Hi Diane,
        If you could help me with how to trigger any alert at the end of the day, i might be able to work on rest of the code to tag it with timing of the meeting and performing the filter.
        Awaiting your response and thank you in advance for the help.

      • Diane Poremsky says

        January 12, 2017 at 12:35 am

        you need to use find or restrict to find the appointments that are scheduled after the appointed time and list them in a message box. You can kick this macro off manually or using a task reminder.

  4. Lucas says

    April 22, 2016 at 7:23 pm

    Why for me does not show the meeting status ?
    To work in Outlook 2016, I do that.

    Dim WithEvents newAppt As Items
    Sub ForwardMeetingDetails(oRequest As MeetingItem)

    Dim oAppt As AppointmentItem
    Set oAppt = oRequest.GetAssociatedAppointment(True)

    Dim fwdAppt As MailItem
    Set fwdAppt = Application.CreateItem(olMailItem)
    strBody = "Organizer: " & oAppt.Organizer & vbCrLf _
    & "Start: " & oAppt.Start & vbCrLf & "End: " & oAppt.End _
    & vbCrLf & "Location: " & oAppt.Location & vbCrLf & "Message: " & oAppt.Body

    With fwdAppt
    .Recipients.Add "mateus.mattos@sistemainfo.com.br"
    .Subject = oAppt.Subject
    .Body = strBody
    .Send
    End With

    End Sub
    Private Sub Application_Startup()

    Dim NS As Outlook.NameSpace
    Set NS = Application.GetNamespace("MAPI")
    Set newAppt = NS.GetDefaultFolder(olFolderCalendar).Items
    Set NS = Nothing

    MsgBox "Welcome, " & Application.GetNamespace("MAPI").CurrentUser

    'Application.ActiveExplorer.WindowState = olMaximized

    End Sub

    Sub newAppt_ItemAdd(ByVal Item As Object)

    Dim fwdAppt As MailItem
    Set fwdAppt = Application.CreateItem(olMailItem)
    Dim strBody As String
    strBody = "Organizer: " & Item.Organizer & vbCrLf _
    & "Start: " & Item.Start & vbCrLf & "End: " & Item.End _
    & vbCrLf & "Location: " & Item.Location & vbCrLf & "Message: " & Item.Body

    With fwdAppt
    .Recipients.Add "mateus.mattos@sistemainfo.com.br"
    .Subject = Item.Subject
    .BodyFormat = olFormatPlain
    .Body = strBody

    'Use Display to view onscreen and send yourself. Send will send it automatically
    .Display
    ' .Send
    End With

    End Sub

    Reply
    • Diane Poremsky says

      April 25, 2016 at 1:09 am

      What status do you want to include? You need to add that field to the string that is added to the body.

      Reply
  5. Tomas V. says

    June 4, 2013 at 7:00 am

    Hi Diane,
    is there any option how to forward meeting request to personal email with no information to organizer?

    Reply
    • Diane Poremsky says

      June 4, 2013 at 10:12 am

      Try attaching it to an email and don't accept it, just drag it off the message and into the calendar. Or use a macro to create an appointment with the details that is forwarded to your personal account.

      Reply
  6. Alwyn says

    March 13, 2013 at 9:54 am

    Hi Diane,

    Sorry for the very late reply but this didn't work at all. I tried to delete the srs file in case it was corrupt but nothing.

    I did write this however from another code on the web, it works for me but can't seem to get it to work for other users! Any help would be appreciated. Ideally the first code would be better as its an automatic process. Thanks in advance!

    'This is the email you want to forward meeting items to
    Private Const forwardMeetingsTo As String = "nev_evans@hotmail.com"
    'This is the prefix in the subject for forwarded meeting appointments
    Private Const forwardSubjectPrefix As String = "[CalSync] "

    Private Sub Application_ItemSend(ByVal item As Object, Cancel As Boolean)
    ' Call to forward AppointmentItems on to a different address. The called method is responsible for determening the type of Item and for cleaning it before sending it on
    Call ForwardmeetingRequests(item)
    End Sub

    'This method is called from the SendItem event, and will start the clean-and-forward
    'procedure for Meeting requests
    Private Sub ForwardmeetingRequests(ByVal item As Object)
    Dim ic, bIsDuplicateAppointmentItem As Boolean
    Dim prop
    bIsDuplicateAppointmentItem = False
    ''''Start check to see if Item is a meeting. If so, make a call to forward it
    ic = item.Class
    Select Case ic
    Case olMeetingRequest: '53

    Set prop = item.UserProperties.Find("DuplicateItemv2")
    If TypeName(prop) "Nothing" Then
    bIsDuplicateAppointmentItem = True
    End If

    If bIsDuplicateAppointmentItem = False Then
    Call ForwardMeetingItem_CreateNewItem(item, forwardMeetingsTo)
    End If
    End Select

    End Sub

    'This sub is used to 'forward' meeting items.
    'Forwarding creates some problems, so a blank meeting request is created,
    'and several properties are copied from the original one to the new one.
    'The new one is then sent and deleted right afterwards
    Private Sub ForwardMeetingItem_CreateNewItem(ByVal incommingItem, ByVal sendTo As String)
    ''''Create a new meeting item and copy what is needed from the incoming one
    Set myAppt = incommingItem.GetAssociatedAppointment(False)

    Dim fwdMeetingItem As Object
    Set fwdMeetingItem = myAppt.Application.CreateItem(olAppointmentItem)
    fwdMeetingItem.MeetingStatus = olMeeting

    fwdMeetingItem.Subject = forwardSubjectPrefix & myAppt.Subject
    fwdMeetingItem.Start = myAppt.Start
    fwdMeetingItem.End = myAppt.End
    fwdMeetingItem.Location = myAppt.Location
    fwdMeetingItem.Sensitivity = olPrivate
    fwdMeetingItem.ReminderMinutesBeforeStart = 15
    fwdMeetingItem.ReminderSet = True

    fwdMeetingItem.Importance = myAppt.Importance

    ''''Add a recipient
    fwdMeetingItem.Recipients.Add "nev_evans@hotmail.com"

    Dim prop
    Set prop = fwdMeetingItem.UserProperties.Add("DuplicateItemv2", olText)

    ''''Send item .send or .display
    fwdMeetingItem.Send

    ''''Delete the forwarded item from the calendar
    fwdMeetingItem.Delete
    End Sub

    'This is called by the Rule in Outlook
    Sub CustomMeetingRequestRule(objItem As Outlook.MeetingItem)
    If objItem.Class = olMeetingRequest Then '53
    Call ForwardMeetingItem_CreateNewItem(objItem, forwardMeetingsTo)
    End If
    End Sub

    Reply
    • Diane Poremsky says

      March 13, 2013 at 4:05 pm

      What happens when they try it? It worked fine here. If nothing happens, check their macro security.

      Reply
  7. Alwyn says

    February 25, 2013 at 2:47 am

    This is the code that I've written based on your code. Thanks in advance

    Dim WithEvents newAppt As Items

    Sub Application_Startup()
    Dim NS As Outlook.NameSpace
    Set NS = Application.GetNamespace("MAPI")
    Set newAppt = NS.GetDefaultFolder(olFolderCalendar).Items
    Set NS = Nothing
    End Sub
    Error
    Sub newAppt_ItemAdd(ByVal Item As Object)
    Dim fwdAppt As AppointmentItem
    Set fwdAppt = Application.CreateItem(olAppointmentItem)
    With fwdAppt
    .MeetingStatus = olMeeting
    .Recipients.Add "alwynw27@gmail.com"
    .Subject = "Copy" & Item.Subject
    .Start = Item.Start
    .Duration = Item.Duration
    .Location = Item.Location
    .Sensitivity = olPrivate
    'Use Display to view onscreen and send yourself. Send will send it automatically .display .send'
    .Display
    End With
    Set fwdAppt = Nothing

    Reply
    • Diane Poremsky says

      February 25, 2013 at 9:12 pm

      Try this one:

      Dim WithEvents newAppt As Items
      Sub Application_Startup()
      Dim NS As Outlook.NameSpace
      Set NS = Application.GetNamespace("MAPI")
      Set newAppt = NS.GetDefaultFolder(olFolderCalendar).Items
      Set NS = Nothing
      End Sub
      Sub newAppt_ItemAdd(ByVal Item As Object)
      Dim fwdAppt As AppointmentItem
      Dim CalFolder As Outlook.MAPIFolder
      Set fwdAppt = Application.CreateItem(olAppointmentItem)
      Set CalFolder = Session.GetDefaultFolder(olFolderDeletedItems)
      If Left(Item.Subject, 5) <> "Copy:" Then
      With fwdAppt
      .MeetingStatus = olMeeting
      .Recipients.Add "diane@xsolive.com"
      .Subject = "Copy: " & Item.Subject
      .Start = Item.Start
      .Duration = Item.Duration
      .Location = Item.Location
      .Sensitivity = olPrivate
      'Use Display to view onscreen and send yourself. Send will send it automatically .display .send'
      .Send
      End With
      fwdAppt.Move CalFolder
      End If
      Set fwdAppt = Nothing
      End Sub

      Reply
  8. Alwyn says

    February 22, 2013 at 8:19 am

    I've come up something and it does do what it's told, however it repeats the action as each time a new appointment is added to the calendar it send another appointment - I've had a total of 156 appointments being sent before I figured it out. Currently I've changed from .send to .display to get around this. Is there another way?

    Or is it possible to forward all new appointments to gmail without it also displaying on my calendar for a second time?

    Reply
    • Diane Poremsky says

      February 24, 2013 at 6:10 am

      I'll have to test it, but one option is moving the copy to a second calendar folder. Deleting it in code after sending it might work too.

      Reply
  9. Alwyn says

    February 21, 2013 at 6:45 am

    Hi Diane,

    The macro works great but is there a way to send an exact copy of the appointment as an appointment to an external email address instead an email? I would like to see what is in my work outlook calendar in my day to day one with Gmail and as google sync is no longer available this is proving difficult

    Reply
    • Diane Poremsky says

      February 21, 2013 at 9:10 pm

      You could forward the meeting or appointment.

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Visit Slipstick Forums.
What's New at Slipstick.com

Latest EMO: Vol. 31 Issue 3

Subscribe to Exchange Messaging Outlook






Support Services

Do you need help setting up Outlook, moving your email to a new computer, migrating or configuring Office 365, or just need some one-on-one assistance?

Our Sponsors

CompanionLink
ReliefJet
  • Popular
  • Latest
  • Week Month All
  • Jetpack plugin with Stats module needs to be enabled.
  • Sync Issues and Errors with Gmail and Yahoo accounts
  • Error Opening iCloud Appointments in Classic Outlook
  • Opt out of Microsoft 365 Companion Apps
  • Mail Templates in Outlook for Windows (and Web)
  • Urban legend: Microsoft Deletes Old Outlook.com Messages
  • Buttons in the New Message Notifications
  • Move Deleted Items to Another Folder Automatically
  • Open Outlook Templates using PowerShell
  • Count and List Folders in Classic Outlook
  • Google Workspace and Outlook with POP Mail
Ajax spinner

Recent Bugs List

Microsoft keeps a running list of issues affecting recently released updates at Fixes or workarounds for recent issues in classic Outlook (Windows).

For new Outlook for Windows: Fixes or workarounds for recent issues in new Outlook for Windows .

Outlook for Mac Recent issues: Fixes or workarounds for recent issues in Outlook for Mac

Outlook.com Recent issues: Fixes or workarounds for recent issues on Outlook.com

Office Update History

Update history for supported Office versions is at Update history for Office

Outlook Suggestions and Feedback

Outlook Feedback covers Outlook as an email client, including Outlook Android, iOS, Mac, and Windows clients, as well as the browser extension (PWA) and Outlook on the web.

Outlook (new) Feedback. Use this for feedback and suggestions for Outlook (new).

Use Outlook.com Feedback for suggestions or feedback about Outlook.com accounts.

Other Microsoft 365 applications and services




New Outlook Articles

Sync Issues and Errors with Gmail and Yahoo accounts

Error Opening iCloud Appointments in Classic Outlook

Opt out of Microsoft 365 Companion Apps

Mail Templates in Outlook for Windows (and Web)

Urban legend: Microsoft Deletes Old Outlook.com Messages

Buttons in the New Message Notifications

Move Deleted Items to Another Folder Automatically

Open Outlook Templates using PowerShell

Count and List Folders in Classic Outlook

Google Workspace and Outlook with POP Mail

Newest Code Samples

Open Outlook Templates using PowerShell

Count and List Folders in Classic Outlook

Insert Word Document into Email using VBA

Warn Before Deleting a Contact

Use PowerShell to Delete Attachments

Remove RE:, FWD:, and Other Prefixes from Subject Line

Change the Mailing Address Using PowerShell

Categorize @Mentioned Messages

Send an Email When You Open Outlook

Delete Old Calendar Events using VBA

VBA Basics

How to use the VBA Editor

Work with open item or selected item

Working with All Items in a Folder or Selected Items

VBA and non-default Outlook Folders

Backup and save your Outlook VBA macros

Get text using Left, Right, Mid, Len, InStr

Using Arrays in Outlook macros

Use RegEx to extract message text

Paste clipboard contents

Windows Folder Picker

Custom Forms

Designing Microsoft Outlook Forms

Set a custom form as default

Developer Resources

Developer Resources

Developer Tools

VBOffice.net samples

SlovakTech.com

Outlook MVP David Lee

Repair PST

Convert an OST to PST

Repair damaged PST file

Repair large PST File

Remove password from PST

Merge Two Data Files

Sync & Share Outlook Data

  • Share Calendar & Contacts
  • Synchronize two computers
  • Sync Calendar and Contacts Using Outlook.com
  • Sync Outlook & Android Devices
  • Sync Google Calendar with Outlook
  • Access Folders in Other Users Mailboxes

Diane Poremsky [Outlook MVP]

Make a donation

Mail Tools

Sending and Retrieval Tools

Mass Mail Tools

Compose Tools

Duplicate Remover Tools

Mail Tools for Outlook

Online Services

Calendar Tools

Schedule Management

Calendar Printing Tools

Calendar Reminder Tools

Calendar Dates & Data

Time and Billing Tools

Meeting Productivity Tools

Duplicate Remover Tools

Productivity

Productivity Tools

Automatic Message Processing Tools

Special Function Automatic Processing Tools

Housekeeping and Message Management

Task Tools

Project and Business Management Tools

Choosing the Folder to Save a Sent Message In

Run Rules on messages after reading

Help & Suggestions

Submit Outlook Feature Requests

Slipstick Support Services

Buy Microsoft 365 Office Software and Services

Visit Slipstick Forums.

What's New at Slipstick.com

Home | Outlook User | Exchange Administrator | Office 365 | Outlook.com | Outlook Developer
Outlook for Mac | Common Problems | Utilities & Addins | Tutorials
Outlook & iCloud Issues | Outlook Apps
EMO Archives | About Slipstick | Slipstick Forums
Submit New or Updated Outlook and Exchange Server Utilities

Send comments using our Feedback page
Copyright © 2026 Slipstick Systems. All rights reserved.
Slipstick Systems is not affiliated with Microsoft Corporation.