Calendar Pro for HubSpot

A full-featured event calendar with month, week, day, and timeline views. Categories, search, speaker details, popup overlays, timezone support, and complete style control from the editor.

Demo 1 — Week View

Company Offsite Schedule

Week view with Monday-Friday company activities. Multiple overlapping events, team dinners, workshops, and presentations across 5 days.

Team Offsite 2026

March 24-28 · Barcelona

Demo 2 — Calendario en Español

Calendario de Eventos

Month view with full Spanish locale. Month and day names auto-translated. All UI labels in Spanish via content fields. Shows locale support for international sites.

Próximos Eventos

Conferencias, talleres y seminarios web para equipos de producto y diseño

Demo 3 — Day View

Conference Day Schedule — Dark Mode

Day view in dark mode with Poppins font. Same calendar, completely different look — just by changing the style fields. Deep navy background with accent red.

Spring Conference — Day 1

April 15, 2026 · Main Venue

Demo 4 — Timeline View

Multi-Track Conference Schedule

Timeline view with horizontal time axis and track rows for parallel sessions. Events span their time range as horizontal blocks within their assigned track. Ideal for conferences, workshops, and multi-room events.

DevConf 2026 Schedule

June 12, 2026 · Convention Center

What Calendar Pro Does

Calendar Pro is a full-featured event calendar module for HubSpot. It renders events in four distinct views — month, week, day, and timeline — each fully styled and responsive. Visitors can browse dates, search events, filter by category, and open detailed event popups. Everything is configured from the HubSpot editor with zero code required.

Month View

Traditional calendar grid showing the entire month. Events appear as color-coded pills on their respective dates. Days with more events than can fit show a "+N more" overflow link. Today is highlighted. Click any event pill to open the detail popup.

Week View

Seven-column time grid with a vertical time axis from the configured start to end hour. Events render as positioned blocks based on their start and end times. All-day events appear in a separate row above the time grid. A red line marks the current time.

Day View

Single-column time grid for one day. Same time axis as week view but with more room for event details. Ideal for days with many overlapping events.

Timeline View

Conference-style schedule with horizontal tracks (e.g., "Main Stage", "Workshop Room"). Events are placed in their assigned track as blocks across a horizontal time axis. Best for multi-track conferences and all-day event programs.


Event Management

Events are managed through a repeater field in the Content tab. Each event has the following fields:

  • Title — event name displayed on calendar pills and popup header
  • Start date — the date the event occurs (YYYY-MM-DD format)
  • Start time / End time — time range for timed events (HH:MM format, 24h)
  • All day — toggle for full-day events that skip the time fields
  • Category — links to a category defined in the categories repeater
  • Location — free text for venue name and address
  • Speaker name and role — optional speaker attribution
  • Speaker photo — optional headshot shown in the popup
  • Description — rich text body content for the popup detail view
  • CTA text and URL — optional button in the popup (register, RSVP, etc.)
  • Track — assigns the event to a track for timeline view

Category System

Categories are defined in a separate repeater with three fields per category: a slug (used as the identifier), a display name (shown in legends and popups), and a color value (hex). Event pills on the calendar inherit their category color automatically. The category legend can be positioned above or below the calendar and toggled independently.

Filter by category using the legend pills — clicking a category shows only events in that category. Click "All" to reset the filter. Categories with no events for the current view are dimmed automatically.


Conference / Timeline Mode

Enable the timeline view from the Settings tab. Define tracks in the tracks repeater — each track has a slug and display name. Assign events to tracks using the track field. The timeline view renders a horizontal time axis with track lanes stacked vertically. Events without a track assignment appear in the first track by default.

Timeline view is ideal for multi-room conferences, workshop schedules, and any scenario where parallel sessions need to be visualized side by side.


Popup Details

Clicking any event opens a contextual popover positioned near the clicked event (Google Calendar style). The popup shows a colored accent bar, event title, date and time, category badge, location with icon, speaker card with photo, rich text description, and CTA button. The popup closes on outside click (configurable), Escape key, or the close button. Popups scroll with the calendar and stay anchored to their event.


Language and Locale

Set the locale field in Settings to any language code (e.g. es, fr, de, zh, ja, ro) and all month names, day names, and date formatting automatically translate via the browser Intl API. Leave empty to use the visitor browser language. All UI labels (Today, Month, Week, Day, search placeholder, category names) are separate text fields you can set to any language.


Timezone Support

Set a base timezone for your events in the Settings tab. When "Show visitor local time" is enabled, times automatically convert to the visitor local timezone with a badge indicating the detected zone. All timezone conversions happen client-side using the Intl API.


100+ Style Fields

Every visual property is controlled from the Style tab in the HubSpot editor. Nothing is hardcoded in the module CSS.

  • Container — max width, horizontal padding, border radius, box shadow
  • Colors — 22 color fields covering background, header, grid lines, today highlight, current time indicator, event pills, popup (background, overlay, text, secondary text), CTA button (default + hover), navigation arrows, day numbers (active + muted), header text, and search input (background, text, border)
  • Typography — base font picker (Google Fonts), plus individual size controls for header, day numbers, event pills, time axis labels, popup title, popup body, and view tabs
  • Borders — container radius, event pill radius, popup radius, grid border style, header border width
  • Spacing — calendar inner padding, event pill padding (horizontal + vertical), day cell minimum height, time slot height (week/day views), event gap
  • Shadows — container shadow, event pill shadow, popup shadow, event hover scale factor
  • Responsive — configurable tablet and mobile breakpoints. On mobile the calendar scrolls horizontally with a 600px minimum width instead of squeezing content.

All color fields support full opacity control, making dark mode possible by simply adjusting the color values in the Style tab. No special dark mode toggle needed — the same fields that make a light calendar also make a dark one.


Technical Details

  • Zero dependencies — vanilla JavaScript with no jQuery, no external libraries, no CDN calls
  • Accessible — ARIA labels on navigation controls, role attributes on interactive elements, keyboard navigation for date cells and event popups, focus trapping in the popup overlay, Escape key to close
  • Performant — events are indexed by date on initialization for O(1) lookups during rendering. View switches re-render only the calendar body, not the entire module. No layout thrashing.
  • Instance isolation — all CSS scoped with a unique instance ID. Multiple Calendar Pro modules on the same page work independently with zero style conflicts
  • Any template — works on website pages, landing pages, blog listings, and blog posts. No theme dependency. The module includes its own complete stylesheet.
  • Timezone-safe — uses the browser Intl.DateTimeFormat API for locale-aware date formatting and timezone conversion. No moment.js or date-fns required.