Need help with calendR?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

R-CoderDotCom
185 Stars 20 Forks MIT License 143 Commits 1 Opened issues

Description

Ready to print calendars with ggplot2

Services available

!
?

Need anything else?

Contributors list

# 213,441
R
HTML
Shell
ggplot2...
143 commits

calendR R package

Ready to print monthly and yearly calendars made with ggplot2

📅 The calendars will be created by default in the system locale. Change it with

Sys.setlocale(locale = "the_preferred_language")
.

📖 Check the full calendR package tutorial.

Index

Installation

GitHub

# Install the development version from GitHub:
# install.packages("devtools")
devtools::install_github("R-CoderDotCom/calendR")

CRAN

install.packages("calendR")

CRAN_Status_Badge CRAN_Downloads

Yearly calendar

library(calendR)
calendR() # Defaults to the current year

Calendar_2020

calendR(year = 2020,           # Year
        mbg.col = 2,           # Background color for the month names
        months.col = "white",  # Text color of the month names
        special.days = c(1, 50, 12, 125, 80,     # Color days of the year
                         99, 102, 205, 266, 360),
        special.col = "pink", # Color of the special.days
        months.pos = 0.5)     # Horizontal alignment of the month names

calendR

Monthly calendar

calendR(year = 2028, month = 1)

Calendar_January_2028

calendR(month = 7, year = 2022, 
        special.days = c(1, 5, 12, 28),       # Color days of the month
        text = "Visit\nhttps://r-coder.com/", # Add some text
        text.pos = c(1, 5, 12, 28))           # Where to add the text

calendar_july

Custom start and end date

calendR(from = "2020-09-01",  # Start date
        to = "2021-05-31",    # End date
        lty = 0,              # Line type
        title = "2020-2021",  # Title
        start = "M",          # Start on Mondays
        months.pos = 0)       # Left-align month names

imagen

Start of the week (Monday or Sunday)

# calendR(month = 1, start = "S") # Week starts on Sunday (default)
calendR(month = 1, start = "M")   # Week starts on Monday

Calendar_January_2020

Orientation ("landscape" or "portrait")

# calendR(year = 2021, orientation = "landscape") # Default
calendR(year = 2021, orientation = "portrait")

Specify the number of columns

The following will override the

orientation
argument:
calendR(year = 2021, ncol = 2) 

Calendar heatmap (Gradient)

calendR(year = 2021, special.days = 1:365,
        gradient = TRUE,        # Needed to create the heat map
        special.col = rgb(1, 0, 0, alpha = 0.6), # Higher color
        low.col = "white")                       # Lower color

Calendar_2021_GRADIENT

Gradient for certain days

# Data
my_data 

imagen

Gradient with two colors (GitHub version only)

# Data
team 

imagen

Add several events

# Vector of NA which length is the number of days of the year or month
myfills 

imagen

Colors order

The colors are displayed based on the levels of the factor of the categorical variable.

# Current order:
levels(factor(myfills)) # "Birthday" "Holidays"

#------

Way 1

#------ calendR(special.days = myfills, special.col = 3:2, # Change the order to match the desired colors legend.pos = "right")

#------

Way 2

#------

Desired order and colors

desired_order

custom_order

Several events with custom start and end dates

start_date 

imagen

Add week number (only on the GitHub development version)

calendR(year = 2021,
        week.number = TRUE,          # Adds the week number of the year for each week 
        week.number.col = "gray30",  # Color of the week numbers
        week.number.size = 8)        # Size of the week numbers

imagen

calendR(year = 2021,
        month = 2,
        week.number = TRUE,      # Adds the week number of the year for each week 
        week.number.col = 2,     # Color of the week numbers
        week.number.size = 14)   # Size of the week numbers

imagen

Add background image

calendR(mbg.col = 4,               # Background color for the month names
        months.col = "white",      # Text color of the month names
        special.days = "weekend",  # Color the weekends
        special.col = "lightblue", # Color of the special.days
        lty = 0,                   # Line type
        weeknames = c("Mo", "Tu",  # Week names
                      "We", "Th",
                      "Fr", "Sa",
                      "Su"),
        title.size = 30,   # Title size
        orientation = "p", # Portrait orientation
        start = "M",       # Start the week on Mondays
        bg.img = "https://i.pinimg.com/originals/10/1e/f6/101ef6a9e146b23de28fa2cd568ad17b.jpg")  # Image

Lunar calendar

calendR(month = 1,  
        lunar = TRUE,         # Add moons to monthly calendar
        lunar.col = "gray60", # Color of the non-visible area of the moon
        lunar.size = 7)       # Size of the moons

