\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[pdfauthor={Luke Hsiao},
            pdftitle={PA Foothills Ward 2020 Year-at-a-Glace},
            hidelinks]{hyperref}
\usepackage[letterpaper,margin=0.2in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{enumitem}
\usepackage{fontawesome}
\usepackage{tikz}
\usepackage{verbatim}
\usetikzlibrary{calendar}
\usetikzlibrary{shapes}
\usetikzlibrary{shapes.geometric}
\usepackage{xcolor}
% \selectcolormodel{gray}
% \usepackage{draftwatermark}
% \SetWatermarkText{\textbf{Draft: \today}}
% \SetWatermarkHorCenter{0.5cm}
% \SetWatermarkVerCenter{12.5cm}
% \SetWatermarkAngle{90}
% \SetWatermarkFontSize{20pt}

\renewcommand{\familydefault}{\sfdefault}
\definecolor{y}{RGB}{250,210,140}
\definecolor{g}{RGB}{110,190,170}
\definecolor{b}{RGB}{50,130,190}
\definecolor{r}{RGB}{215,25,28}

% Define the date highlights
\newcommand{\ward}{\node[xshift=-1.95ex,fill=y,circle] {};}
\newcommand{\church}{\node[xshift=-1.95ex,fill=b,circle] {};}
\newcommand{\stake}{\node[xshift=-1.95ex,fill=g,circle] {};}
\newcommand{\community}{\node[xshift=-1.95ex,fill=r,circle] {};}
\newcommand{\wardbullet}{\begin{tikzpicture}\node[fill=y,circle,scale=0.8] {};\end{tikzpicture}}
\newcommand{\churchbullet}{\begin{tikzpicture}\node[fill=b,circle,scale=0.8] {};\end{tikzpicture}}
\newcommand{\stakebullet}{\begin{tikzpicture}\node[fill=g,circle,scale=0.8] {};\end{tikzpicture}}
\newcommand{\communitybullet}{\begin{tikzpicture}\node[fill=r,circle,scale=0.8] {};\end{tikzpicture}}


\begin{document}
  \title{\vspace{-1cm}Palo Alto Foothills Ward 2020 Year-at-a-Glance\vspace{-1.5cm}}
  \date{}
  \author{}

  \maketitle
  \thispagestyle{empty} % Remove page numbers and headers
  \makeatletter

  % Define our own style
  \tikzstyle{week list sunday}=[
    % Note that we cannot extend from week list,
    % the execute before day scope is cumulative
    execute before day scope={%
      \ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{}{
      % On first of month, except when first date in calendar.
        \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@month@yshift}%
        \pgftransformyshift{-\pgf@y}
      }}{}%
    },
    execute at begin day scope={%
      % Because for TikZ Monday is 0 and Sunday is 6,
      % we can't directly use \pgfcalendercurrentweekday,
      % but instead we define \c@pgf@counta (basically) as:
      % (\pgfcalendercurrentweekday + 1) % 7
      \pgfmathsetlength\pgf@x{\tikz@lib@cal@xshift}%
      \ifnum\pgfcalendarcurrentweekday=6
        \c@pgf@counta=0
      \else
        \c@pgf@counta=\pgfcalendarcurrentweekday
        \advance\c@pgf@counta by 1
      \fi
      \pgf@x=\c@pgf@counta\pgf@x
      % Shift to the right position for the day.
      \pgftransformxshift{\pgf@x}
    },
    execute after day scope={
      % Shift to the next line at the end of the week.
      \ifdate{Saturday}{
        \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}%
        \pgftransformyshift{-\pgf@y}
      }{}%
    },
    tikz@lib@cal@width=7
  ]

  \makeatother

