diff --git a/package-lock.json b/package-lock.json
index 42d9e2f14f356055279b197e1a0806da9a84c452..3f37537de9f15ec3fc3babb1c437f5a7229b58dd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,11 +8,18 @@
       "name": "react-app",
       "version": "0.1.0",
       "dependencies": {
+        "@progress/kendo-licensing": "^1.3.3",
+        "@progress/kendo-react-common": "^6.1.1",
+        "@progress/kendo-react-intl": "^6.1.1",
+        "@progress/kendo-react-scheduler": "^6.1.1",
+        "@progress/kendo-theme-default": "^7.0.2",
         "@testing-library/jest-dom": "^5.17.0",
         "@testing-library/react": "^13.4.0",
         "@testing-library/user-event": "^13.5.0",
         "react": "^18.2.0",
+        "react-big-calendar": "^1.8.5",
         "react-dom": "^18.2.0",
+        "react-router-dom": "^6.20.0",
         "react-scripts": "5.0.1",
         "web-vitals": "^2.1.4"
       }
@@ -3261,6 +3268,453 @@
         }
       }
     },
+    "node_modules/@popperjs/core": {
+      "version": "2.11.8",
+      "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
+      "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/popperjs"
+      }
+    },
+    "node_modules/@progress/kendo-data-query": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-data-query/-/kendo-data-query-1.7.0.tgz",
+      "integrity": "sha512-mB+2WZFAZghxRwBhgWiJIysx7qcFkilnbcZWq0AfQ3KXfC3N5IY/EuKJNijhYrTdauYA1eL1GMe2FHsOWAlRHA==",
+      "dependencies": {
+        "tslib": "^1.7.0"
+      }
+    },
+    "node_modules/@progress/kendo-data-query/node_modules/tslib": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+    },
+    "node_modules/@progress/kendo-date-math": {
+      "version": "1.5.12",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-date-math/-/kendo-date-math-1.5.12.tgz",
+      "integrity": "sha512-cELK9aNVUu20a71FLnYd7JhBhCXk8NsFd9tu6n/LZJvOYzCYQ6J4XIVDc2RwLvbrD7MlBw4YARX1IIsESg7thg==",
+      "peer": true,
+      "dependencies": {
+        "tslib": "^1.7.0"
+      }
+    },
+    "node_modules/@progress/kendo-date-math/node_modules/tslib": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+      "peer": true
+    },
+    "node_modules/@progress/kendo-draggable": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-draggable/-/kendo-draggable-3.0.2.tgz",
+      "integrity": "sha512-B5bR1bEtLZ4i0eCtbT1umem3w9dC82QZ8wJ9/MMjcS0/luBiARnIacRM69b0PYN+uESztBuzKrrTpW70FCT47A=="
+    },
+    "node_modules/@progress/kendo-draggable-common": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-draggable-common/-/kendo-draggable-common-0.2.3.tgz",
+      "integrity": "sha512-e1FraFsT7zwevswzZlQYL//K+fzmRUvkr/4emp51dzkARLDtGd95BtPNSoXYRG5xYHeueKBS75hzVwQI6Dm3Dg==",
+      "dependencies": {
+        "tslib": "^1.7.0"
+      }
+    },
+    "node_modules/@progress/kendo-draggable-common/node_modules/tslib": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+    },
+    "node_modules/@progress/kendo-drawing": {
+      "version": "1.19.0",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-drawing/-/kendo-drawing-1.19.0.tgz",
+      "integrity": "sha512-4gB+hEPN4GZMcGVFFEDhGqnhqtFIdqIZt5KNNR5RFZGU6+TxZjZEBEot+f0L3RoU8LpcFsaifd2mFOAMZombtQ==",
+      "peer": true,
+      "dependencies": {
+        "@progress/pako-esm": "^1.0.1"
+      }
+    },
+    "node_modules/@progress/kendo-inputs-common": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-inputs-common/-/kendo-inputs-common-3.1.0.tgz",
+      "integrity": "sha512-lOpdICbRtrkYU+KOiNylTudFr266oTSgzdQ/H5R9cIK9CJvKXhU5Qdtq3gcx9PL/vJdPnbt3nj3YmuDn2hqp5Q==",
+      "peer": true,
+      "dependencies": {
+        "tslib": "^2.3.1"
+      },
+      "peerDependencies": {
+        "@progress/kendo-drawing": "^1.17.0"
+      }
+    },
+    "node_modules/@progress/kendo-intl": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-intl/-/kendo-intl-3.1.1.tgz",
+      "integrity": "sha512-Dv+j4rQTSODq3EMTlzvWMBsDmnbupAgMUFmVG6wbgg29xtvQTYDoKej4m3POazh7BitdlascbP+2bqs/9Xcm3g=="
+    },
+    "node_modules/@progress/kendo-licensing": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-licensing/-/kendo-licensing-1.3.3.tgz",
+      "integrity": "sha512-BcIT0Sg2s0dr6biTTXKFQzb1RYASncW+rbR0hyPokVky33jtii96tq1kjyvZ4XJPEhxhCUiBqoL5ZC+TnPnyTA==",
+      "hasInstallScript": true,
+      "dependencies": {
+        "jsonwebtoken": "^9.0.2"
+      },
+      "bin": {
+        "kendo-ui-license": "bin/kendo-ui-license.js"
+      }
+    },
+    "node_modules/@progress/kendo-popup-common": {
+      "version": "1.9.2",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-popup-common/-/kendo-popup-common-1.9.2.tgz",
+      "integrity": "sha512-Gs50UafJcERiGuSP/47Yg7ftPX3HQXiK5M9zHB8sHSoc1/AEYd0/Sj5wh8UrVVBAM9b0pUTwmEuzQ/D5yDDd2Q==",
+      "peer": true
+    },
+    "node_modules/@progress/kendo-react-animation": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-animation/-/kendo-react-animation-6.1.1.tgz",
+      "integrity": "sha512-Qc7WQi5EtxSsLQmpFXl4wsGFMwl8u3mYFXYrv+0DCYo+1iatGoIdGHCf2nKcvV7Rwpk8tMkeY+PxtY5D+kcoRw==",
+      "peer": true,
+      "dependencies": {
+        "@progress/kendo-react-common": "6.1.1",
+        "prop-types": "^15.6.0",
+        "react-transition-group": "4.4.2"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-buttons": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-buttons/-/kendo-react-buttons-6.1.1.tgz",
+      "integrity": "sha512-j7Qlog0d4yKKYvUu3PHfabFK9XHWwl1e3uPyUerRPaQnU5y7++qBysgYnzcijV16/1X7EO7wjUKdTM3I01PUcQ==",
+      "peer": true,
+      "dependencies": {
+        "@progress/kendo-react-common": "6.1.1",
+        "@progress/kendo-react-popup": "6.1.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "@progress/kendo-svg-icons": "^2.0.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-common": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-common/-/kendo-react-common-6.1.1.tgz",
+      "integrity": "sha512-kZF5t1OQX53ybhJ74a68tFPNtfzHaBy4a4TeJI1zQ3zDGywaas8/y8HVWr0jaOIh2R9y78sFhlcPB/KO+NAgLQ==",
+      "dependencies": {
+        "@progress/kendo-draggable-common": "^0.2.3",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "@progress/kendo-svg-icons": "^2.0.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-dateinputs": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-dateinputs/-/kendo-react-dateinputs-6.1.1.tgz",
+      "integrity": "sha512-ki+X0nYAnFjp3qUdN5RZVzsMUe6HVsStoEv6z5VNbAwu8cWMtAN01/MnqXU9J+YlDHv51JoUY8RqqsFODQVdgw==",
+      "peer": true,
+      "dependencies": {
+        "@progress/kendo-date-math": "^1.4.0",
+        "@progress/kendo-react-buttons": "6.1.1",
+        "@progress/kendo-react-common": "6.1.1",
+        "@progress/kendo-react-labels": "6.1.1",
+        "@progress/kendo-react-layout": "6.1.1",
+        "@progress/kendo-react-popup": "6.1.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "@progress/kendo-react-intl": "^6.0.0",
+        "@progress/kendo-svg-icons": "^2.0.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-dialogs": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-dialogs/-/kendo-react-dialogs-6.1.1.tgz",
+      "integrity": "sha512-Y4YBkP6S9tneWx1NcpGCqbK2BW/SFDsd5waEuGBpO7nw1tagOOzTlMX7m4bfe1pL34Ic4WYCT6DtDSM8JMzB0g==",
+      "peer": true,
+      "dependencies": {
+        "@progress/kendo-react-common": "6.1.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "@progress/kendo-react-buttons": "^6.0.0",
+        "@progress/kendo-svg-icons": "^2.0.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-dropdowns": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-dropdowns/-/kendo-react-dropdowns-6.1.1.tgz",
+      "integrity": "sha512-i/p53nGyiPUQXigg992xL31fpvBJcC6yLWfalEaBVCBFJe4yAQ1xCTIovH9fRddz78PMh8Z0Gx5JQt9CLp7n/g==",
+      "peer": true,
+      "dependencies": {
+        "@progress/kendo-react-common": "6.1.1",
+        "@progress/kendo-react-inputs": "6.1.1",
+        "@progress/kendo-react-labels": "6.1.1",
+        "@progress/kendo-react-layout": "6.1.1",
+        "@progress/kendo-react-popup": "6.1.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "@progress/kendo-react-buttons": "^6.0.0",
+        "@progress/kendo-react-intl": "^6.0.0",
+        "@progress/kendo-react-progressbars": "^6.0.0",
+        "@progress/kendo-react-treeview": "^6.0.0",
+        "@progress/kendo-svg-icons": "^2.0.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-form": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-form/-/kendo-react-form-6.1.1.tgz",
+      "integrity": "sha512-via1ZhuRGX8ZydF3JmXBZ2/GIuGzJ1QVOzXq6+iadE6HWKzCiapT1UfXBLtXklTPTlVIy8MXzrYNixd1jF1s8w==",
+      "peer": true,
+      "dependencies": {
+        "@progress/kendo-react-common": "6.1.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-inputs": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-inputs/-/kendo-react-inputs-6.1.1.tgz",
+      "integrity": "sha512-ac1hd6e+0GGdf9IB4/+KyeYrwqiliMg0NBUm5Ud4+y9GV788Uc2lX/nWq9aVAGGBRt9cx4BeQGe8n2gyS1SvTw==",
+      "peer": true,
+      "dependencies": {
+        "@progress/kendo-inputs-common": "^3.1.0",
+        "@progress/kendo-react-buttons": "6.1.1",
+        "@progress/kendo-react-common": "6.1.1",
+        "@progress/kendo-react-dialogs": "6.1.1",
+        "@progress/kendo-react-labels": "6.1.1",
+        "@progress/kendo-react-popup": "6.1.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-drawing": "^1.17.2",
+        "@progress/kendo-licensing": "^1.3.0",
+        "@progress/kendo-react-animation": "^6.0.0",
+        "@progress/kendo-react-form": "^6.0.0",
+        "@progress/kendo-react-intl": "^6.0.0",
+        "@progress/kendo-svg-icons": "^2.0.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-intl": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-intl/-/kendo-react-intl-6.1.1.tgz",
+      "integrity": "sha512-3VVgEJIggp2gqDCDkFM2ExpOTqcmNyQlo3BKovssuEDFvjHq1HG53PM8wElHGXJtmiG6UW+TTj+SmxyslHe7yg==",
+      "dependencies": {
+        "@progress/kendo-intl": "^3.1.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-labels": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-labels/-/kendo-react-labels-6.1.1.tgz",
+      "integrity": "sha512-UKGZYo843RbMn8o9Y5XD/0f1NzEzh4ptKzkxNkkLTdmCy2Ipl/Qkpv3pqyIpvOF9LXrJWJwofKaCCN7/Fl5Wsg==",
+      "peer": true,
+      "dependencies": {
+        "@progress/kendo-react-common": "6.1.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "@progress/kendo-react-intl": "^6.0.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-layout": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-layout/-/kendo-react-layout-6.1.1.tgz",
+      "integrity": "sha512-2AoqSR12LKsbCFzHt7yKON7ZWB4QRsp0o0623tcMImmkon1R7MrRFuQUGtukE/jJwoRShXPuHigxDYExAKH0XA==",
+      "peer": true,
+      "dependencies": {
+        "@progress/kendo-react-animation": "6.1.1",
+        "@progress/kendo-react-common": "6.1.1",
+        "@progress/kendo-react-popup": "6.1.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "@progress/kendo-react-intl": "^6.0.0",
+        "@progress/kendo-react-progressbars": "^6.0.0",
+        "@progress/kendo-svg-icons": "^2.0.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-popup": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-popup/-/kendo-react-popup-6.1.1.tgz",
+      "integrity": "sha512-QtVj8N4guytTShgcfUzspaqiPb71AK2G1jT3nXhMNgPfLnTlTBDkyydBQuTfYcJkxkfH2igBEzwrkERiv1rOpA==",
+      "peer": true,
+      "dependencies": {
+        "@progress/kendo-popup-common": "1.9.2",
+        "@progress/kendo-react-common": "6.1.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-progressbars": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-progressbars/-/kendo-react-progressbars-6.1.1.tgz",
+      "integrity": "sha512-r4hkJX7es45zIzZd1EKBnoH/iLW5PFzV1uUU6JSr0M6oPfdhbqR05wsLTmF2PCf3yzqew8lGuW8rno/OztnjJA==",
+      "peer": true,
+      "dependencies": {
+        "@progress/kendo-react-common": "6.1.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "@progress/kendo-react-animation": "^6.0.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-scheduler": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-scheduler/-/kendo-react-scheduler-6.1.1.tgz",
+      "integrity": "sha512-Kn6YHYRQ2AZWj0p9Ta9hXfv+EOYNqyTNlZOyP1CfsItHrtLw/XCI0D45bzJukzfi0Bl06aX04diS0M4iLxMKvA==",
+      "dependencies": {
+        "@progress/kendo-data-query": "^1.5.1",
+        "@progress/kendo-draggable": "^3.0.1",
+        "@progress/kendo-react-common": "6.1.1",
+        "@progress/kendo-recurrence": "^1.0.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-date-math": "^1.4.1",
+        "@progress/kendo-drawing": "^1.17.2",
+        "@progress/kendo-licensing": "^1.3.0",
+        "@progress/kendo-react-buttons": "^6.0.0",
+        "@progress/kendo-react-dateinputs": "^6.0.0",
+        "@progress/kendo-react-dialogs": "^6.0.0",
+        "@progress/kendo-react-dropdowns": "^6.0.0",
+        "@progress/kendo-react-form": "^6.0.0",
+        "@progress/kendo-react-inputs": "^6.0.0",
+        "@progress/kendo-react-intl": "^6.0.0",
+        "@progress/kendo-react-popup": "^6.0.0",
+        "@progress/kendo-svg-icons": "^2.0.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-react-treeview": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-react-treeview/-/kendo-react-treeview-6.1.1.tgz",
+      "integrity": "sha512-+1OoQEdWbu2f6/9TJULt/FYfmq2XNeTKVaZUUttx9xGwnSTHJvipsxs93yKFIxwhv4E34Vg/XWMH/vDFaBH4yw==",
+      "peer": true,
+      "dependencies": {
+        "@progress/kendo-react-common": "6.1.1",
+        "prop-types": "^15.6.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-licensing": "^1.3.0",
+        "@progress/kendo-react-animation": "^6.0.0",
+        "@progress/kendo-svg-icons": "^2.0.0",
+        "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
+        "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
+      }
+    },
+    "node_modules/@progress/kendo-recurrence": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-recurrence/-/kendo-recurrence-1.0.3.tgz",
+      "integrity": "sha512-eG4xt3WUBLuxctJN6dWhDI41hqCl60Fe6a7Pb5IX4WIEW3Y5Hhn9AntJ/X1k0oQqU/n1vxdUJJp+9TihbBYgHA==",
+      "dependencies": {
+        "@telerik/kendo-intl": "^2.0.0",
+        "tslib": "^1.7.0"
+      },
+      "peerDependencies": {
+        "@progress/kendo-date-math": "^1.3.0"
+      }
+    },
+    "node_modules/@progress/kendo-recurrence/node_modules/tslib": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+    },
+    "node_modules/@progress/kendo-svg-icons": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-svg-icons/-/kendo-svg-icons-2.0.0.tgz",
+      "integrity": "sha512-0eXDk+lgjg6r2TIUBp383sqKQbQZido0S/KnrF3ZEqxJ+rO10K6WSphFINmk0BKqneAaA94RVwPsMb5yOY/PbA=="
+    },
+    "node_modules/@progress/kendo-theme-core": {
+      "version": "7.0.2",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-theme-core/-/kendo-theme-core-7.0.2.tgz",
+      "integrity": "sha512-poq6dZ/SkKSpfR0agzuWWlX/JXMK9LhBUx0dNWA7NzkEnfvjkmX7rDgPPmy6ZfLFTuMjf1ehKhykxLlATu7c1g=="
+    },
+    "node_modules/@progress/kendo-theme-default": {
+      "version": "7.0.2",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-theme-default/-/kendo-theme-default-7.0.2.tgz",
+      "integrity": "sha512-t6c9nkEPh0Nafq3XnsxKN4zWv1xSOTfVGoatwKcnSOyWY3iqoLZdiRHITnkzzC/2QLm2ZD4hftEPrq9vfrbV0Q==",
+      "dependencies": {
+        "@progress/kendo-svg-icons": "2.0.0",
+        "@progress/kendo-theme-core": "7.0.2",
+        "@progress/kendo-theme-utils": "7.0.2"
+      }
+    },
+    "node_modules/@progress/kendo-theme-utils": {
+      "version": "7.0.2",
+      "resolved": "https://registry.npmjs.org/@progress/kendo-theme-utils/-/kendo-theme-utils-7.0.2.tgz",
+      "integrity": "sha512-jSO8jRMsa5orlDUypB8V0cXn+5i1kVUTKwVCIO53hYkkgsmELnJlJcKo+ToVpKSUH5IX+c5j0XfkTtoJiCAA7w==",
+      "dependencies": {
+        "@progress/kendo-theme-core": "7.0.2"
+      }
+    },
+    "node_modules/@progress/pako-esm": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/@progress/pako-esm/-/pako-esm-1.0.1.tgz",
+      "integrity": "sha512-O4A3b1EuE9Xe1pC3Xz9Tcn1M/CYrL71f4y/5TXeytOVTkmkzBgYW97fYP2f+54H0e0erWRaqV/kUUB/a8Uxfbw==",
+      "peer": true
+    },
+    "node_modules/@remix-run/router": {
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.13.0.tgz",
+      "integrity": "sha512-5dMOnVnefRsl4uRnAdoWjtVTdh8e6aZqgM4puy9nmEADH72ck+uXwzpJLEKE9Q6F8ZljNewLgmTfkxUrBdv4WA==",
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/@restart/hooks": {
+      "version": "0.4.11",
+      "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.11.tgz",
+      "integrity": "sha512-Ft/ncTULZN6ldGHiF/k5qt72O8JyRMOeg0tApvCni8LkoiEahO+z3TNxfXIVGy890YtWVDvJAl662dVJSJXvMw==",
+      "dependencies": {
+        "dequal": "^2.0.3"
+      },
+      "peerDependencies": {
+        "react": ">=16.8.0"
+      }
+    },
     "node_modules/@rollup/plugin-babel": {
       "version": "5.3.1",
       "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
@@ -3579,6 +4033,11 @@
         "url": "https://github.com/sponsors/gregberge"
       }
     },
+    "node_modules/@telerik/kendo-intl": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/@telerik/kendo-intl/-/kendo-intl-2.3.1.tgz",
+      "integrity": "sha512-30iXfS/1Kz3wn0rZLiWzrfJCv/c0Wffr5T42uxjJBTxZQ6XLBmUdfaQ4Jn1Td1W0skZrlP0M3/wNAEYTbxXigQ=="
+    },
     "node_modules/@testing-library/dom": {
       "version": "9.3.3",
       "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.3.tgz",
@@ -4456,6 +4915,11 @@
       "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.6.tgz",
       "integrity": "sha512-HYtNooPvUY9WAVRBr4u+4Qa9fYD1ze2IUlAD3HoA6oehn1taGwBx3Oa52U4mTslTS+GAExKpaFu39Y5xUEwfjg=="
     },
+    "node_modules/@types/warning": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz",
+      "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q=="
+    },
     "node_modules/@types/ws": {
       "version": "8.5.9",
       "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.9.tgz",
@@ -5790,6 +6254,11 @@
         "node-int64": "^0.4.0"
       }
     },
+    "node_modules/buffer-equal-constant-time": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+      "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
+    },
     "node_modules/buffer-from": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -6020,6 +6489,14 @@
         "wrap-ansi": "^7.0.0"
       }
     },
+    "node_modules/clsx": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
+      "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+      "engines": {
+        "node": ">=6"
+      }
+    },
     "node_modules/co": {
       "version": "4.6.0",
       "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -6694,6 +7171,16 @@
         "node": ">=10"
       }
     },
