<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Calendar Sync Archives | DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/tag/calendar-sync/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Mon, 22 Jun 2026 21:07:26 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://static.dmcinfo.com/wp-content/uploads/2025/04/site-icon-150x150.png</url>
	<title>Calendar Sync Archives | DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>A Bug in Calendar Lists</title>
		<link>https://static.dmcinfo.com/blog/28612/a-bug-in-calendar-lists/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 21 Feb 2013 13:31:30 +0000</pubDate>
				<category><![CDATA[Digital Workplace Solutions]]></category>
		<category><![CDATA[Office 365]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Calendar Sync]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/28612/a-bug-in-calendar-lists/</guid>

					<description><![CDATA[<p>As I explained in a previous post, a client had need of copying appointments from an Exchange shared calendar to a SharePoint calendar. I recently encountered a bug in calendar lists that I thought I should share. The task was to populate a SharePoint calendar with appointments from Exchange. Exchange appointments have a unique ID [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/28612/a-bug-in-calendar-lists/">A Bug in Calendar Lists</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">As I explained in a <a href="https://static.dmcinfo.com/blog/31854/copying-appointments-from-exchange-to-a-sharepoint-calendar/">previous post</a>, a client had need of copying appointments from an Exchange shared calendar to a SharePoint calendar.</p>



<p class="wp-block-paragraph">I recently encountered a bug in calendar lists that I thought I should share. The task was to populate a SharePoint calendar with appointments from Exchange. Exchange appointments have a unique ID that I was using in SharePoint, but this ID is re-used for instances of a recurring appointment. In order to differentiate instances of recurring appointments, I would use the start time of the appointment. This worked well for most appointments but I found that it did not work for all-day appointments. The CAML query I constructed to find all-day appointments by the start time of the appointment consistently failed.</p>



<p class="wp-block-paragraph">I looked at the data values for the appointment I was trying to find in Powershell, and found to my surprise that all-day appointments &#8211; no matter where they are saved from &#8211; are stored in UTC time. Apparently all appointments are stored in this way as well, but when querying for a non-all-day appointment by start time SharePoint will automatically convert the date-time passed in into UTC. CAML queries for all-day appointments do not behave similarly.</p>



<p class="wp-block-paragraph">So if you are trying to query a SharePoint calendar list for an all-day appointment using the start time or end time of that appointment, remember to convert the date-time you are passing in into UTC manually. This is not necessary for non-all-day appointments. Also remember to use the exact date-time in question when converting because the offset may be different because of daylight savings&#8217; time.</p>
<p>The post <a href="https://static.dmcinfo.com/blog/28612/a-bug-in-calendar-lists/">A Bug in Calendar Lists</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Copying Appointments from Exchange to a SharePoint Calendar</title>
		<link>https://static.dmcinfo.com/blog/31854/copying-appointments-from-exchange-to-a-sharepoint-calendar/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Tue, 07 Aug 2012 10:43:38 +0000</pubDate>
				<category><![CDATA[Digital Workplace Solutions]]></category>
		<category><![CDATA[Office 365]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Calendar Sync]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/31854/copying-appointments-from-exchange-to-a-sharepoint-calendar/</guid>

					<description><![CDATA[<p>Recently I had the opportunity to programmatically copy Exchange appointments to a SharePoint calendar. This was done using the Exchange web services API. I found no examples of this procedure online, so I thought I would add my own example. This example looks 62 days into the future and copies appointments from a shared calendar [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/31854/copying-appointments-from-exchange-to-a-sharepoint-calendar/">Copying Appointments from Exchange to a SharePoint Calendar</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Recently I had the opportunity to programmatically copy Exchange appointments to a SharePoint calendar. This was done using the Exchange web services API. I found no examples of this procedure online, so I thought I would add my own example. This example looks 62 days into the future and copies appointments from a shared calendar in Exchange located in the public folders root.</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1e1e1e"><span style="background:#c7c7c7;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1e1e1e">C#</span></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>// Here are the references you'll need
using System;
using System.Linq;
using System.Net;
using Microsoft.SharePoint;
using Microsoft.SharePoint.ApplicationPages.Calendar.Exchange;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint.Meetings;
using Microsoft.Exchange.WebServices.Data;</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">// Here are the references you&apos;ll need</span></span>
<span class="line"><span style="color: #C586C0">using</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">System</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #C586C0">using</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">System</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">Linq</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #C586C0">using</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">System</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">Net</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #C586C0">using</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">Microsoft</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">SharePoint</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #C586C0">using</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">Microsoft</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">SharePoint</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">ApplicationPages</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">Calendar</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">Exchange</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #C586C0">using</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">Microsoft</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">SharePoint</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">Utilities</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #C586C0">using</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">Microsoft</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">SharePoint</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">Administration</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #C586C0">using</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">Microsoft</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">SharePoint</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">Meetings</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #C586C0">using</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">Microsoft</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">Exchange</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">WebServices</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">Data</span><span style="color: #D4D4D4">;</span></span></code></pre></div>



<p class="wp-block-paragraph">Warning: the following code includes a lot of try-catches but in my experience this was necessary.</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1e1e1e"><span style="background:#c7c7c7;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1e1e1e">C#</span></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>// service is the Exchange Service - there are numerous examples elsewhere on how to obtain this
var publicFolders = Folder.Bind(service, WellKnownFolderName.PublicFoldersRoot);
// I'm only interested in one folder
var folderView = new FolderView(1);
// The public calendar/folder name is "Public Calendar"
var searchFilter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Public Calendar");
var findFoldersResult = publicFolders.FindFolders(searchFilter, folderView).First();
var calendarView = new CalendarView(DateTime.Today, DateTime.Today.AddDays(62));
var appointments = service.FindAppointments(findFoldersResult.Id, calendarView);
if (appointments.Any()) service.LoadPropertiesForItems(from Item item in appointments select item, PropertySet.FirstClassProperties);
foreach (var appointment in appointments)
{
	// GetItem checks calendarList for the existence of an item identified by the UniqueId. It either returns that item
	// or creates a new one with the custom column containing the UniqueId set to the value passed in
	var calendarEvent = GetItem(calendarList, appointment.Id.UniqueId);
	try
	{
		calendarEvent&#91;SPBuiltInFieldId.Title&#93; = appointment.Subject;
	}
	catch {}
	try
	{
		calendarEvent&#91;SPBuiltInFieldId.StartDate&#93; = appointment.Start;
	}
	catch { }
	try
	{
		calendarEvent&#91;SPBuiltInFieldId.EndDate&#93; = appointment.End;
	}
	catch { }
	try
	{
		calendarEvent&#91;SPBuiltInFieldId.fAllDayEvent&#93; = appointment.IsAllDayEvent;
	}
	catch { }
	try
	{
		calendarEvent&#91;SPBuiltInFieldId.Location&#93; = appointment.Location;
	}
	catch { }
	try
	{
		calendarEvent&#91;SPBuiltInFieldId.FreeBusy&#93; = appointment.LegacyFreeBusyStatus == LegacyFreeBusyStatus.NoData ?
			null : appointment.LegacyFreeBusyStatus.ToString();
	}
	catch { }
	try
	{
		calendarEvent&#91;SPBuiltInFieldId.Description&#93; = appointment.Body.Text;
	}
	catch { }
	try
	{
		var categories = new SPFieldMultiChoiceValue();
		foreach (var category in appointment.Categories)
		{
			categories.Add(category);
		}
		calendarEvent&#91;SPBuiltInFieldId.Category&#93; = categories;
	}
	catch { }
	try
	{
		var attendees = new SPFieldUserValueCollection();
		attendees.AddRange(appointment.RequiredAttendees.Select(attendee => web.AllUsers.GetByEmail(attendee.Address)).Select(user => new SPFieldUserValue(web, user.ID, user.Name)));
		calendarEvent&#91;SPBuiltInFieldId.ParticipantsPicker&#93; = attendees;
	}
	catch { }
	calendarEvent.Update();
}</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">// service is the Exchange Service - there are numerous examples elsewhere on how to obtain this</span></span>
<span class="line"><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">publicFolders</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Folder</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">Bind</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">service</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">WellKnownFolderName</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">PublicFoldersRoot</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #6A9955">// I&apos;m only interested in one folder</span></span>
<span class="line"><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">folderView</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">FolderView</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #6A9955">// The public calendar/folder name is &quot;Public Calendar&quot;</span></span>
<span class="line"><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">searchFilter</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">SearchFilter</span><span style="color: #D4D4D4">.</span><span style="color: #4EC9B0">IsEqualTo</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">FolderSchema</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">DisplayName</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">&quot;Public Calendar&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">findFoldersResult</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">publicFolders</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">FindFolders</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">searchFilter</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">folderView</span><span style="color: #D4D4D4">).</span><span style="color: #DCDCAA">First</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">calendarView</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">CalendarView</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">DateTime</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Today</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">DateTime</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Today</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">AddDays</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">62</span><span style="color: #D4D4D4">));</span></span>
<span class="line"><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">appointments</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">service</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">FindAppointments</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">findFoldersResult</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Id</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">calendarView</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> (</span><span style="color: #9CDCFE">appointments</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">Any</span><span style="color: #D4D4D4">()) </span><span style="color: #9CDCFE">service</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">LoadPropertiesForItems</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">from</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">Item</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">item</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">in</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">appointments</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">select</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">item</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">PropertySet</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">FirstClassProperties</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #C586C0">foreach</span><span style="color: #D4D4D4"> (</span><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">appointment</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">in</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">appointments</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">{</span></span>
<span class="line"><span style="color: #6A9955">	// GetItem checks calendarList for the existence of an item identified by the UniqueId. It either returns that item</span></span>
<span class="line"><span style="color: #6A9955">	// or creates a new one with the custom column containing the UniqueId set to the value passed in</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">calendarEvent</span><span style="color: #D4D4D4"> = </span><span style="color: #DCDCAA">GetItem</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">calendarList</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">appointment</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Id</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">UniqueId</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">try</span></span>
<span class="line"><span style="color: #D4D4D4">	{</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #9CDCFE">calendarEvent</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">SPBuiltInFieldId</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Title</span><span style="color: #D4D4D4">&#93; = </span><span style="color: #9CDCFE">appointment</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Subject</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">	}</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">catch</span><span style="color: #D4D4D4"> {}</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">try</span></span>
<span class="line"><span style="color: #D4D4D4">	{</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #9CDCFE">calendarEvent</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">SPBuiltInFieldId</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">StartDate</span><span style="color: #D4D4D4">&#93; = </span><span style="color: #9CDCFE">appointment</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Start</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">	}</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">catch</span><span style="color: #D4D4D4"> { }</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">try</span></span>
<span class="line"><span style="color: #D4D4D4">	{</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #9CDCFE">calendarEvent</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">SPBuiltInFieldId</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">EndDate</span><span style="color: #D4D4D4">&#93; = </span><span style="color: #9CDCFE">appointment</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">End</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">	}</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">catch</span><span style="color: #D4D4D4"> { }</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">try</span></span>
<span class="line"><span style="color: #D4D4D4">	{</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #9CDCFE">calendarEvent</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">SPBuiltInFieldId</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">fAllDayEvent</span><span style="color: #D4D4D4">&#93; = </span><span style="color: #9CDCFE">appointment</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">IsAllDayEvent</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">	}</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">catch</span><span style="color: #D4D4D4"> { }</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">try</span></span>
<span class="line"><span style="color: #D4D4D4">	{</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #9CDCFE">calendarEvent</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">SPBuiltInFieldId</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Location</span><span style="color: #D4D4D4">&#93; = </span><span style="color: #9CDCFE">appointment</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Location</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">	}</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">catch</span><span style="color: #D4D4D4"> { }</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">try</span></span>
<span class="line"><span style="color: #D4D4D4">	{</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #9CDCFE">calendarEvent</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">SPBuiltInFieldId</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">FreeBusy</span><span style="color: #D4D4D4">&#93; = </span><span style="color: #9CDCFE">appointment</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">LegacyFreeBusyStatus</span><span style="color: #D4D4D4"> == </span><span style="color: #9CDCFE">LegacyFreeBusyStatus</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">NoData</span><span style="color: #D4D4D4"> ?</span></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #569CD6">null</span><span style="color: #D4D4D4"> : </span><span style="color: #9CDCFE">appointment</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">LegacyFreeBusyStatus</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">ToString</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">	}</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">catch</span><span style="color: #D4D4D4"> { }</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">try</span></span>
<span class="line"><span style="color: #D4D4D4">	{</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #9CDCFE">calendarEvent</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">SPBuiltInFieldId</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Description</span><span style="color: #D4D4D4">&#93; = </span><span style="color: #9CDCFE">appointment</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Body</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Text</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">	}</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">catch</span><span style="color: #D4D4D4"> { }</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">try</span></span>
<span class="line"><span style="color: #D4D4D4">	{</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">categories</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">SPFieldMultiChoiceValue</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #C586C0">foreach</span><span style="color: #D4D4D4"> (</span><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">category</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">in</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">appointment</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Categories</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">		{</span></span>
<span class="line"><span style="color: #D4D4D4">			</span><span style="color: #9CDCFE">categories</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">Add</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">category</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">		}</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #9CDCFE">calendarEvent</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">SPBuiltInFieldId</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Category</span><span style="color: #D4D4D4">&#93; = </span><span style="color: #9CDCFE">categories</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">	}</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">catch</span><span style="color: #D4D4D4"> { }</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">try</span></span>
<span class="line"><span style="color: #D4D4D4">	{</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">attendees</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">SPFieldUserValueCollection</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #9CDCFE">attendees</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">AddRange</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">appointment</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">RequiredAttendees</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">Select</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">attendee</span><span style="color: #D4D4D4"> =&gt; </span><span style="color: #9CDCFE">web</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">AllUsers</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">GetByEmail</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">attendee</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Address</span><span style="color: #D4D4D4">)).</span><span style="color: #DCDCAA">Select</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">user</span><span style="color: #D4D4D4"> =&gt; </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">SPFieldUserValue</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">web</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">user</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">ID</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">user</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">Name</span><span style="color: #D4D4D4">)));</span></span>
<span class="line"><span style="color: #D4D4D4">		</span><span style="color: #9CDCFE">calendarEvent</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">SPBuiltInFieldId</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">ParticipantsPicker</span><span style="color: #D4D4D4">&#93; = </span><span style="color: #9CDCFE">attendees</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">	}</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #C586C0">catch</span><span style="color: #D4D4D4"> { }</span></span>
<span class="line"><span style="color: #D4D4D4">	</span><span style="color: #9CDCFE">calendarEvent</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">Update</span><span style="color: #D4D4D4">();</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre></div>



<p class="wp-block-paragraph"><a href="/services/digital-workplace-solutions/microsoft-consulting-services">Learn more about DMC&#8217;s Microsoft consulting services.</a></p>
<p>The post <a href="https://static.dmcinfo.com/blog/31854/copying-appointments-from-exchange-to-a-sharepoint-calendar/">Copying Appointments from Exchange to a SharePoint Calendar</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