\begin{minipage}[h]{0.28\linewidth}
  % The actual calendar is now rather easy:
  \begin{tikzpicture}[every calendar/.style={
        month label left,
        month text={\%mt},
        month yshift=0pt,
        if={(Sunday) [blue!100]},
        week list sunday,
      },
      % every day/.style={anchor=base},
      day text={\%d=},rounded corners=0,anchor=base,text height=1ex,text depth=-0.5ex
    ]\small
    \matrix[column sep=0em, row sep=0em] {
      \calendar[dates=2020-01-01 to 2020-12-last]
      if (equals=2020-01-12) {\stake}% Stake Conf
      if (equals=2020-01-13) {\church}% Worldwide devotional
      if (equals=2020-01-16) {\ward}% YW New Beginnings
      if (equals=2020-01-25) {\ward}% Youth Service Project
      if (equals=2020-02-02) {\stake}% Baptism Trip, Stake Youth Talent Show
      if (equals=2020-02-09) {\ward}% Youth Game Night @ Bishop's
      if (equals=2020-02-23) {\ward}% Youth Service Project
      if (equals=2020-03-02) {\ward}% Youth Service Project
      if (equals=2020-03-10) {\ward}% Sundaes on Sunday
      if (equals=2020-03-16) {\stake}% Stake Youth Conference & RS Birthday Dinner and Service
      if (equals=2020-03-30) {\ward}% Easter Breakfast
      if (equals=2020-03-31) {\ward}% Ward Conference
      if (equals=2020-04-06) {\church}% General Conf
      if (equals=2020-04-07) {\church}% General Conf
      if (equals=2020-04-14) {\ward}% Fast Sunday
      if (equals=2020-04-20) {\ward}% YW Fundraiser
      if (equals=2020-05-03) {\ward}% Fathers & Kids Campout
      if (equals=2020-05-04) {\ward}% Fathers & Kids Campout
      if (equals=2020-05-05) {\church}% YA Devotional
      if (equals=2020-05-11) {\stake}% Oakland Open House
      if (equals=2020-05-13) {\stake}% Oakland Open House
      if (equals=2020-05-14) {\stake}% Oakland Open House
      if (equals=2020-05-15) {\stake}% Oakland Open House
      if (equals=2020-05-16) {\stake}% Oakland Open House
      if (equals=2020-05-17) {\stake}% Oakland Open House
      if (equals=2020-05-18) {\stake}% Oakland Open House
      if (equals=2020-05-20) {\stake}% Oakland Open House
      if (equals=2020-05-21) {\stake}% Oakland Open House
      if (equals=2020-05-22) {\stake}% Oakland Open House
      if (equals=2020-05-23) {\stake}% Oakland Open House
      if (equals=2020-05-24) {\stake}% Oakland Open House
      if (equals=2020-05-25) {\stake}% Oakland Open House
      if (equals=2020-05-27) {\stake}% Oakland Open House
      if (equals=2020-05-28) {\stake}% Oakland Open House
      if (equals=2020-05-29) {\stake}% Oakland Open House
      if (equals=2020-05-30) {\stake}% Oakland Open House
      if (equals=2020-05-31) {\stake}% Oakland Open House
      if (equals=2020-06-01) {\stake}% Oakland Open House
      if (equals=2020-06-15) {\stake}% Oakland Temple Youth Devotional
      if (equals=2020-06-16) {\stake}% Oakland Temple Rededication
      if (equals=2020-06-25) {\stake}% Oakland Temple Reopened
      if (equals=2020-07-01) {\stake}% Girl's Camp
      if (equals=2020-07-02) {\stake}% Girl's Camp
      if (equals=2020-07-03) {\stake}% Girl's Camp
      if (equals=2020-07-04) {\stake}% Girl's Camp
      if (equals=2020-07-05) {\stake}% Girl's Camp
      if (equals=2020-07-06) {\stake}% Girl's Camp
      if (equals=2020-07-04) {\ward}% 4th of July Breakfast
      if (equals=2020-07-20) {\church}% Tabernacle Choir Pioneer Day
      if (equals=2020-08-10) {\ward}% YM/YW River Rafting Trip
      if (equals=2020-08-17) {\stake}% stake conference
      if (equals=2020-08-18) {\stake}% stake conference
      if (equals=2020-09-08) {\church}% Worldwide Devotional
      if (equals=2020-09-14) {\stake}% Stake Youth Beach Clean-up
      if (equals=2020-09-20) {\ward}% RS Fall Social
      if (equals=2020-09-28) {\ward}% Ward Temple Trip
      % if (equals=2020-09-22) {\ward}% Ward Photo
      if (equals=2020-10-05) {\church}% General Conf
      if (equals=2020-10-06) {\church}%
      if (equals=2020-10-11) {\ward}% Annual Ward Campout
      if (equals=2020-10-12) {\ward}%
      if (equals=2020-10-19) {\ward}% YM Fundraiser
      % if (equals=2020-10-13) {\church}% Tithing Settlement
      if (equals=2020-10-26) {\ward}% Trunk or Treat
      if (equals=2020-11-10) {\ward}% Primary Program
      if (equals=2020-11-20) {\church}
      if (equals=2020-11-22) {\ward}% Ward Musical: Rats!
      if (equals=2020-12-05) {\stake}% Christmas Creche
      if (equals=2020-12-06) {\stake}% Christmas Creche Sacrament
      if (equals=2020-12-07) {\stake}% Christmas Creche
      if (equals=2020-12-08) {\stake}% Christmas Creche
      if (equals=2020-12-09) {\stake}% Christmas Creche
      if (equals=2020-12-08) {\church}
      if (equals=2020-12-14) {\ward}% Christmas Program
      if (equals=2020-12-22) {\ward}% Christmas Program
      ; \\
    };
  \end{tikzpicture}