+    "node_modules/date-arithmetic": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/date-arithmetic/-/date-arithmetic-4.1.0.tgz",
+      "integrity": "sha512-QWxYLR5P/6GStZcdem+V1xoto6DMadYWpMXU82ES3/RfR3Wdwr3D0+be7mgOJ+Ov0G9D5Dmb9T17sNLQYj9XOg=="
+    },
+    "node_modules/dayjs": {
+      "version": "1.11.10",
+      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
+      "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
+    },
     "node_modules/debug": {
       "version": "4.3.4",
       "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -6956,6 +7443,15 @@
         "utila": "~0.4"
       }
     },
+    "node_modules/dom-helpers": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
+      "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+      "dependencies": {
+        "@babel/runtime": "^7.8.7",
+        "csstype": "^3.0.2"
+      }
+    },
     "node_modules/dom-serializer": {
       "version": "1.4.1",
       "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
@@ -7053,6 +7549,14 @@
       "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
       "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
     },
+    "node_modules/ecdsa-sig-formatter": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+      "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+      "dependencies": {
+        "safe-buffer": "^5.0.1"
+      }
+    },
     "node_modules/ee-first": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -8772,6 +9276,11 @@
         "which": "bin/which"
       }
     },
+    "node_modules/globalize": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/globalize/-/globalize-0.1.1.tgz",
+      "integrity": "sha512-5e01v8eLGfuQSOvx2MsDMOWS0GFtCx1wPzQSmcHw4hkxFzrQDBO3Xwg/m8Hr/7qXMrHeOIE29qWVzyv06u1TZA=="
+    },
     "node_modules/globals": {
       "version": "11.12.0",
       "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
@@ -9320,6 +9829,14 @@
         "node": ">= 0.4"
       }
     },
