Working with Outlook Tasks
Creating, Saving and Reading Outlook Tasks
Aspose.Email for Java allows developers to create Outlook tasks and save them as MSG format. The MapiTask class provides a number of properties such as PercentComplete, EstimatedEffort, ActualEffort, History, LastUpdate, etc., to accommodate and set information required for an Outlook task. This article shows how to create, save and read a MapiTask from disk.
Create and Save a MapiTask
The following steps can be used to create and save a Task to disk.
- Instantiate a new object of the MapiTask class.
- Enter information for the task various properties.
- Save the task to disk in MSG format.
Read a MapiTask
The MapiTask class object is used to cast the MapiMessage object that loads a task from the disk in MSG format.
Read a VToDo Task
Google Tasks exported in iCalendar format as VToDo events can be loaded using the MapiTask class as shown in the following code sample.
Add Reminder Information to a MapiTask
Similar to Microsoft Outlook, Aspose.Email can add reminder information to a MapiTask. The following code snippet shows you how to add reminder information to a MapiTask.
Add Attachment to a MapiTask
The following code snippet shows you how to add attachments to a MapiTask.
Add Recurrence to a MapiTask
Aspose.Email allows creating a recurring task where the recurrence can be daily, weekly, monthly, or yearly. The following code snippet shows you how to create a task with different recurrence types:
Date startDate = new GregorianCalendar(2015, java.util.Calendar.APRIL, 30, 10, 0, 0).getTime();
Date endDate = new GregorianCalendar(2015, java.util.Calendar.APRIL, 30, 11, 0, 0).getTime();
MapiTask task = new MapiTask("abc", "def", startDate, endDate);
task.setState(MapiTaskState.NotAssigned);
// Set a daily recurrence
MapiCalendarDailyRecurrencePattern daily = new MapiCalendarDailyRecurrencePattern();
daily.setPatternType(MapiCalendarRecurrencePatternType.Day);
daily.setPeriod(1);
daily.setWeekStartDay(DayOfWeek.Sunday);
daily.setEndType(MapiCalendarRecurrenceEndType.NeverEnd);
daily.setOccurrenceCount(0);
task.setRecurrence(daily);
task.save("AsposeDaily_out.msg", TaskSaveFormat.Msg);
// Set a weekly recurrence
MapiCalendarWeeklyRecurrencePattern weekly = new MapiCalendarWeeklyRecurrencePattern();
weekly.setPatternType(MapiCalendarRecurrencePatternType.Week);
weekly.setPeriod(1);
weekly.setDayOfWeek(MapiCalendarDayOfWeek.Wednesday);
weekly.setEndType(MapiCalendarRecurrenceEndType.NeverEnd);
weekly.setOccurrenceCount(0);
task.setRecurrence(weekly);
task.save("AsposeWeekly_out.msg", TaskSaveFormat.Msg);
// Set a monthly recurrence
MapiCalendarMonthlyRecurrencePattern monthly = new MapiCalendarMonthlyRecurrencePattern();
monthly.setPatternType(MapiCalendarRecurrencePatternType.Month);
monthly.setPeriod(1);
monthly.setDay(30);
monthly.setEndType(MapiCalendarRecurrenceEndType.NeverEnd);
monthly.setOccurrenceCount(0);
monthly.setWeekStartDay(DayOfWeek.Sunday);
task.setRecurrence(monthly);
task.save("AsposeMonthly_out.msg", TaskSaveFormat.Msg);
// Set a yearly recurrence - a monthly pattern repeated every 12 months
MapiCalendarMonthlyRecurrencePattern yearly = new MapiCalendarMonthlyRecurrencePattern();
yearly.setPatternType(MapiCalendarRecurrencePatternType.Month);
yearly.setPeriod(12);
yearly.setEndType(MapiCalendarRecurrenceEndType.NeverEnd);
yearly.setOccurrenceCount(10);
task.setRecurrence(yearly);
task.save("AsposeYearly_out.msg", TaskSaveFormat.Msg);
Converting Outlook Task to MHT
Aspose.Email can generate MapiMessage like output during the conversion of a MapiTask to MHT.
MSG to HTML Conversion Preserving Task Fields
The HtmlFormatOptions.RenderTaskFields value allows you to specify that task fields should be included in the header of the saved HTML file. The following code snippet shows how to preserve task fields in the header when saving an HTML file:
MapiMessage msg = MapiMessage.load("task.msg");
HtmlSaveOptions opt = SaveOptions.getDefaultHtml();
opt.setHtmlFormatOptions(HtmlFormatOptions.WriteHeader | HtmlFormatOptions.RenderTaskFields);
msg.save("task.html", opt);