How to create recurring tasks using Exchange Web Services for Exchange 2007/2010?
Earlier i got a chance to play around creating recurring tasks. I followed the article from MSDN and it worked like charm for me.
public TaskType CreateRecurringTask()
{
// Create the task item and set property values.
TaskType task = new TaskType();
task.Subject = "Recurring Task";
task.Body = new BodyType();
task.Body.BodyType1 = BodyTypeType.Text;
task.Body.Value = "Occurs every week";
task.StartDate = DateTime.Now;
task.StartDateSpecified = true;
// Create the regeneration pattern.
WeeklyRegeneratingPatternType regenerationPattern = new WeeklyRegeneratingPatternType();
regenerationPattern.Interval = 1;
// Define the recurrence pattern.
NoEndRecurrenceRangeType recurrenceRange = new NoEndRecurrenceRangeType();
recurrenceRange.StartDate = task.StartDate;
// Set the regeneration and recurrence patterns.
TaskRecurrenceType recurrence = new TaskRecurrenceType();
recurrence.Item = regenerationPattern;
recurrence.Item1 = recurrenceRange;
task.Recurrence = recurrence;
// Create the request to make a new task item.
CreateItemType createItemRequest = new CreateItemType();
createItemRequest.Items = new NonEmptyArrayOfAllItemsType();
createItemRequest.Items.Items = new ItemType[1];
createItemRequest.Items.Items[0] = task;
// Send the request and receive the response.
CreateItemResponseType createItemResponse = this.Service.CreateItem(createItemRequest);
// Access a response message.
ItemInfoResponseMessageType responseMessage = createItemResponse.ResponseMessages.Items[0] as ItemInfoResponseMessageType;
// Return the new task item.
return responseMessage.Items.Items[0] as TaskType;
}
public ExchangeServiceBinding Service
{
get
{
if (this.service == null)
{
this.service = new ExchangeServiceBinding();
this.service.Credentials = new NetworkCredential(
this.UserName,
this.Password,
this.Domain);
this.service.Url = this.Url;
// Set the request version.
this.service.RequestServerVersionValue = new RequestServerVersion();
this.service.RequestServerVersionValue.Version = ExchangeVersionType.Exchange2007_SP1;
// Specify the time zone for the DateTime properties of tasks.
TimeZoneDefinitionType tzdt = new TimeZoneDefinitionType();
tzdt.Id = "Eastern Standard Time";
TimeZoneContextType tzct = new TimeZoneContextType();
tzct.TimeZoneDefinition = tzdt;
this.service.TimeZoneContext = tzct;
}
return this.service;
}
}