+    "node_modules/invariant": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+      "dependencies": {
+        "loose-envify": "^1.0.0"
+      }
+    },
     "node_modules/ipaddr.js": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz",
@@ -11998,6 +12515,27 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/jsonwebtoken": {
+      "version": "9.0.2",
+      "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
+      "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
+      "dependencies": {
+        "jws": "^3.2.2",
+        "lodash.includes": "^4.3.0",
+        "lodash.isboolean": "^3.0.3",
+        "lodash.isinteger": "^4.0.4",
+        "lodash.isnumber": "^3.0.3",
+        "lodash.isplainobject": "^4.0.6",
+        "lodash.isstring": "^4.0.1",
+        "lodash.once": "^4.0.0",
+        "ms": "^2.1.1",
+        "semver": "^7.5.4"
+      },
+      "engines": {
+        "node": ">=12",
+        "npm": ">=6"
+      }
+    },
     "node_modules/jsx-ast-utils": {
       "version": "3.3.5",
       "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
@@ -12012,6 +12550,25 @@
         "node": ">=4.0"
       }
     },
+    "node_modules/jwa": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+      "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+      "dependencies": {
+        "buffer-equal-constant-time": "1.0.1",
+        "ecdsa-sig-formatter": "1.0.11",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "node_modules/jws": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+      "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+      "dependencies": {
+        "jwa": "^1.4.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
     "node_modules/keyv": {
       "version": "4.5.4",
       "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
@@ -12142,11 +12699,46 @@
       "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
       "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
     },