Lunar_Calendar

Save as PDF

# Defaults to A4 size
calendR(year = 2021, orientation = "portrait", pdf = TRUE)

Set a paper size (from A6 to A0)

calendR(year = 2021, orientation = "portrait", pdf = TRUE, papersize = "A6")

Specify a custom document name

calendR(year = 2021, orientation = "portrait", pdf = TRUE, doc_name = "My_calendar")

Further customization

Example 1

calendR(year = 2022,                             # Year
        mbg.col = 2,                             # Background color for the month names
        months.col = "white",                    # Text color of the month names
        special.days = c(1, 50, 12, 125, 80,     # Color days of the year
                          99, 102, 205, 266, 359),
        special.col = "pink",                    # Color of the special.days
        months.pos = 0.5,                        # Center the month names
        lty = 0,                                 # Line type
        weeknames = c("Mo", "Tu", "We", "Th",    # Week names
                      "Fr", "Sa","Su"), 
        bg.col = "#f4f4f4",                      # Background color
        title.size = 60,                         # Title size
        orientation = "p")                       # Orientation

Example 2

calendR(year = 2020,                        # Year
        month = 10,                         # Month
        title = "My calendar",              # Change the title
        subtitle = "Have a nice day",       # Add a subtitle (or motivational phrase)
        subtitle.col = 3,                   # Color of the subtitle
        weeknames = c("S", "M", "T", "W",   # Change week day names
                      "T", "F", "S"), 
        bg.col = "white",                   # Background color
        special.days = "weekend",           # Colorize the weekends (you can also set a vector of days)
        special.col = rgb(0, 0, 1, 0.15),   # Color of the special days
        text = "Running",                   # Add text (only for monthly calendars)
        text.pos = c(7, 14, 25))            # Days of the month where to put the texts       


Custom_colors

Example 3

calendR(from = "2020-09-01", # Custom start date
        to = "2021-05-31",   # Custom end date
        mbg.col = 4,               # Background color for the month names
        months.col = "white",      # Text color of the month names
        special.days = "weekend",  # Color the weekends
        special.col = "lightblue", # Color of the special.days
        lty = 0,                   # Line type
        weeknames = c("Mo", "Tu",  # Week names
                      "We", "Th",
                      "Fr", "Sa",
                      "Su"),
        bg.col = "#f4f4f4",         # Background color
        title = "Academic calendar 2020-2021", # Title
        title.size = 30,                       # Title size
        orientation = "p", # Portrait orientation
        start = "M")       # Start of the week
# See all the arguments of the function for full customization of the colors, text size and style.

Example 4

Sys.setlocale(locale = "English")
calendR(month = 10,  # Month
        start = "M", # Week starts on Monday
        orientation = "landscape", # Horizontal

    # Size and color of the title
    title.size = 40,
    title.col = "white",

    weeknames = c("MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"),
    # Subtitle, color y and size
    subtitle = "I WITCH YOU A HAPPY HALLOWEEN",
    subtitle.col = "red",
    subtitle.size = 16,

    # Text, color, size and position
    text = "HALLOWEEN",
    text.col = "red",
    text.size = 5,
    text.pos = 31,

    # Color the weekends with gray
    special.days = "weekend",
    special.col = "grey40",

    # Color of the lines, of the background
    # and of the days
    col = "white",
    bg.col = "grey20",
    low.col = "transparent", # The same color as the background

    # Color and size of the number of the days
    days.col = "white",
    day.size = 4,

    # Moon phases and moon sizes
    lunar = TRUE,
    lunar.size = 8,
    lunar.col = "red",

    # Color and size of the week names
    weeknames.col = "white",
    weeknames.size = 6,

    # Width and line types
    lwd = 0.25,
    lty = 1,

    # Background image
    bg.img = "https://user-images.githubusercontent.com/67192157/94996404-cdc5cd80-05a4-11eb-97cb-84a195d9138c.png",

    # Font family and font styles
    font.family = "CF Halloween",   # You will need to download and import the font with the extrafont package
    font.style = "plain",
    pdf = TRUE,
    doc_name = "halloween")

halloween

Example 5

