diff --git a/src/app/calendar/calendar.component.html b/src/app/calendar/calendar.component.html
index 6d8082c..04e3778 100644
--- a/src/app/calendar/calendar.component.html
+++ b/src/app/calendar/calendar.component.html
@@ -1 +1,77 @@
-
+
+
+
+
+
+
+ S M T W
+ T F S
+
+
+ {{ preceedingDay }}
+
+ {{ selectedMonthDay }}
+
+
+ {{ succeedingDay }}
+
+
+
+
+
+ {{ selectedDate }}, {{ selectedMonth }} {{ selectedYear }}
+
+ -
+
+
+
+
8:00 AM to 10:00 AM
+
+
+
+
+ -
+
+
+
+
11:00 AM to 1:00 PM
+
+
+
+
+ -
+
+
+
+
2:00 PM to 3:00 PM
+
+
+
+
+ -
+
+
+
+
4:00 AM to 5:00 PM
+
+
+
+
+
+
+
+
diff --git a/src/app/calendar/calendar.component.scss b/src/app/calendar/calendar.component.scss
index e69de29..3ecc837 100644
--- a/src/app/calendar/calendar.component.scss
+++ b/src/app/calendar/calendar.component.scss
@@ -0,0 +1,278 @@
+.page {
+ height: 100vh;
+ overflow: auto;
+ background-color: var(--ash-black);
+}
+
+
+.nav-header {
+ background-color: var(--ash-black);
+ display: flex;
+ align-items: center;
+ padding: 0 5%;
+ height: 60px;
+ position: sticky;
+ position: -webkit-sticky;
+ top: 0;
+ z-index: 1;
+
+ .close-button {
+ border: 0px;
+ background-color: transparent;
+ .icon {
+ width: 16px;
+ height: 16px;
+ fill: var(--light-grey);
+ }
+ }
+
+ .profile-button {
+ background-color: transparent;
+ margin-left: auto;
+ border: 0px;
+ margin-top: 5px;
+ }
+
+ img {
+ width: 35px;
+ height: 35px;
+ border-radius: 50%;
+ overflow: hidden;
+ }
+}
+
+.calendar-header {
+ color: white;
+ font-size: 18px;
+ font-weight: 500;
+ padding: 0 5%;
+}
+
+
+.mini-calendar {
+ width: 100%;
+ margin: 10px auto;
+
+ .days {
+ display: flex;
+ width: 100vw;
+ margin: 0 auto 10px;
+ padding: 10px 0;
+ position: relative;
+
+ &::before {
+ content: '';
+ position: absolute;
+ bottom: 0;
+ left: 5%;
+ width: 90%;
+ height: 1px;
+ background-color: rgba(white, 0.1);
+ }
+
+ span {
+ width: calc(100vw / 7);
+ text-align: center;
+ font-size: 12px;
+ color: var(--light-grey);
+ }
+ }
+
+ .dates {
+ display: flex;
+ width: 100vw;
+ margin: 0 auto;
+ flex-wrap: wrap;
+
+ span {
+ display: block;
+ font-size: 13px;
+ width: calc(100vw / 7);
+ color: var(--light-grey);
+ font-weight: 500;
+ position: relative;
+ text-align: center;
+ transition: background-color 0.3s, color 0.3s;
+ height: calc(100vw / 7);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 50%;
+
+ &.current-date {
+ color: white;
+ font-weight: 600;
+ }
+
+ &.active {
+ background-color: var(--black);
+ color: white;
+ }
+
+ &.non-current-date {
+ color: var(--dark-grey);
+ }
+ }
+ }
+}
+
+.schedule-details {
+ max-height: calc(100vh - 60px);
+ background-color: white;
+ padding: 20px 5% 100px;
+ overflow: auto;
+ border-top-left-radius: 30px;
+ border-top-right-radius: 30px;
+
+ header {
+ color: var(--dark-grey);
+ font-size: 16px;
+ font-weight: 700;
+ }
+
+ ul {
+ list-style: none;
+ }
+
+ li {
+ display: flex;
+ width: 100%;
+ align-items: center;
+ justify-content: space-between;
+ margin: 0px auto;
+ padding-top: 20px;
+ position: relative;
+
+ &.attended {
+ button {
+ background-color: var(--green);
+ }
+
+ &::before {
+ border-color: var(--green);
+ }
+
+ .checkmark {
+ fill: var(--green);
+ }
+ }
+
+ &.absent {
+ button {
+ background-color: rgba(red, 0.5);
+ }
+
+ &::before {
+ border-color: rgba(red, 0.5);
+ }
+
+ .checkmark {
+ fill: rgba(red, 0.5);
+ }
+ }
+
+ &.late {
+ button {
+ background-color: rgba(orange, 0.5);
+ }
+
+ &::before {
+ border-color: rgba(orange, 0.5);
+ }
+
+ .checkmark {
+ fill: rgba(orange, 0.5);
+ }
+ }
+
+ &.progress {
+ button {
+ background-color: var(--teal);
+ }
+
+ &::before {
+ border-color: var(--teal);
+ }
+
+ .checkmark {
+ fill: var(--teal);
+ }
+ }
+
+ &:last-child::before {
+ display: none;
+ }
+
+ &::before {
+ content: '';
+ position: absolute;
+ left: 8px;
+ top: 50%;
+ height: 100%;
+ width: 1px;
+ border-right: 1px dashed var(--light-grey);
+ }
+
+ .icon {
+ background-color: white;
+ z-index: 1;
+ position: relative;
+ width: 20px;
+ height: 20px;
+ fill: var(--light-grey);
+ }
+
+ button {
+ border-radius: 20px;
+ width: 90px;
+ height: 25px;
+ font-size: 12px;
+ border: 0px;
+ color: white;
+ background-color: var(--light-grey);
+ }
+
+ .content {
+ width: calc(100% - 40px - 120px);
+ }
+
+ label {
+ display: block;
+ font-size: 14px;
+ color: var(--dark-grey);
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ p {
+ font-size: 12px;
+ color: var(--light-grey);
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ }
+}
+
+.add-button {
+ position: fixed;
+ right: 5%;
+ bottom: 20px;
+ z-index: 1;
+ width: 50px;
+ height: 50px;
+ border-radius: 50%;
+ border: 0px;
+ background-color: var(--teal-green);
+ box-shadow: 0px 0px 5px var(--teal-green);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ .icon {
+ width: 20px;
+ height: 20px;
+ fill: white;
+ }
+}
diff --git a/src/app/calendar/calendar.component.ts b/src/app/calendar/calendar.component.ts
index 10f95b5..52c1013 100644
--- a/src/app/calendar/calendar.component.ts
+++ b/src/app/calendar/calendar.component.ts
@@ -1,15 +1,115 @@
import { Component, OnInit } from '@angular/core';
+import { Location } from '@angular/common';
@Component({
- selector: 'app-calendar',
- templateUrl: './calendar.component.html',
- styleUrls: ['./calendar.component.scss']
+ selector: 'app-calendar',
+ templateUrl: './calendar.component.html',
+ styleUrls: ['./calendar.component.scss']
})
export class CalendarComponent implements OnInit {
+ currentDate: number;
+ currentMonth: string;
+ currentYear: number;
+ selectedDate: number;
+ selectedMonth: string;
+ selectedYear: number;
+ monthMap: Array