• CPAO: Entire Notes for Monthly Template in PDF format

    After making all these posts on editing CPAO - I can see that it will be nice to have them all together in one paper that can be used for reference. I have uploaded a PDF that has all the CPAO template editing posts in them. Hopefully this will be a help for anyone who needs to edit these templates to fulfill a printing need for Outlook calendars.

     

  • CPAO: Listing of the Standard Month Legal Template

     

    Here is the entire listing of the code from the Standard Month Legal template I created.

    First - here is the contents of the Metadata.xml file:

     

    <Metadata xmlns="http://schemas.microsoft.com/2005/xcal" Version="1.0.0">

    <Name>Standard Month Legal</Name>

    <TimeUnit>Month</TimeUnit>

    <PageSizeSelectionIndex>Legal</PageSizeSelectionIndex>

    <PageHeight>14in</PageHeight>

    <PageWidth>8.5in</PageWidth>

    <PageOrientationSelectionIndex>Portrait</PageOrientationSelectionIndex>

    <PageRow>1</PageRow>

    <PageColumn>1</PageColumn>

    <Thumbnail>DefaultPreview.gif</Thumbnail>

    <Tasks>true</Tasks>

    <Appointments>true</Appointments>

    <SideBySide>false</SideBySide>

    <PageCount>1</PageCount>                

    <TemplateId>135</TemplateId>

    <CompanyId>1</CompanyId>

    </Metadata>

     

    And then here is the listing of the entire Content.xml file:

     

    <?xml version="1.0" encoding="utf-8"?>

    <!-- Copyright (c) 2007, Microsoft Corporation. All rights reserved. -->

    <!-- Standard Month Legal -->

    <Template xmlns="http://schemas.microsoft.com/2005/xcal" Version="1.0.0">

      <Display>

        <Page RowSetting="0.25in,Auto,0.08in,*,0.4in"

              ColumnSetting="0.25in,*,0.25in" Style="StandardText">

          <!-- Background -->

          <Rectangle Row="0" Column="0" RowSpan="5" ColumnSpan="3"

                     Style="PageBackground"/>

          <!--Week Header-->

          <Grid Row="1" Column="1" RowSetting="Auto"

                ColumnSetting="*,1.3in,1.3in,1.3in" Style="Header"

                Padding=".08in" Background="Black">

            <!--Month Title-->

            <CalendarText Row="0" Column="0"

                          Text="#[@TemplateDate_MonthNameYearNumber]"

                          HorizontalAlignment="Left" FontSize="30pt"

                          FontWeight="Bold" Foreground="Yellow"/>

            <!--Banners-->

            <MonthWeekDayCalendar Row="0" Column="1" Height="1.1in"

                                  Width="1.25in" VerticalAlignment="Center"

                                  HorizontalAlignment="Center"

                                  Style="BannerControl">

              <MonthFormat DateOffset="-1">

                <DockPanel>

                  <CalendarText Orientation="Top"

                                Text="#[@TemplateDate_BannerMonthNameYear]"

                                Height="0.19in" FontSize="8pt"

                                Style="BannerTitle"/>

                  <WeekHeader Orientation="Top" Height="0.15in" FontSize="7pt"

                              Format="d" Style="BannerWeekHeader"/>

                  <StandardGrid Orientation="Fill" NumColumns="1" NumRows="6"

                                Style="BannerBody" />

                </DockPanel>

              </MonthFormat>

              <WeekFormat>

                <DockPanel>

                  <CalendarText Orientation="Left" Width="0.15in"

                                Text="#[@TemplateDate_WeekNumber]"

                                FontSize="5pt" Style="BannerText"

                                HorizontalAlignment="Left" Margin="1,0,0,0">

                    <ConditionalFormat Condition="ShowWeekNumber eq 'false'"

                                       Visibility="Collapsed"/>

                  </CalendarText>

                  <StandardGrid Orientation="Fill" NumRows="1" NumColumns="7" />

                </DockPanel>

              </WeekFormat>

              <DayFormat>

                <Banner Text="#[%d]" FontSize="7pt" Style="BannerText">

                  <ConditionalFormat Condition="OutsideMonthDays eq 'true'"

                                     Visibility="Collapsed"/>

                  <ConditionalFormat Condition="DayOfWeek eq 'sun'"

                                     Foreground="style!WeekendColor"

                                     ForegroundHighlight="style!WeekendColor"/>

                  <ConditionalFormat Condition="DayOfWeek eq 'sat'"

                                     Foreground="style!WeekendColor"

                                     ForegroundHighlight="style!WeekendColor"/>

                </Banner>

              </DayFormat>

            </MonthWeekDayCalendar>

            <MonthWeekDayCalendar Row="0" Column="2" Height="1.1in"

                                  Width="1.25in" VerticalAlignment="Center"

                                  HorizontalAlignment="Center"

                                  Style="BannerControl">

              <MonthFormat DateOffset="1">

                <DockPanel>

                  <CalendarText Orientation="Top"

                                Text="#[@TemplateDate_BannerMonthNameYear]"

                                Height="0.19in" FontSize="8pt"

                                Style="BannerTitle"/>

                  <WeekHeader Orientation="Top" Height="0.15in" FontSize="7pt"

                              Format="d" Style="BannerWeekHeader"/>

                  <StandardGrid Orientation="Fill" NumColumns="1" NumRows="6"

                                Style="BannerBody" />

                </DockPanel>

              </MonthFormat>

              <WeekFormat>

                <DockPanel>

                  <CalendarText Orientation="Left" Width="0.15in"

                                Text="#[@TemplateDate_WeekNumber]"

                                FontSize="5pt" Style="BannerText"

                                HorizontalAlignment="Left" Margin="1,0,0,0">

                    <ConditionalFormat Condition="ShowWeekNumber eq 'false'"

                                       Visibility="Collapsed"/>

                  </CalendarText>

                  <StandardGrid Orientation="Fill" NumRows="1" NumColumns="7" />

                </DockPanel>

              </WeekFormat>

              <DayFormat>

                <Banner Text="#[%d]" FontSize="7pt" Style="BannerText">

                  <ConditionalFormat Condition="OutsideMonthDays eq 'true'"

                                     Visibility="Collapsed"/>

                  <ConditionalFormat Condition="DayOfWeek eq 'sun'"

                                     Foreground="style!WeekendColor"

                                     ForegroundHighlight="style!WeekendColor"/>

                  <ConditionalFormat Condition="DayOfWeek eq 'sat'"

                                     Foreground="style!WeekendColor"

                                     ForegroundHighlight="style!WeekendColor"/>

                </Banner>

              </DayFormat>

            </MonthWeekDayCalendar>

            <MonthWeekDayCalendar Row="0" Column="3" Height="1.1in"

                                  Width="1.25in" VerticalAlignment="Center"

                                  HorizontalAlignment="Center"

                                  Style="BannerControl">

              <MonthFormat DateOffset="2">

                <DockPanel>

                  <CalendarText Orientation="Top"

                                Text="#[@TemplateDate_BannerMonthNameYear]"

                                Height="0.19in" FontSize="8pt"

                                Style="BannerTitle"/>

                  <WeekHeader Orientation="Top" Height="0.15in" FontSize="7pt"

                              Format="d" Style="BannerWeekHeader"/>

                  <StandardGrid Orientation="Fill" NumColumns="1" NumRows="6"

                                Style="BannerBody" />

                </DockPanel>

              </MonthFormat>

              <WeekFormat>

                <DockPanel>

                  <CalendarText Orientation="Left" Width="0.15in"

                                Text="#[@TemplateDate_WeekNumber]"

                                FontSize="5pt" Style="BannerText"

                                HorizontalAlignment="Left" Margin="1,0,0,0">

                    <ConditionalFormat Condition="ShowWeekNumber eq 'false'"

                                       Visibility="Collapsed"/>

                  </CalendarText>

                  <StandardGrid Orientation="Fill" NumRows="1" NumColumns="7" />

                </DockPanel>

              </WeekFormat>

              <DayFormat>

                <Banner Text="#[%d]" FontSize="7pt" Style="BannerText">

                  <ConditionalFormat Condition="OutsideMonthDays eq 'true'"

                                     Visibility="Collapsed"/>

                  <ConditionalFormat Condition="DayOfWeek eq 'sun'"

                                     Foreground="style!WeekendColor"

                                     ForegroundHighlight="style!WeekendColor"/>

                  <ConditionalFormat Condition="DayOfWeek eq 'sat'"

                                     Foreground="style!WeekendColor"

                                     ForegroundHighlight="style!WeekendColor"/>

                </Banner>

              </DayFormat>

            </MonthWeekDayCalendar>

          </Grid>

          <!--MonthDayCalendar Sizer-->

          <MonthDayCalendar Row="3" Column="1">

            <MonthFormat>

              <DockPanel Style="LevelOneParent">

                <WeekHeader Orientation="Top" Height="0.2in" FontSize="8pt"

                            Format="ddd" Style="LevelOneTitle"/>

                <WeekGrid Orientation="Fill" NumRows="Auto" NumColumns="7"

                          Style="LevelOneBody" UnitRestriction="true">

                  <SpanningAllDayArea MinSize="0" MaxSize="95" IsUniform="false"

                                      Margin="2">

                    <AllDayAppointment Height="28" Margin="2,1,2,0"

                                       Style="SingleAppointment"

                                       Background="Yellow">

                      <Bar Visibility="Collapsed" Orientation="Left" Width="5"

                           BorderThickness="0,0,1,0">

                        <ConditionalFormat Condition="BusyStatus eq 'Free'"

                                           Visibility="Visible"

                                           Style="SingleAppointmentBarFree"/>

                        <ConditionalFormat Condition="BusyStatus eq 'Tentative'"

                                           Visibility="Visible"

                                         Style="SingleAppointmentBarTentative"/>

                        <ConditionalFormat Condition="BusyStatus eq

                                          'OutOfOffice'" Visibility="Visible"

                                           Style="SingleAppointmentBarOOF"/>

                      </Bar>

                      <Content Orientation="Fill" Margin="2,0,2,0"

                               HorizontalAlignment="Center" Separator="62"

                               SeparatorFontFamily="Symbol" FontSize="8pt"

                               TextWrapping="Wrap">

                        <ContentElement Source="CategorySymbols"/>                   

                        <ContentElement Source="Subject" FontWeight="Bold"/>

                        <ContentElement Source="Location"/>

                        <ContentElement Source="Organizer"/>

                        <ContentElement Source="CategorySymbols"/>

                      </Content>

                    </AllDayAppointment>

                  </SpanningAllDayArea>           

                </WeekGrid>

              </DockPanel>

            </MonthFormat>

            <DayFormat>

              <Grid RowSetting="*" ColumnSetting="*" Height="Auto"

                    Style="LevelLeafParent">

                <CalendarText Row="0" Column="0" FontSize="10pt"

                              HorizontalAlignment="Right"

                              VerticalAlignment="Bottom" Text="#[%d]"

                              FontFamily="style!FontMajor">

                  <Foreground>

                    <SolidColorBrush Color="style!mainDark1" Tint=".7"/>

                  </Foreground>

                  <ConditionalFormat Condition="DayOfWeek eq 'sun'">

                    <Foreground>

                      <SolidColorBrush Color="style!WeekendColor" Tint=".7"/>

                    </Foreground>

                  </ConditionalFormat>

                  <ConditionalFormat Condition="DayOfWeek eq 'sat'">

                    <Foreground>

                      <SolidColorBrush Color="style!WeekendColor" Tint=".7"/>

                    </Foreground>

                  </ConditionalFormat>

                </CalendarText>

                <DockPanel Row="0" Column="0" Style="LevelLeafBody" >

                  <SpanningAllDayAreaPlaceholder Orientation="Top" />

                  <!-- <CompactList Padding="2" Orientation="Fill"

                           FontSize="8pt" TypeFilter="AppointmentsTasks"/> -->

             <List Orientation="Fill" FontSize="7pt" ShowEmptyRow="true"

                   MaxRowWrap="5" RowSize="14"

                   TypeFilter="AppointmentsTasks">

          <Columns>

                    <Column Width="*" ShowDuplicates="True" Left="1"

                            Top="2" Right="1" Bottom="2" >

                      <Sources>

                        <Source Name="CategorySymbols"/>

                        <Source Name="StartTime" Format="t"

                                StartSeparator=""/>

                        <Source Name="EndTime" Format="t"

                                StartSeparator="-"/>

                        <Source Name="Subject" StartSeparator=": "/>

                        <Source Name="Location" StartSeparator="("

                                                EndSeparator=")"/>

                             <Source Name="CategorySymbols"/>

                      </Sources>

                    </Column>

               </Columns>

       </List>

     

                </DockPanel>

              </Grid>

            </DayFormat>

          </MonthDayCalendar>

          <!-- Standard Footer -->

          <Grid Row="4" Column="1" VerticalAlignment="Top" Margin="0,4,0,0"

                RowSetting="Auto" ColumnSetting="*,*,*">

            <CalendarText Row="0" Column="0" Text="Wingtip Toys"

                          HorizontalAlignment="Left" FontSize="8pt"

                          FontWeight="Bold" />

            <CalendarText Row="0" Column="1" Text="#[@TemplateDocInfo_Page]"

                          HorizontalAlignment="Center" FontSize="7pt"/>

            <CalendarText Row="0" Column="2" Date="#[Now]"

                          Text="#[@TemplateDocInfo_PrintTime]"

                          HorizontalAlignment="Right" FontSize="7pt"/>

          </Grid>

        </Page>

      </Display>

    </Template>

     

    I have also attached the Content.xml file to this post for your convenience. You can use this to do some comparisons with other templates (like the "Month_StandardMonth01.catx" template it was derived from) , and/or to do some editing of your own :-)

     

     

  • CPAO: Editing the Metadata.xml File

     

    So far everything has been edited in the Content.xml file (located in the \Cal directory after renaming/unzipping the CATX file - see the section on Opening and Saving Template Files) . That is the main file for doing the formatting of a particular template.

     

    The Metadata.xml is good for doing a couple main things:

    1. Naming the template. What is stored here is what will show in the Calendar Printing Assistant UI.
    2. Changing the paper size of the template. If you want a 3x5 index card layout, you can set that here so that the template will always load in 3x5 layout. If you need a legal paper size - same thing can be done here.

     

    There are other things that can be formatted here as well - but these are the two main things that I have changed in this file for customization.

     

    Okay - so here is the text in this file for this same Monthly template:

     

    <Metadata xmlns="http://schemas.microsoft.com/2005/xcal" Version="1.0.0">

    <Name>#[@TemplateName_Month_StandardMonth01]</Name>

    <TimeUnit>Month</TimeUnit>

    <PageSizeSelectionIndex>#[@TemplatePageFormat_Normal]</PageSizeSelectionIndex>

    <PageHeight>#[@TemplatePageHeight_Normal]</PageHeight>

    <PageWidth>#[@TemplatePageWidth_Normal]</PageWidth>

    <PageOrientationSelectionIndex>Portrait</PageOrientationSelectionIndex>

    <PageRow>1</PageRow>

    <PageColumn>1</PageColumn>

    <Thumbnail>DefaultPreview.gif</Thumbnail>

    <Tasks>true</Tasks>

    <Appointments>true</Appointments>

    <SideBySide>false</SideBySide>

    <PageCount>1</PageCount>                

    <TemplateId>135</TemplateId>

    <CompanyId>1</CompanyId>

    </Metadata>

     

    This is everything. The colored areas are where you can change the name and the page size.

    You can use straight textto give a unique name for the template.

    On the page sizes you can use text to define the paper size, the height, and the width.

     

    I am going to edit this template that I have created in this template editing "how-to" to have a new name and to make it legal sized instead of letter sized:

     

    <Metadata xmlns="http://schemas.microsoft.com/2005/xcal" Version="1.0.0">

    <Name>Standard Month Legal</Name>

    <TimeUnit>Month</TimeUnit>

    <PageSizeSelectionIndex>Legal</PageSizeSelectionIndex>

    <PageHeight>14in</PageHeight>

    <PageWidth>8.5in</PageWidth>

    <PageOrientationSelectionIndex>Portrait</PageOrientationSelectionIndex>

    <PageRow>1</PageRow>

    <PageColumn>1</PageColumn>

    <Thumbnail>DefaultPreview.gif</Thumbnail>

    <Tasks>true</Tasks>

    <Appointments>true</Appointments>

    <SideBySide>false</SideBySide>

    <PageCount>1</PageCount>                

    <TemplateId>135</TemplateId>

    <CompanyId>1</CompanyId>

    </Metadata>

     

    So you can see these changes here and they are pretty self-explanatory. I packaged up the template files and created a new CATX file called "Month_StandardMonthLegal.catx" and placed it in the Templates directory, then restarted Calendar Printing Assistant so that the new template will be picked up.

    After the restart - here is what is seen in the UI:

     

     

    This is in the Month Templates area in the right pane.

     

    So I clicked this new entry to load the template, and here is the template view based on this CPAO Editing series:

     

     

    With the legal size paper - there is the advantage of getting more appointments to print on each day - and so this has been adopted by a couple customers who have users with busy schedules, etc.

     

    I will place the entire code for this template in my next post.

  • CPAO: Editing the Footer of a Template

     

    Now on to the formatting the footer area of the page. Here is a screenshot and the code:

     

     

          <!-- Standard Footer -->

          <Grid Row="4" Column="1" VerticalAlignment="Top" Margin="0,4,0,0"

                RowSetting="Auto" ColumnSetting="*,*,*">

            <CalendarText Row="0" Column="0" Date="#[Now]"

                          Text="#[@TemplateDocInfo_PrintTime]"

                          HorizontalAlignment="Left" FontSize="7pt"/>

            <CalendarText Row="0" Column="1" Text="#[@TemplateDocInfo_Page]"

                          HorizontalAlignment="Center" FontSize="7pt"/>

            <CalendarText Row="0" Column="2" Text="#[@TemplateDocInfo_UserName]"

                          HorizontalAlignment="Right" FontSize="7pt"/>

          </Grid>

     

    This is all fairly straightforward.  First in green is the formatting for this area It is describing Row 4 and Column 1 of the overall Page (see the Page editing section for more). It is going to automatically size this one row, and then there are three columns specified - one for the time/dat, one for the page number, and one for the user who is doing the printing.

     

    Okay, then in red is the line that describes how to do the Date/Time in the first column.

    Then the purple code describes how to do the page number(s) in the second column.

    Then the blue code shows how to place the username in the third column.

     

    I have had requests to remove/move/change things in the footer. You can put direct text placed in quotes in these areas. Here is an example of a change here:

     

      

        <!-- Standard Footer -->

          <Grid Row="4" Column="1" VerticalAlignment="Top" Margin="0,4,0,0"

                RowSetting="Auto" ColumnSetting="*,*,*">

            <CalendarText Row="0" Column="0" Text="Wingtip Toys"

                          HorizontalAlignment="Left" FontSize="8pt"

                          FontWeight="Bold"/>

            <CalendarText Row="0" Column="1" Text="#[@TemplateDocInfo_Page]"

                          HorizontalAlignment="Center" FontSize="7pt"/>

            <CalendarText Row="0" Column="2" Date="#[Now]"

                          Text="#[@TemplateDocInfo_PrintTime]"

                          HorizontalAlignment="Right" FontSize="7pt"/>

          </Grid>

     

    Okay so here I moved the date/time over to the right side of the footer, and I placed a company name on the left side of the footer using straight text in quotes for the "Text=" setting. You can use your own text anywhere there is a "Text=" setting - like in the Header - so that you can further customize your printout.

     

    One thing that has been requested a few times is for the Calendar User's name to be printed - either in the footer or in the header, etc. There is no variable to do this automatically in the Calendar Printing Assistant. The username variable  as shown above - "#[@TemplateDocInfo_UserName]" - will place the user who is logged into the machine on the page - not necessarily the user whose calendar is open in Outlook. Something that can be done to get around this is to customize the header and/or footer with a particular user's name, and then name the template with that user's name - like for an executive/manager/etc.

     

    I will show how to edit the name of the template as seen in the Calendar Printing Assistant UI in the next section on editing the Metadata.xml.

  • CPAO: Editing the Calendar Grid (Part 2)

     

    This section moves into the Day Format area:

     

            <DayFormat>

              <Grid RowSetting="*" ColumnSetting="*" Height="Auto"

                    Style="LevelLeafParent">

                <CalendarText Row="0" Column="0" FontSize="46pt" FontWeight="Bold"

                              Text="#[%d]" FontFamily="style!FontMajor">

                  <Foreground>

                    <SolidColorBrush Color="style!mainDark1" Tint=".7"/>

                  </Foreground>

                  <ConditionalFormat Condition="DayOfWeek eq 'sun'">

                    <Foreground>

                      <SolidColorBrush Color="style!WeekendColor" Tint=".7"/>

                    </Foreground>

                  </ConditionalFormat>

                  <ConditionalFormat Condition="DayOfWeek eq 'sat'">

                    <Foreground>

                      <SolidColorBrush Color="style!WeekendColor" Tint=".7"/>

                    </Foreground>

                  </ConditionalFormat>

                </CalendarText>

                <DockPanel Row="0" Column="0" Style="LevelLeafBody" >

                  <SpanningAllDayAreaPlaceholder Orientation="Top" />

                  <CompactList Padding="2" Orientation="Fill" FontSize="8pt"

                               TypeFilter="AppointmentsTasks"/>

                </DockPanel>

              </Grid>

            </DayFormat>

     

    Here we have formatting for each individual day in the grid.

     

    <Grid RowSetting="*" ColumnSetting="*" Height="Auto" Style="LevelLeafParent">

    Each day has a single row and a single column to place items in. The height is set to Auto - meaning that they will be set by the amount of room available on the page.

     

                <CalendarText Row="0" Column="0" FontSize="46pt" FontWeight="Bold"

                              Text="#[%d]" FontFamily="style!FontMajor">

                  <Foreground>

                    <SolidColorBrush Color="style!mainDark1" Tint=".7"/>

                  </Foreground>

                  <ConditionalFormat Condition="DayOfWeek eq 'sun'">

                    <Foreground>

                      <SolidColorBrush Color="style!WeekendColor" Tint=".7"/>

                    </Foreground>

                  </ConditionalFormat>

                  <ConditionalFormat Condition="DayOfWeek eq 'sat'">

                    <Foreground>

                      <SolidColorBrush Color="style!WeekendColor" Tint=".7"/>

                    </Foreground>

                  </ConditionalFormat>

                </CalendarText>

    These lines describe the day numbers - what size they are, what color they are, and where they are located. The "Text="#[%d]" means to display the day number. Additional settings can be put on the CalendarText line, like "HorizontalAlignment=" and "VerticalAlignment=" to place the number where you wish. Here is an example:

     

     

    Here is the code in this area for moving the day numbers to the lower right and making them smaller:

     

                <CalendarText Row="0" Column="0" FontSize="8pt"

                              HorizontalAlignment="Right" VerticalAlignment="Bottom"

                              Text="#[%d]" FontFamily="style!FontMajor">

                  <Foreground>

                    <SolidColorBrush Color="style!mainDark1" Tint=".7"/>

                  </Foreground>

                  <ConditionalFormat Condition="DayOfWeek eq 'sun'">

                    <Foreground>

                      <SolidColorBrush Color="style!WeekendColor" Tint=".7"/>

                    </Foreground>

                  </ConditionalFormat>

                  <ConditionalFormat Condition="DayOfWeek eq 'sat'">

                    <Foreground>

                      <SolidColorBrush Color="style!WeekendColor" Tint=".7"/>

                    </Foreground>

                  </ConditionalFormat>

                </CalendarText>

     

    It is generally best to move the number to the lower left or right, and not the top left or right, as the all day events will then be dropped down a line, and so less space is useable in each day in the grid. Like this:

     

     

    But if having the numbers on top works better - then you can do that as well.

     

    The conditional formatting here tests for weekend days, and then applies a different font color or foreground color for the weekend days. If you want all the days to show the same color you can remove the ConditionalFormat lines, and all the day numbers will be the same color.

     

     

                <DockPanel Row="0" Column="0" Style="LevelLeafBody" >

                  <SpanningAllDayAreaPlaceholder Orientation="Top" />

                  <CompactList Padding="2" Orientation="Fill" FontSize="8pt"

                               TypeFilter="AppointmentsTasks"/>

                </DockPanel>

    This section tells the program to put the All Day Events at the top (Orientation="Top") and then the CompactList line fills each day with the appointments for the corresponding day. The CompactList line is easy - you just give a font size and a filter, and it just does it. It prints a blue dot for the default calendar - and other shapes/colors for additional calendars' appointments if they are present, then the time, then the subject, then the location for each appointment.

    The "TypeFilter" setting can be set to:

    "AppointmentsTasks" - all appointments and tasks

    "Appointments" - all appointments, no tasks

    "AppointmentsTasksAllDayAppointments" - All appointments, tasks, and all day events

     

     

    Here is an example of the CompactList output:

     

    It shows the blue dot for every appointment regardless of category since this is the default Calendar open in Outlook, then the times, then the subject, then the location in parentheses.

     

     

    Now, if you do not like the formatting of the CompactList, or it does not meet your needs, you can remove that line and create a more manual list. Here is code that shows this:

     

                <DockPanel Row="0" Column="0" Style="LevelLeafBody" >

                  <SpanningAllDayAreaPlaceholder Orientation="Top" />

                  <!-- <CompactList Padding="2" Orientation="Fill" FontSize="8pt"

                                    TypeFilter="AppointmentsTasks"/> -->

        <List Orientation="Fill" FontSize="7pt" ShowEmptyRow="true"

              MaxRowWrap="5" RowSize="14"

              TypeFilter="AppointmentsTasks">

          <Columns>

                    <Column Width="*" ShowDuplicates="True" Left="1" Top="2"

                            Right="1" Bottom="2" >

                      <Sources>

                        <Source Name="CategorySymbols"/>

         <Source Name="CategorySymbols"/>

                        <Source Name="StartTime" Format="t" StartSeparator=""/>

                        <Source Name="EndTime" Format="t" StartSeparator="-"/>

                        <Source Name="Subject" StartSeparator=": "/>

                        <Source Name="Location"

                                StartSeparator="(" EndSeparator=")"/>

                      </Sources>

                    </Column>

               </Columns>

       </List>

               </DockPanel>

     

    So instead of using the "CompactList" line here, it has been commented out and in its place is a "List" line instead along with some additional formatting lines. This gives more control over what is displayed for each appointment. In the example above, various formatting options are set - like the font size to be used, how many lines to wrap if there is a long subject and/or location line on the appointment (MaxRowWrap), the height of the row (RowSize) and what will be shown using the "TypeFilter".

    The Columns/Column/Sources and Source lines format what will be seen for each appointment. The CategorySymbols source is for showing the category color of the appointment if categories are used in Outlook. It does this using a colored dot.

    Here is an example of what the above code will display:

     

     

     

    The two red dots are there because I set this appointment to have the Red Category in Outlook, and here in the template there are two "CategorySymbols" lines. There is one dot for each line.  If you only want one dot - then only use one line. If you want one dot at the beginning and then another at the end, then put a "CategorySymbols" line after the "Location" line.

    After the category dots is the start time, and then the end time with a hyphen separator. The subject is next with a colon separator, and then the location is after that and has parentheses separating it.

    You can use this more manual method of displaying the appointments so that you can format things the way you would like them to be seen.

     

    There is more that can be done in the Calendar Grid area - and this is only covering a particular Monthly print layout. There are additional options to look at in the Week and Day Templates for other various formatting options. I will not cover all of that now - but I will post things later ot cover Day and Week templates to show some things that can be done with those templates. Those other templates are pretty similar - but there are some differences that can be seen by doing comparison.

     

    Something I have learned is that you can look at other templates to see if something you want to do is already done in another template. Then just extract that template and look at the Content.xml file to see how it differs from the one you are working on, and a lot of times you can just sort of figure things out - particularly after working with the templates for a little while.