calendR(month = 12,
        start = "M",
        subtitle = "Merry Christmas!",
        subtitle.col = "white", lwd = 0.4,
        title.size = 70, 
        subtitle.size = 40,
        day.size = 9,
        weeknames.size = 10,
        special.col = rgb(0.2, 0.2, 0.2, 0.2),
        days.col = "white",
        title.col = "white",
        bg.col = "red",
        low.col = "transparent",
        col = "white",
        special.days = c(5, 6, 12, 13, 19, 20, 25, 26, 27, 31),
        bg.img = "https://user-images.githubusercontent.com/67192157/100520172-b23e0400-319c-11eb-98a8-10fdc95006fe.png",
        weeknames.col = "white",
        font.family = "perfect",  # https://www.dafont.com/es/the-perfect-christmas.font
        pdf = TRUE)

Christmas_calendar

calendR(month = 12,
        start = "M",
        subtitle = "Merry Christmas!",
        subtitle.col = "gray40",
        lwd = 0.4,
    title.size = 70,
        subtitle.size = 40,
        day.size = 9,
        weeknames.size = 10,
    special.days = "weekend",
        special.col = rgb(1, 1, 1, 0.1),
        days.col = "gray20",
    title.col = "gray30",
        bg.col = "gray40",
        low.col = "transparent",
        col = "gray50",
    weeknames.col = "gray20",
        bg.img = "https://user-images.githubusercontent.com/67192157/100520175-b4a05e00-319c-11eb-8733-af9f20b674c8.png",
        font.family = "perfect", # https://www.dafont.com/es/the-perfect-christmas.font
        pdf = TRUE)

Christmas_calendar_2020

Example 6

windows(210, 297)

Dancing Script Font

library(showtext) font_add_google(name = "Dancing Script",
family = "dancing") showtext_auto()

Sys.setlocale(locale = "English")

Landscape background: https://user-images.githubusercontent.com/67192157/103295646-aee4a500-49f4-11eb-8c5f-2857a7ee13f2.png

calendR(2021, subtitle = NULL, mbg.col = "#73b7fb",
months.col = "white",
special.days = "weekend", title.col= "#103a63", weeknames.col= "#103a63", days.col = "#14487c", special.col = "#d7eafd", lty = 0,
monthnames = c("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"), font.family = "dancing",
weeknames.size = 6,
week.number = TRUE, week.number.col = "#73b7fb", weeknames = c("Mo", "Tu",
"We", "Th", "Fr", "Sa", "Su"),
title.size = 40,
months.size = 15,
orientation = "p", bg.img = "https://user-images.githubusercontent.com/67192157/103295110-9031de80-49f3-11eb-88b9-52e9dd0dc4ea.png", day.size = 3.25, papersize = "A4", start = "M")

Calendar 2021

Example 7

library(showtext)

https://www.dafont.com/es/cat-paw.font

font_add(family = "Cat", regular = "Cat paw.ttf")

windows(8.27,11.7)

showtext_auto()

calendR(2021, font.family = "Cat", subtitle="", bg.img = "https://user-images.githubusercontent.com/67192157/103364654-a8226480-4abe-11eb-8c2f-9eaa27ed543e.png", mbg.col = "#b29a8e", bg.col = "#faf4ef",
months.col = "white",
title.col="#7c6b63", days.col="#6a5c55", weeknames.col = "#7c6b63", special.days = "weekend", special.col = "#f0dbca", lty = 0,
monthnames = c("January", "February", "March", "Aprrrril", "May", "June", "July", "August", "September", "October", "November", "December"),
weeknames.size = 7,
week.number = TRUE, week.number.col = "#d4bbb4", weeknames = c("Mo", "Tu","We", "Th","Fr", "Sa","Su"),
title.size = 50,
months.size = 24,
orientation = "p",
day.size = 4.5, start = "M")

Calendar 2021

library(showtext)

https://www.dafont.com/es/cat-paw.font

font_add(family = "Cat", regular = "Cat paw.ttf")

windows(11.7, 8.27)

showtext_auto()

calendR(2021, font.family = "Cat", subtitle = "", bg.img = "https://user-images.githubusercontent.com/67192157/103365300-10be1100-4ac0-11eb-81f1-f06232101cba.png", mbg.col = "#b29a8e", bg.col = "#faf4ef",
months.col = "white",
title.col="#7c6b63", days.col="#6a5c55", weeknames.col = "#7c6b63", special.days = "weekend", special.col = "#f0dbca", lty = 0,
monthnames = c("January", "February", "March", "Aprrrril", "May", "June", "July", "August", "September", "October", "November", "December"),
weeknames.size = 7,
week.number = TRUE, week.number.col = "#d4bbb4", weeknames = c("Mo", "Tu","We", "Th","Fr", "Sa","Su"),
title.size = 50,
months.size = 24,
orientation = "l",
day.size = 4.5, start = "M")

Calendar 2021

Social Media

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.