+    "node_modules/lodash-es": {
+      "version": "4.17.21",
+      "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+      "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+    },
     "node_modules/lodash.debounce": {
       "version": "4.0.8",
       "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
       "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
     },
+    "node_modules/lodash.includes": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+      "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
+    },
+    "node_modules/lodash.isboolean": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+      "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
+    },
+    "node_modules/lodash.isinteger": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+      "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
+    },
+    "node_modules/lodash.isnumber": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+      "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
+    },
+    "node_modules/lodash.isplainobject": {
+      "version": "4.0.6",
+      "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+      "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
+    },
+    "node_modules/lodash.isstring": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+      "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
+    },
     "node_modules/lodash.memoize": {
       "version": "4.1.2",
       "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
@@ -12157,6 +12749,11 @@
       "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
       "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
     },
+    "node_modules/lodash.once": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+      "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
+    },
     "node_modules/lodash.sortby": {
       "version": "4.7.0",
       "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
@@ -12194,6 +12791,14 @@
         "yallist": "^3.0.2"
       }
     },
+    "node_modules/luxon": {
+      "version": "3.4.4",
+      "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz",
+      "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/lz-string": {
       "version": "1.5.0",
       "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
@@ -12264,6 +12869,11 @@
         "node": ">= 4.0.0"
       }
     },
