# ------------------------------------------------------------------------
#
# Title : Calendar examples : HTML in popup
# By : Victor
# Date : 2019-10-06
#
# ------------------------------------------------------------------------
# Packages ----------------------------------------------------------------
library(tuicalendr)
library(htmltools)
# Datas -------------------------------------------------------------------
calendarProps <- data.frame(
id = c("1", "2", "3"),
name = c("TODO", "Meetings", "Tasks"),
color = c("#FFF", "#FFF", "#000"),
bgColor = c("#E41A1C", "#377EB8", "#4DAF4A"),
borderColor = c("#a90000", "#005288", "#0a7f1c")
)
n <- 20
date_start <- sample(
seq(from = as.POSIXct(Sys.Date()-14), by = "1 hour", length.out = 24*7*4),
n, TRUE
)
date_end <- date_start + sample(1:25, n, TRUE) * 3600
schedules <- data.frame(
id = 1:n,
calendarId = as.character(sample(1:3, n, TRUE)),
title = LETTERS[1:n],
start = format(date_start, format = "%Y-%m-%dT%H:%00:%00"),
end = format(date_end, format = "%Y-%m-%dT%H:%00:%00"),
category = sample(c("allday", "time", "task"), n, TRUE),
stringsAsFactors = FALSE
)
make_body <- function(title) {
doRenderTags(tags$div(
tags$h3("Title for", title),
tags$p(
"Yan can write", tags$em("custom"), tags$b("HTML"),
"in a popup !"
),
tags$p(
style = "color: firebrick;",
"For example write in red !"
),
tags$ul(
tags$li("Or make a bullet list!"),
tags$li("With another item"),
tags$li("And one more")
)
))
}
schedules$body <- unlist(lapply(schedules$title, make_body))
# Calendar ----------------------------------------------------------------
calendar(defaultView = "month", taskView = TRUE, scheduleView = c("time", "allday")) %>%
set_calendars_props_df(df = calendarProps) %>%
add_schedule_df(df = schedules)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.