• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Outlook macros to create meeting on shared calendar

Outlook version
Outlook 2016 64 bit
Email Account
Office 365 Exchange
#1
Hi Guys,

Thanks for having me here..

I'm very new to this all and have followed some online guides to customize a "Meeting Form" and create a "Button" on the outlook ribbon allowing me to book jobs. Myself and a work colleague each have independent email addresses on the office365 exchange (we use outlook 2016) and intern also our own calendars.

I have shared my calendar with my work colleague and have also setup the same form and button on his machine, but everytime he books a job it books to his calendar, at this stage i can only see his booked jobs by sharing his calendar and "Overlaying" with mine so we don't get any conflicting bookings.

Below is the macro code I used, but what can I add to have it book the jobs on "my calendar" that i have shared with him please.

Sub MakeItem()
Set newItem = Application.CreateItemFromTemplate("C:\Users\user\AppData\Roaming\Microsoft\Templates\test.oft")
newItem.Display
Set newItem = Nothing
End Sub

Thank you so much in advance.
 
Outlook version
Outlook 2016 64 bit
Email Account
Office 365 Exchange
#3
Hi and thank you for such a quick reply, yes I have set him up as a owner on my calendar.
 

Michael Bauer

Senior Member
Outlook version
Outlook 2010 32 bit
Email Account
Exchange Server
#4
CreateItem`adds the item to the default calendar, which for your collegue is not yours. Call GetSharedDefaultFolder, and move the item to that folder. See a sample for how to use that function in the VBA help file.
 
Outlook version
Outlook 2016 64 bit
Email Account
Office 365 Exchange
#5
Hi Michael thank you for your reply.. very new to this and don't fully understand vb yet but am determined to learn... will the following work ?

Sub MakeItem()
Set CalendarFolder = GetSharedDefaultFolder(me@me.com, FolderType)
Set newItem = Application.CreateItemFromTemplate("C:\Users\user\AppData\Roaming\Microsoft\Templates\test.oft")
newItem.Display
Set newItem = Nothing
End Sub
 

Michael Bauer

Senior Member
Outlook version
Outlook 2010 32 bit
Email Account
Exchange Server
#6
The email address must be enclosed in quotation marks.
And you need to move the item to the target folder, that is after loading the template call:
set newitem=newitem.move(calendarfolder)
 
Outlook version
Outlook 2016 64 bit
Email Account
Office 365 Exchange
#7
Hi Michael, thank you again.. so the correct code would be like the following?

Sub MakeItem()
Set CalendarFolder = GetSharedDefaultFolder("me@me.com, FolderType")
Set newItem = Application.CreateItemFromTemplate("C:\Users\user\AppData\Roaming\Microsoft\Templates\test.oft")
newItem.Display
Set newItem = newitem.move(calendarfolder)
End Sub
 

Michael Bauer

Senior Member
Outlook version
Outlook 2010 32 bit
Email Account
Exchange Server
#8
Only the address is in quotation marks. For FolderType you need to specify which type of folder should be opened: place the cursor onto the word 'FolderType', press ctrl+switch+j, then select the type you need.

Also, move the item before you display it.
 
Outlook version
Outlook 2016 64 bit
Email Account
Office 365 Exchange
#9
Thank you for all your help... slight change in plan, have since created a public folder calendar... please if you could assist in the code below, so now im wanting my macro to create the appointment on the public folder calendar...

Sub MakeItem()
Set CalendarFolder = olPublicFoldersAllPublicFolders(TEST, "TEST@TEST.COM" \ TEST_CALENDAR)
Set newItem = Application.CreateItemFromTemplate("C:\Users\user\AppData\Roaming\Microsoft\Templates\test.oft")
newItem.Display
Set newItem = Nothing
End Sub
 

Michael Bauer

Senior Member
Outlook version
Outlook 2010 32 bit
Email Account
Exchange Server
#10
Press ctrl+6 in Outlook and look at the hierarchy of folders and their names. You´ll find the same hierarchy in Application.Session.Folders("[here the topfolder name]".Folders("[here the subfolder name]")
 
Outlook version
Outlook 2016 64 bit
Email Account
Office 365 Exchange
#11
Apologies for the delay in coming back to you, please are you able to assist with how my macro should be? it just can't seem to get it... can you confirm the below ? and if you can suggest any online courses to learning VB that would be greatly appreciated!

Sub MakeItem()
Set CalendarFolder = Application.Session.Folders("[here the topfolder name]".Folders("[here the subfolder name]")
Set newItem = Application.CreateItemFromTemplate("C:\Users\user\AppData\Roaming\Microsoft\Templates\test.oft")
newItem.Display
Set newItem = Nothing
End Sub
 

Similar threads