Currently only works in Shiny applications.

set_events(
  cal,
  afterRenderSchedule = NULL,
  beforeCreateSchedule = NULL,
  beforeDeleteSchedule = NULL,
  beforeUpdateSchedule = NULL,
  clickDayname = NULL,
  clickMorecalendar = NULL,
  clickSchedule = NULL,
  clickTimezonesCollapseBtncalendar = NULL
)

Arguments

cal

A calendar htmlwidget object.

afterRenderSchedule

Fire this event by every single schedule after rendering whole calendar.

beforeCreateSchedule

Fire this event when select time period in daily, weekly, monthly.

beforeDeleteSchedule

Fire this event when delete a schedule.

beforeUpdateSchedule

Fire this event when drag a schedule to change time in daily, weekly, monthly.

clickDayname

Fire this event when click a day name in weekly.

clickMorecalendar

Fire this event when click a schedule.

clickSchedule

Fire this event when click a schedule.

clickTimezonesCollapseBtncalendar

Fire this event by clicking timezones collapse button.

Value

A calendar htmlwidget object.

Note

All arguments must be JavaScript function with JS.

Examples

if (interactive()) { library(shiny) 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") ) ui <- fluidPage( tags$h2("Custom click event"), calendarOutput(outputId = "cal") ) server <- function(input, output, session) { output$cal <- renderCalendar({ input$refresh 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], body = paste("Body schedule", 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 ) calendar(defaultView = "month", taskView = TRUE, scheduleView = c("time", "allday")) %>% set_calendars_props_df(df = calendarProps) %>% add_schedule_df(df = schedules) %>% set_events( clickSchedule = JS("function(event) {alert(event.schedule.id);}") ) }) } shinyApp(ui, server) }