\end{minipage}
\begin{minipage}[h]{0.65\linewidth}
\subsection*{Key Dates}
\begin{itemize}[leftmargin=0.5cm,itemsep=1pt]
  \item[\stakebullet] Jan 12--13: Stake Conference
  \item[\churchbullet] Jan 13: Worldwide Devotional for Young Adults
  \item[\wardbullet] Jan 16: New Beginnings \& YW in Excellence
  \item[\wardbullet] Jan 25: YM/YW/Muslin Youth Fundraiser for Foster Care
  \item[\stakebullet] Feb 2: Stake Youth Talent Show \& YM/YW Temple Baptisms Trip
  \item[\wardbullet] Feb 23: YM/YW/Muslim Youth Service Project
  \item[\wardbullet] Mar 2: YM/YW/Muslim Youth Service Project
  \item[\stakebullet] Mar 16: Stake Youth Conference \& Relief Society Birthday Dinner/Service Activity
  \item[\wardbullet] Mar 30: Easter Breakfast at Foothills Park
  \item[\wardbullet] Mar 31: Ward Conference
  \item[\churchbullet] Apr 6--7: General Conference \& General Priesthood Session
  \item[\wardbullet] Apr 14: Fast Sunday
  \item[\wardbullet] Apr 20: YW Fundraiser: Lip Sync and Dinner
  \item[\wardbullet] May 3--4: Fathers \& Kids Campout at Foothills Park
  \item[\churchbullet] May 5: Worldwide Devotional for Young Adults
  \item[\churchbullet] May 11--Jun 1: Oakland Temple Public Open House (except May 12, 19, 26)
  \item[\stakebullet] Jun 15: Oakland Temple Youth Devotional
  \item[\stakebullet] Jun 16: Oakland Temple Rededication
  \item[\stakebullet] Jun 25: Oakland Temple Open for Ordinances
  \item[\stakebullet] Jul 1-6: Stake Girl's Camp
  \item[\wardbullet] Jul 4: 4th of July Breakfast
  \item[\churchbullet] Jul 20: Tabernacle Choir Pioneer Day Concert
  \item[\wardbullet] Aug 10: YM/YW River Rafting Trip
  \item[\stakebullet] Aug 17--18: Stake Conference
  \item[\churchbullet] Sept 8: Worldwide Devotional for Young Adults
  \item[\stakebullet] Sept 14: Stake Youth Beach Clean-up Service Project
  \item[\wardbullet] Sept 20: Relief Society Fall Social
  \item[\wardbullet] Sept 28: Ward Temple Trip
  % \item[\wardbullet] Sept 22: Annual Ward Photo
  \item[\churchbullet] Oct 5--6: General Conference \& General Women's Session
  \item[\wardbullet] Oct 11--12: Ward Campout at Huddart Park
  % \item[\churchbullet] Oct 13: Tithing Settlements Begin
  \item[\wardbullet] Oct 19: YM Spaghetti Dinner \& Dessert Auction Fundraiser
  \item[\wardbullet] Oct 26: Trunk or Treat
  \item[\wardbullet] Nov 10: Primary Program
  \item[\churchbullet] Nov 20: Face-to-Face for Youth
  \item[\wardbullet] Nov 22: Ward Musical: \emph{Rats!}
  % \item[\stakebullet] Dec 8: Youth Christmas Crèche Sacrament Meeting
  \item[\stakebullet] Dec 5--9: Christmas Crèche Exhibit
  \item[\churchbullet] Dec 8: First Presidency Christmas Devotional \& Youth Crèche Sacrament Meeting
  \item[\wardbullet] Dec 14: Ward Christmas Party
  \item[\wardbullet] Dec 22: Christmas Program
  \end{itemize}
\end{minipage}
\begin{center}
  \begin{tabular}{lll}
    \wardbullet~Palo Alto Foothills Ward Events &
    \stakebullet~Menlo Park Stake  \& Regional Events &
    \churchbullet~Church-wide Events \\
  \end{tabular}
  \vfill
  \textcolor{red}{Warning: Dates may change!} Check for updates online at
  \href{https://www.churchofjesuschrist.org/calendar/}{\faCalendar~www.ChurchofJesusChrist.org/calendar/}

  \footnotesize{This printout was last updated on \today.}
\end{center}

\end{document}
