diff --git a/src/assets/images/arrow-left.svg b/src/assets/images/arrow-left.svg
new file mode 100644
index 0000000..c74b2f2
--- /dev/null
+++ b/src/assets/images/arrow-left.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/images/arrow-right.svg b/src/assets/images/arrow-right.svg
new file mode 100644
index 0000000..3ee986d
--- /dev/null
+++ b/src/assets/images/arrow-right.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/images/event-block-bg.svg b/src/assets/images/event-block-bg.svg
new file mode 100644
index 0000000..341b097
--- /dev/null
+++ b/src/assets/images/event-block-bg.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/images/group.svg b/src/assets/images/group.svg
new file mode 100644
index 0000000..ba66cbe
--- /dev/null
+++ b/src/assets/images/group.svg
@@ -0,0 +1,16 @@
+
diff --git a/src/assets/images/guide-outline.svg b/src/assets/images/guide-outline.svg
new file mode 100644
index 0000000..5558a22
--- /dev/null
+++ b/src/assets/images/guide-outline.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/assets/images/lightning-outline.svg b/src/assets/images/lightning-outline.svg
new file mode 100644
index 0000000..c657333
--- /dev/null
+++ b/src/assets/images/lightning-outline.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/images/stall-outline.svg b/src/assets/images/stall-outline.svg
new file mode 100644
index 0000000..2ea6c65
--- /dev/null
+++ b/src/assets/images/stall-outline.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/images/union.svg b/src/assets/images/union.svg
new file mode 100644
index 0000000..22be503
--- /dev/null
+++ b/src/assets/images/union.svg
@@ -0,0 +1,6 @@
+
diff --git a/src/assets/scss/agenda.scss b/src/assets/scss/agenda.scss
new file mode 100644
index 0000000..efe9cc4
--- /dev/null
+++ b/src/assets/scss/agenda.scss
@@ -0,0 +1,17 @@
+#agenda {
+ margin: 0 auto;
+ max-width: 1200px;
+
+ div.event.container {
+ display: grid;
+ grid-template-columns: min-content repeat(6, 1fr) min-content;
+ grid-template-rows: 1fr;
+ column-gap: 30px;
+
+ img.arrow {
+ margin: auto;
+ width: auto;
+ height: calc(99/217 * 100%);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/eventblock.scss b/src/assets/scss/eventblock.scss
new file mode 100644
index 0000000..3585457
--- /dev/null
+++ b/src/assets/scss/eventblock.scss
@@ -0,0 +1,105 @@
+@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+TC&display=swap');
+
+.event.block {
+ position: relative;
+ height: 100%;
+
+ display: inline-flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+
+ font-size: 24px;
+ line-height: 1.44;
+ font-family: 'Noto Serif TC', serif;
+ font-weight: bold;
+
+ .background {
+ width: 100%;
+ height: auto;
+ }
+
+ .inner {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ padding: .75em;
+
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+
+ text-align: center;
+ text-decoration: none;
+ color: white;
+
+ span {
+ white-space: pre;
+ z-index: 1;
+ }
+
+ i.icon {
+ position: absolute;
+ z-index: 0;
+ scale: 0.75;
+
+ &::before {
+ width: 100%;
+ height: 100%;
+ display: block;
+ content: '';
+ background-size: contain;
+ background-repeat: no-repeat;
+ }
+
+ // different size for each icon
+ &.union {
+ width: 65px;
+ height: 79px;
+
+ &::before {
+ background-image: url('../assets/images/union.svg');
+ }
+ }
+
+ &.stall-outline {
+ width: 61px;
+ height: 62px;
+
+ &::before {
+ background-image: url('../assets/images/stall-outline.svg');
+ }
+ }
+
+ &.group {
+ width: 100px;
+ height: 85px;
+
+ &::before {
+ background-image: url('../assets/images/group.svg');
+ }
+ }
+
+ &.lightning-outline {
+ margin-top: 10px;
+ width: 37px;
+ height: 78px;
+
+ &::before {
+ background-image: url('../assets/images/lightning-outline.svg');
+ }
+ }
+
+ &.guide-outline {
+ margin-right: 40px;
+ width: 74px;
+ height: 95px;
+
+ &::before {
+ background-image: url('../assets/images/guide-outline.svg');
+ }
+ }
+ }
+ }
+
+}
diff --git a/src/components/EventBlock.vue b/src/components/EventBlock.vue
new file mode 100644
index 0000000..f4dcfa1
--- /dev/null
+++ b/src/components/EventBlock.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+ {{ newlineText }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/Agenda.vue b/src/pages/Agenda.vue
index cb40fb6..bd2cc0e 100644
--- a/src/pages/Agenda.vue
+++ b/src/pages/Agenda.vue
@@ -1,11 +1,30 @@
+
+
+

+
+
+
+
+
+
+

+
+
-
\ No newline at end of file
+
+
\ No newline at end of file