diff --git a/src/components/GoogleCalendar.astro b/src/components/GoogleCalendar.astro new file mode 100644 index 000000000..2f7571552 --- /dev/null +++ b/src/components/GoogleCalendar.astro @@ -0,0 +1,62 @@ +--- +// GoogleCalendar.astro +export interface Props { + calendarId?: string; + height?: string; + width?: string; + title?: string; + showTitle?: boolean; + showPrint?: boolean; + showTabs?: boolean; + showCalendars?: boolean; + showTz?: boolean; + mode?: 'WEEK' | 'MONTH' | 'AGENDA'; + backgroundColor?: string; + dates?: string; +} + +const { + calendarId = "c_b87075b29cf4a9dd4da3fe724fcba92a4b406aa3f91cb7e7ce50fede43215b17@group.calendar.google.com", + height = "600", + width = "800", + title = "My Calendar", + showTitle = true, + showPrint = true, + showTabs = true, + showCalendars = true, + showTz = false, + mode = "MONTH", + backgroundColor = "%23000000", + dates = "20250714/20250720" +} = Astro.props; + +// Construct the embed URL +const embedUrl = `https://calendar.google.com/calendar/embed?src=${encodeURIComponent(calendarId)}&dates=${dates}&ctz=Europe%2FPrague&mode=${mode}&height=${height}&wkst=2&bgcolor=${backgroundColor}&showTitle=${showTitle ? 1 : 0}&showPrint=${showPrint ? 1 : 0}&showTabs=${showTabs ? 1 : 0}&showCalendars=${showCalendars ? 1 : 0}&showTz=${showTz ? 1 : 0}`; + +// Mobile-specific embed URL for agenda view +const mobileEmbedUrl = `https://calendar.google.com/calendar/embed?src=${encodeURIComponent(calendarId)}&dates=${dates}&ctz=Europe%2FPrague&mode=AGENDA&height=400&wkst=2&bgcolor=${backgroundColor}&showTitle=0&showPrint=0&showTabs=0&showCalendars=0&showTz=0`; +--- + +
+ + + + + +
diff --git a/src/content/pages/open-spaces.md b/src/content/pages/open-spaces.mdx similarity index 96% rename from src/content/pages/open-spaces.md rename to src/content/pages/open-spaces.mdx index 4942bf48c..7b860159a 100644 --- a/src/content/pages/open-spaces.md +++ b/src/content/pages/open-spaces.mdx @@ -24,6 +24,14 @@ serves to attract potential participants interested in joining. Check the [Open Spaces schedule ↗️!](https://calendar.google.com/calendar/u/0?cid=Y19iODcwNzViMjljZjRhOWRkNGRhM2ZlNzI0ZmNiYTkyYTRiNDA2YWEzZjkxY2I3ZTdjZTUwZmVkZTQzMjE1YjE3QGdyb3VwLmNhbGVuZGFyLmdvb2dsZS5jb20) + + ## How to Organise an Open Space To organise your own Open Space session, simply book a free time slot and room diff --git a/src/pages/[...slug].astro b/src/pages/[...slug].astro index 062bddb90..d6e100f90 100644 --- a/src/pages/[...slug].astro +++ b/src/pages/[...slug].astro @@ -16,6 +16,7 @@ import Center from "@components/markdown/Center.astro"; import EPSLogo from "@components/markdown/EPSLogo.astro"; import ProfileCard from "@components/profile/ProfileCard.astro"; import SpeakerCard from "@components/profile/SpeakerCard.astro"; +import GoogleCalendar from '@components/GoogleCalendar.astro'; import Prose from "@ui/Prose.astro"; @@ -67,7 +68,8 @@ const description = post.data.subtitle; hr: Separator, Accordion, ProfileCard, - SpeakerCard + SpeakerCard, + GoogleCalendar }} /> diff --git a/src/pages/_test_components.astro b/src/pages/_test_components.astro index c01c8bc38..69d2e253d 100644 --- a/src/pages/_test_components.astro +++ b/src/pages/_test_components.astro @@ -1,6 +1,6 @@ --- -import Layout from "@layouts/Layout.astro"; +import Layout from "@layouts/SectionLayout.astro"; import Button from "@ui/Button.astro"; import Headline from "@ui/Headline.astro" import Icon from "@ui/Icon.astro" @@ -17,7 +17,8 @@ import Icon from "@ui/Icon.astro" -
+ +Key Features
@@ -28,9 +29,7 @@ import Icon from "@ui/Icon.astro"
-
-
@@ -49,5 +48,4 @@ import Icon from "@ui/Icon.astro"
-