+    "node_modules/memoize-one": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
+      "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+    },
     "node_modules/merge-descriptors": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
@@ -12450,6 +13060,25 @@
         "mkdirp": "bin/cmd.js"
       }
     },
+    "node_modules/moment": {
+      "version": "2.29.4",
+      "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
+      "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/moment-timezone": {
+      "version": "0.5.43",
+      "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz",
+      "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==",
+      "dependencies": {
+        "moment": "^2.29.4"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
     "node_modules/ms": {
       "version": "2.1.2",
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -14578,6 +15207,33 @@
       "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
       "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
     },
+    "node_modules/react-big-calendar": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/react-big-calendar/-/react-big-calendar-1.8.5.tgz",
+      "integrity": "sha512-cra8WPfoTSQthFfqxi0k9xm/Shv5jWSw19LkNzpSJcnQhP6XGes/eJjd8P8g/iwaJjXIWPpg3+HB5wO5wabRyA==",
+      "dependencies": {
+        "@babel/runtime": "^7.20.7",
+        "clsx": "^1.2.1",
+        "date-arithmetic": "^4.1.0",
+        "dayjs": "^1.11.7",
+        "dom-helpers": "^5.2.1",
+        "globalize": "^0.1.1",
+        "invariant": "^2.2.4",
+        "lodash": "^4.17.21",
+        "lodash-es": "^4.17.21",
+        "luxon": "^3.2.1",
+        "memoize-one": "^6.0.0",
+        "moment": "^2.29.4",
+        "moment-timezone": "^0.5.40",
+        "prop-types": "^15.8.1",
+        "react-overlays": "^5.2.1",
+        "uncontrollable": "^7.2.1"
+      },
+      "peerDependencies": {
+        "react": "^16.14.0 || ^17 || ^18",
+        "react-dom": "^16.14.0 || ^17 || ^18"
+      }
+    },
     "node_modules/react-dev-utils": {
       "version": "12.0.1",
       "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
@@ -14717,6 +15373,30 @@
       "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
       "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
     },
+    "node_modules/react-lifecycles-compat": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
+      "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+    },
+    "node_modules/react-overlays": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz",
+      "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==",
+      "dependencies": {
+        "@babel/runtime": "^7.13.8",
+        "@popperjs/core": "^2.11.6",
+        "@restart/hooks": "^0.4.7",
+        "@types/warning": "^3.0.0",
+        "dom-helpers": "^5.2.0",
+        "prop-types": "^15.7.2",
+        "uncontrollable": "^7.2.1",
+        "warning": "^4.0.3"
+      },
+      "peerDependencies": {
+        "react": ">=16.3.0",
+        "react-dom": ">=16.3.0"
+      }
+    },
     "node_modules/react-refresh": {
       "version": "0.11.0",
       "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz",
@@ -14725,6 +15405,36 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/react-router": {
+      "version": "6.20.0",
+      "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.20.0.tgz",
+      "integrity": "sha512-pVvzsSsgUxxtuNfTHC4IxjATs10UaAtvLGVSA1tbUE4GDaOSU1Esu2xF5nWLz7KPiMuW8BJWuPFdlGYJ7/rW0w==",
+      "dependencies": {
+        "@remix-run/router": "1.13.0"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      },
+      "peerDependencies": {
+        "react": ">=16.8"
+      }
+    },
+    "node_modules/react-router-dom": {
+      "version": "6.20.0",
+      "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.20.0.tgz",
+      "integrity": "sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==",
+      "dependencies": {
+        "@remix-run/router": "1.13.0",
+        "react-router": "6.20.0"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      },
+      "peerDependencies": {
+        "react": ">=16.8",
+        "react-dom": ">=16.8"
+      }
+    },
     "node_modules/react-scripts": {
       "version": "5.0.1",
       "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz",
@@ -14797,6 +15507,22 @@
         }
       }
     },
