If you have multiple calendars in your Outlook and want to send all of them in one email as separate iCalendar file attachments, you can read this article. Here we will teach you 2 ways to get it.
To send a calendar via email, you can apply the native feature – “Email Calendar”, which will quickly attach a calendar to an email. But, by this means, you cannot attach multiple calendars in the same email. Of course, you can use the following Method 1 to copy the attached calendars from different emails to the same email one by one. But, it is too tedious and quite troublesome when there are too many calendars to be sent. Therefore, here we also introduce the Method 2, which is far more convenient and efficient.
Method 1：Copy to Same Email after “Email Calendar”
- At first, open a calendar.
- Then, click the “E-mail Calendar” button in the “Share” group on “Home” tab.
- Next, in the new message window, specify the calendar information you want to include in the “Send a Calendar via E-mail” dialog box.
- After clicking “OK”, the calendar will be attached as iCalendar file, as shown in the following figure.
- Now, use the same way to attach the other calendars to separate emails.
- After attaching all calendars to different emails, you can copy the attached ics files to the same way as usual.
Method 2: Batch Attach All Calendars to One Mail with VBA
- For a start, trigger VBA editor via “Alt + F11” key shortcut.
- Then, put the following VBA code into a module or project.
Public objMail As Outlook.MailItem Public objStore As Outlook.Store Sub AttachAllCalendars() Dim objOutlookFile As Outlook.Folder Dim objFolder As Outlook.Folder Set objMail = Outlook.Application.CreateItem(olMailItem) For Each objStore In Outlook.Application.Session.Stores Set objOutlookFile = objStore.GetRootFolder For Each objFolder In objOutlookFile.Folders If objFolder.DefaultItemType = olAppointmentItem Then Call ProcessCalendars(objFolder) End If Next Next objMail.Display End Sub Sub ProcessCalendars(ByVal objCalendar As Outlook.Folder) Dim dStartDate As Date Dim dEndDate As Date Dim striCalendarFile As String Dim objExportedCalendar As Outlook.CalendarSharing Dim objSubCalendar As Outlook.Folder 'Change the date as per your needs dStartDate = "4/1/2018" dEndDate = "4/30/2018" striCalendarFile = "E:\" & objStore.DisplayName & " - " & objCalendar.Name & " [" & Format(dStartDate, "YYYYMMDD") & "-" & Format(dEndDate, "YYYYMMDD") & "].ics" Set objExportedCalendar = objCalendar.GetCalendarExporter With objExportedCalendar .IncludeWholeCalendar = False .StartDate = dStartDate .EndDate = dEndDate .CalendarDetail = olFullDetails .IncludeAttachments = True .IncludePrivateDetails = False .RestrictToWorkingHours = False .SaveAsICal striCalendarFile End With objMail.Attachments.Add striCalendarFile Kill striCalendarFile If objCalendar.Folders.Count > 0 Then For Each objSubCalendar In objCalendar.Folders Call ProcessCalendars(objSubCalendar) Next End If End Sub
- Subsequently, put cursor in the first subroutine and press “F5” key button.
- At once, a new email will display, in which all the calendars are attached, like the following screenshot.
Address Aggravating Outlook Issues
Miscellaneous problems can occur to Outlook from time to time. Therefore, you ought to learn some tricks to deal with Outlook issues. For instance, sometimes, a simple restart can solve tiny troubles. To fix the more serious errors, it’s better to make use of the inbuilt repair tool. Yet, in face of severe PST corruption, you have no choice but to resort to a more powerful external tool, like DataNumen Outlook Repair.
Shirley Zhang is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including SQL Server fix and outlook repair software products. For more information visit www.datanumen.com
Leave a Reply