Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2078
  • Last Modified:

Visual Basic - Send an appointment to outlook

Hi,

Does anyone know how I can send an email from visual basic, that will appear in outlook as a calender appointement, then when the user accepts appear in their calender?

thanks
0
kinton
Asked:
kinton
  • 6
  • 3
2 Solutions
 
KavarCommented:
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItem(olAppointmentItem)
set recip=myItem.Recipients.Add "MYemail@company.com"
recip.Type = olRequired
myItem.Subject="Come To My Meeting"
myItem.Start = #4/2/2004 1:30:00 PM#
myItem.Duration = 90
Set myResourceAttendee =myItem.Recipients.Add("Conference Room B")
myResourceAttendee.Type = olResource
myItem.Send
0
 
kintonAuthor Commented:
Hi,

Could you tell me what your variables are here, and where applicable your components or references?

thanks
0
 
KavarCommented:
olAppointmentItem=1
olRequired=1
olResource=3

Don't include Any references if you want this to be portable to other versions of Outlook, if this is just for on machine and the outlook version wont change, add the Microsoft Outlook Object Model
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
kintonAuthor Commented:
Sorry, I think I am misunderstanding something!  What variables do I need to declare and what should I declare them as, the code seems to be running fine but no appointment is appearing!
0
 
KavarCommented:
ahhh yes if you want to send to someone else there is one more step, use this code ...

'****************
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myOutBox = myNameSpace.GetDefaultFolder(olFolderOutbox)
Set myitem = myOlApp.CreateItem(olAppointmentItem)
myitem.MeetingStatus = olMeeting
Set recip = myitem.Recipients.Add("<emailAddressHere>")
recip.Type = olRequired
recip.Resolve
myitem.Subject = "Come To My Meeting"
myitem.Start = #4/2/2004 1:30:00 PM#
myitem.Duration = 90
myitem.Send
Set myitem = Nothing
'**********************
0
 
kintonAuthor Commented:
I can't even get it to appear my self!  I think I must be declaring the variables wrong, can you give me the correct declaration statement?
0
 
KavarCommented:
Comment from Kavar
Date: 04/02/2004 08:47AM CST
 Your Comment  


Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItem(olAppointmentItem)
set recip=myItem.Recipients.Add "MYemail@company.com"
recip.Type = olRequired
myItem.Subject="Come To My Meeting"
myItem.Start = #4/2/2004 1:30:00 PM#
myItem.Duration = 90
Set myResourceAttendee =myItem.Recipients.Add("Conference Room B")
myResourceAttendee.Type = olResource
myItem.Send
 
Comment from kinton
Date: 04/02/2004 08:50AM CST
 Author Comment  


Hi,

Could you tell me what your variables are here, and where applicable your components or references?

thanks
 
Comment from Kavar
Date: 04/02/2004 08:56AM CST
 Your Comment  


olAppointmentItem=1
olRequired=1
olResource=3

Don't include Any references if you want this to be portable to other versions of Outlook, if this is just for on machine and the outlook version wont change, add the Microsoft Outlook Object Model
 
Comment from kinton
Date: 04/02/2004 09:08AM CST
 Author Comment  


Sorry, I think I am misunderstanding something!  What variables do I need to declare and what should I declare them as, the code seems to be running fine but no appointment is appearing!
 
Comment from Kavar
Date: 04/02/2004 09:30AM CST
 Your Comment  


ahhh yes if you want to send to someone else there is one more step, use this code ...

'****************
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myOutBox = myNameSpace.GetDefaultFolder(4)
Set myitem = myOlApp.CreateItem(1)
myitem.MeetingStatus = 1
Set recip = myitem.Recipients.Add("<emailAddressHere>")
recip.Type = 1
recip.Resolve
myitem.Subject = "Come To My Meeting"
myitem.Start = #4/2/2004 1:30:00 PM#
myitem.Duration = 90
myitem.Send
Set myitem = Nothing
'**********************
 
0
 
DaveHavardCommented:
Kavar is using late binding so just declare all variables as objects and do not add any references. Add the following to the top of the code:
'*** New line:
Dim myOlApp, myNameSpace, myOutBox, myItem, recip
'*
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myOutBox = myNameSpace.GetDefaultFolder(olFolderOutbox)
Set myItem = myOlApp.CreateItem(olAppointmentItem)
myItem.MeetingStatus = olMeeting
'*** DONT FORGET THE EMAIL ADDRESS HERE - TEST ON YOURS!
Set recip = myItem.Recipients.Add("<emailAddressHere>")
recip.Type = olRequired
recip.Resolve
myItem.Subject = "Come To My Meeting"
myItem.Start = #4/2/2004 1:30:00 PM#
myItem.Duration = 90
myItem.Send
Set myItem = Nothing


Dave
0
 
KavarCommented:
the reason why nothing was happening was because he had not included  the outlook object model so he didn't support named constants, my last post has the correct values.

The only time in vb declaring type variants is required is when option explicit is used, if that had been turned on the script would not have run at all.
0
 
KavarCommented:
the reason why nothing was happening was because he had not included  the outlook object model so he didn't support named constants, my last post has the correct values.

The only time in vb declaring type variants is required is when option explicit is used, if that had been turned on the script would not have run at all.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 6
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now