+    "node_modules/react-transition-group": {
+      "version": "4.4.2",
+      "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz",
+      "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==",
+      "peer": true,
+      "dependencies": {
+        "@babel/runtime": "^7.5.5",
+        "dom-helpers": "^5.0.1",
+        "loose-envify": "^1.4.0",
+        "prop-types": "^15.6.2"
+      },
+      "peerDependencies": {
+        "react": ">=16.6.0",
+        "react-dom": ">=16.6.0"
+      }
+    },
     "node_modules/read-cache": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -16738,6 +17464,20 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
+    "node_modules/uncontrollable": {
+      "version": "7.2.1",
+      "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz",
+      "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==",
+      "dependencies": {
+        "@babel/runtime": "^7.6.3",
+        "@types/react": ">=16.9.11",
+        "invariant": "^2.2.4",
+        "react-lifecycles-compat": "^3.0.4"
+      },
+      "peerDependencies": {
+        "react": ">=15.0.0"
+      }
+    },
     "node_modules/underscore": {
       "version": "1.12.1",
       "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
@@ -16965,6 +17705,14 @@
         "makeerror": "1.0.12"
       }
     },
+    "node_modules/warning": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+      "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+      "dependencies": {
+        "loose-envify": "^1.0.0"
+      }
+    },
     "node_modules/watchpack": {
       "version": "2.4.0",
       "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
diff --git a/package.json b/package.json
index 59a69580aeb0fbe89d3a5cb7115dc3db007ed367..609b436b0782e7cefee480d5d0f87b718610712e 100644
--- a/package.json
+++ b/package.json
@@ -3,11 +3,18 @@
   "version": "0.1.0",
   "private": true,
   "dependencies": {
+    "@progress/kendo-licensing": "^1.3.3",
+    "@progress/kendo-react-common": "^6.1.1",
+    "@progress/kendo-react-intl": "^6.1.1",
+    "@progress/kendo-react-scheduler": "^6.1.1",
+    "@progress/kendo-theme-default": "^7.0.2",
     "@testing-library/jest-dom": "^5.17.0",
     "@testing-library/react": "^13.4.0",
     "@testing-library/user-event": "^13.5.0",
     "react": "^18.2.0",
+    "react-big-calendar": "^1.8.5",
     "react-dom": "^18.2.0",
+    "react-router-dom": "^6.20.0",
     "react-scripts": "5.0.1",
     "web-vitals": "^2.1.4"
   },
diff --git a/src/App.js b/src/App.js
index cccf2e2825241c7e8375d93bc1aabe679f25949a..72925740cd90a872e2a166cf06f58f6d60c470c9 100644
--- a/src/App.js
+++ b/src/App.js
@@ -12,7 +12,7 @@ function App() {
       <Routes>
         <Route path="/" element={<MySchedulerApp/>} />
         <Route path="/users/login" element={<Login/>} />
-        <Route path="/users" element={<Join />} />
+        <Route path="/users" element={<Join />}/>
       </Routes>
     </BrowserRouter>
   );
diff --git a/src/notofonts.ttf b/src/notofonts.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..57016c27f9361d51a6bdecefdb6a16771d0c582f
Binary files /dev/null and b/src/notofonts.ttf differ
diff --git a/src/pages/Header.js b/src/pages/Header.js
index ec298afed5c315d52976a4e3f7ef2ed0ab755783..034328b376f50285c16d55fe72e6c615de3f2bce 100644
--- a/src/pages/Header.js
+++ b/src/pages/Header.js
@@ -18,7 +18,7 @@ const Header=()=>{
   }
 
   const goToMypage = () => {
-    navigate("/mypage" );
+    navigate("/mypage");
   }
 
   return (
diff --git a/src/pages/createRecruitment.js b/src/pages/createRecruitment.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/pages/join.js b/src/pages/join.js
index 02fc20d3179916f6713acfb5d249f0b35a76b434..3203ee44ba32564e234417f7d8376e6652f74cb3 100644
--- a/src/pages/join.js
+++ b/src/pages/join.js
@@ -1,7 +1,14 @@
 import React, { useState } from 'react';
 import joinStyles from './join.module.css';
+import { useNavigate } from "react-router-dom";
 
 function Join(props){
+    const navigate = useNavigate();
+
+    const goToLogin = () => {
+        navigate("/users/login");
+    }
+
     // 초기값 세팅
     const [id, setId] = useState('');
     const [password, setPassword] = useState('');
@@ -244,7 +251,7 @@ function Join(props){
                             <div className={joinStyles.input_with_img}>
                                 <img src="/password.png" height='20px' width='14px'/>
                                 <input type={seePassword? 'password':'text'} onChange={onChangePassword} placeholder='비밀번호'/><br/>
-                                <span className={joinStyles.eye}><span className={joinStyles.eye_img}>
+                                <span className={joinStyles.eye}><span className={joinStyles.eye_img_pw}>
                                     <img src={seePassword ? './eyeOff.png' : './eyeOn.png'}
                                     alt='비밀번호 가시성 전환'
                                     height='18px'
@@ -256,7 +263,7 @@ function Join(props){
                             <div className={joinStyles.input_with_img}>
                                 <img src="/password.png" height='20px' width='14px'/>
                                 <input type={seePasswordCheck? 'password':'text'} onChange={onChangePasswordCheck} placeholder='비밀번호 확인'/>
-                                <span className={joinStyles.eye}><span className={joinStyles.eye_img}>
+                                <span className={joinStyles.eye}><span className={joinStyles.eye_img_pwck}>
                                     <img src={seePasswordCheck? './eyeOff.png' : './eyeOn.png'}
                                     alt='비밀번호 가시성 전환'
                                     height='18px'
@@ -294,7 +301,7 @@ function Join(props){
                     </form>
                 </div>
                 <div className={joinStyles.stick}>―――――――――<span className={joinStyles.or}> 또는 </span>―――――――――</div>
-                <div className={joinStyles.gotoLogin}>이미 계정이 있으신가요?   <a href="/usre/login" className={joinStyles.loginText}>로그인</a></div>
+                <div className={joinStyles.gotoLogin}>이미 계정이 있으신가요?   <a className={joinStyles.loginText} onClick={goToLogin}>로그인</a></div>
             </div>
 }
 
diff --git a/src/pages/join.module.css b/src/pages/join.module.css
index a14335722cdeb14e92d53d53bf10592544fad164..45355df5d6b67fddc71e6630a4fa11c940bd55d4 100644
--- a/src/pages/join.module.css
+++ b/src/pages/join.module.css
@@ -35,11 +35,10 @@
 
 .checkId, .checkNickname{
     position: relative;
-    top: -22px;
     width: 60px;
     height: 30px;
     margin-left: 240px;
-    margin-top:-100px;
+    margin-top:-3px;
     background-color: #F7F8F8;
     border: 1px solid #7e7c7c;
     border-radius: 50px;
@@ -74,18 +73,20 @@
 }
 
 .input_with_img input{
+    display: flex;
     border: none;
     outline: none; /* 선택 시 나타나는 외곽선 제거 */
     background-color: #F7F8F8;
     
-    margin-left: 10px;
-    margin-top:-8px;
-    margin-bottom: 2px
+    margin-left: 15px;
+    margin-top:-20px;
+    margin-bottom: -30px
 
 }
 
 .input_with_img img{
-    margin-left:-100px;
+    display: flex;
+    margin-left:0px;
 }
 
 .eye{
@@ -94,10 +95,18 @@
     align-items: flex-end;
 }
 
-.eye_img{
+.eye_img_pw{
+    display: flex;
     color:#F7F8F8;
-    margin-right: -30px;
-    margin-top: -25px;
+    margin-right: 10px;
+    margin-top: -20px;
+}
+
+.eye_img_pwck{
+  display: flex;
+  color:#F7F8F8;
+  margin-right: 10px;
+  margin-bottom: 20px;
 }
 
 .register{
diff --git a/src/pages/login.js b/src/pages/login.js
index c8a94b48666c432853ff3ddbebdf49e8018b3cc1..4f48fcd3a5439156f08a6b39e994acf0b47b2703 100644
--- a/src/pages/login.js
+++ b/src/pages/login.js
@@ -1,16 +1,18 @@
 import React, {useState} from 'react';
 import styles from "./login.module.css"
-import { useNavigate  } from 'react-router-dom';
-
-
+import { useNavigate } from 'react-router-dom';
 
 const Login=()=>{
-  const navigate = useNavigate ();
+  const navigate = useNavigate();
   const [id, setId]=useState('');
   const[password, setPassword]=useState('');
   const [err, setError] = useState(null);
   const[seePassword, setSeePassword]=useState(true);
 
+  const goToJoin = () => {
+    navigate("/users");
+  }
+
   const handleLogin =async()=>{
     try{
       const response=await fetch('/api/users/login',{
@@ -76,13 +78,13 @@ const Login=()=>{
 
       </div>
       </div>
-      <br />
+      <br/>
 
      <button className={styles.login} onClick={handleLogin}>로그인</button>
     
 
       <div className={styles.stick}>―――――――――<span className={styles.or}> 또는 </span>―――――――――</div>
-      <div className={styles.gotoJoin}>아직 계정이 없으신가요? <a href="/api/users" className={styles.loginText}>회원가입</a></div>
+      <div className={styles.gotoJoin}>아직 계정이 없으신가요? <a className={styles.loginText} onClick={goToJoin}>회원가입</a></div>
       </section> 
       </div>
   );
diff --git a/src/pages/mainAside.js b/src/pages/mainAside.js
index 258495b4d0703ad4fbf1b62c81892296f9fc8aae..3ca64ac1e26a1b595204863a54e894aad10a3444 100644
--- a/src/pages/mainAside.js
+++ b/src/pages/mainAside.js
@@ -3,7 +3,6 @@ import styles from './mainAside.module.css';
 
 function NextSchedule(props) {
     const { nextSchedules } = props.data;
-    console.log(nextSchedules);
 
     if (!nextSchedules || !Array.isArray(nextSchedules)) {
         return <p className={styles.noContent}>다음 일정이 없습니다.</p>;
@@ -26,7 +25,6 @@ function NextSchedule(props) {
 
 function Notice(props){
     const { subscribeNotices } = props.data;
-    console.log(subscribeNotices);
 
     if (!subscribeNotices || !Array.isArray(subscribeNotices)) {
         return <p className={styles.noContent}>최근 공지가 없습니다.</p>;
diff --git a/src/pages/recruit.js b/src/pages/recruit.js
new file mode 100644
index 0000000000000000000000000000000000000000..b33e955e82e2c9fdb1307505924f517d20a2cf4e
--- /dev/null
+++ b/src/pages/recruit.js
@@ -0,0 +1,56 @@
+import React, { useState } from 'react';
+import './recruit.css';
+
+function RecruitItem(props){
+    return (
+        <div>
+            <img src={props.recruit.imagePath} alt='recruit img'></img>
+            <span>{props.recruit.title}</span>
+            <span>{props.recruit.content}</span>
+            <span>{props.recruit.timeCategory}</span>
+            <span>{props.recruit.state}</span>
+            <span>{props.recruit.peopleNum}</span>
+            <span>{props.recruit.startDate}</span>
+            <span>{props.recruit.endDate}</span>
+            <span>{props.recruit.startTime}</span>
+            <span>{props.recruit.endTime}</span>
+            <span>{props.recruit.endTime}</span>
+        </div>
+    )
+}
+
+function RecruitList(){
+    const [recruit, setRecruit] = useState([]);
+
+    const fetchRecruit = async ()=>{
+        try{
+            const response = await fetch('/api/recruits', {
+                method: 'GET'
+            });
+            
+            const jsonData = await response.json();
+            const { recruits } = jsonData.data;
+
+            const recruitComponents = recruits.map((recruit) => (
+                <RecruitItem recruit={recruit}/>
+            ));
+
+            setRecruit(recruitComponents);
+
+        } catch(error){
+            console.log('Error during fetch:', error);
+        }
+    }
+
+    useEffect(() => {
+        fetchRecruit();
+    }, []);
+
+  return (
+    <div className="RecruitList">
+        {recruit}
+    </div>
+  );
+}
+
+export default RecruitList;
\ No newline at end of file