Skip to main content

Overview

Calendar view displays your records on a calendar grid based on date fields, making it easy to visualize schedules, deadlines, events, and time-based data. Records appear as events on the calendar, and you can drag-and-drop to reschedule them.
Calendar view requires at least one Date or DateTime field in your table to map records to calendar dates.

When to Use Calendar View

Calendar view is ideal for:
  • Event management - Schedule and track events, meetings, or appointments
  • Project timelines - Visualize task deadlines and milestones
  • Content calendars - Plan blog posts, social media, or marketing campaigns
  • Scheduling - Manage bookings, reservations, or resource allocation
  • Deadline tracking - Monitor due dates and deliverables
  • Team availability - Track vacation days, time off, or shift schedules
  • Editorial planning - Coordinate publication dates and content releases

Configuration Options

Calendar view provides the following configuration options:

Calendar Range

Define which date field(s) to use for displaying records on the calendar:
PropertyTypeDescription
calendar_rangearrayArray of date field configurations
calendar_range[].fk_from_column_idstringID of the date/datetime field to use
Display records based on one date field:
{
  "calendar_range": [
    {
      "fk_from_column_id": "event_date_column_id"
    }
  ]
}
Use cases:
  • Task due dates
  • Event start dates
  • Publication dates
  • Appointment times

Cover Image

PropertyTypeDescription
fk_cover_image_col_idstringID of attachment column to display on calendar events
{
  "fk_cover_image_col_id": "attachment_column_id",
  "calendar_range": [
    {
      "fk_from_column_id": "event_date_column_id"
    }
  ]
}
Adding cover images to calendar events makes them more visually distinctive and easier to identify at a glance.

Working with Calendar View

Advanced Features

Multiple Date Fields

While the calendar range array supports multiple date fields, the typical use case is a single date field per calendar view. For complex scenarios:
  • Create separate calendar views for different date fields
  • Example: “Due Date Calendar” and “Start Date Calendar”
  • Switch between views to see different time perspectives

Filtering Calendar Events

Apply filters to show specific events:
  • Filter by any field (assignee, status, category, etc.)
  • Combine multiple filter conditions
  • Filtered events hide from calendar
  • Useful for creating focused views like “My Events” or “High Priority”
Example filters:
  • Status is “Confirmed” (hide tentative events)
  • Assigned to “Me” (show only my calendar)
  • Category is “Meeting” (show only meetings)
  • Priority is “High” (show critical deadlines)

Search Calendar

Find specific events quickly:
  • Use the search bar to filter events by text
  • Search works across all visible fields
  • Matching events remain on calendar
  • Non-matching events are hidden

Recurring Events

While not built-in, you can manage recurring events by:
  • Creating multiple records for each occurrence
  • Using automations to generate recurring instances
  • Filtering by a “Series ID” field to group related events
For true recurring event support, consider using external calendar integrations or webhooks to create event instances automatically.

Use Cases and Examples

Event Planning Calendar

{
  "calendar_range": [
    {
      "fk_from_column_id": "event_date_column_id"
    }
  ],
  "fk_cover_image_col_id": "event_poster_column_id"
}
Fields:
  • Event name (primary field)
  • Event date (DateTime)
  • Location
  • Event type (Single Select)
  • Attendee count
  • Status (Planned/Confirmed/Cancelled)

Content Publication Calendar

{
  "calendar_range": [
    {
      "fk_from_column_id": "publish_date_column_id"
    }
  ],
  "fk_cover_image_col_id": "featured_image_column_id"
}
Fields:
  • Article title (primary field)
  • Publish date (Date)
  • Author
  • Content type (Blog/Video/Podcast)
  • Platform (Website/Social/Email)
  • Status (Draft/Scheduled/Published)

Project Deadline Calendar

{
  "calendar_range": [
    {
      "fk_from_column_id": "due_date_column_id"
    }
  ]
}
Fields:
  • Task name (primary field)
  • Due date (Date)
  • Assignee
  • Project (Link to projects table)
  • Priority (Single Select)
  • Status (To Do/In Progress/Done)

Team Availability Calendar

{
  "calendar_range": [
    {
      "fk_from_column_id": "start_date_column_id"
    }
  ]
}
Fields:
  • Team member (primary field)
  • Start date (Date)
  • Type (Vacation/Sick/Training)
  • Status (Requested/Approved/Declined)
  • Notes

Marketing Campaign Calendar

{
  "calendar_range": [
    {
      "fk_from_column_id": "launch_date_column_id"
    }
  ],
  "fk_cover_image_col_id": "campaign_creative_column_id"
}
Fields:
  • Campaign name (primary field)
  • Launch date (DateTime)
  • Channel (Email/Social/Display)
  • Target audience
  • Budget
  • Status (Planning/Active/Completed)

Best Practices

Choose the Right Date Field - Select the most relevant date field for your use case. For tasks, use due dates; for events, use start dates.
Use DateTime for Specific Times - Use DateTime fields when exact times matter (meetings, appointments). Use Date fields for all-day events.
Color-Code Events - Add a Single Select field for categories or types, and use it to visually distinguish different kinds of events.
Keep Event Titles Concise - The primary field serves as the event title. Keep it short and descriptive for better calendar readability.
Create Multiple Calendar Views - Set up different calendar views for different purposes: one for deadlines, one for meetings, etc.
Date Changes Sync Everywhere - When you drag an event to a new date in Calendar view, the underlying record updates, and the change reflects in all other views immediately.

Performance Considerations

Calendar view is optimized for displaying many events:
  • Efficient rendering of month/week/day views
  • Lazy loading of events outside visible range
  • Cached calendar configurations
  • Fast drag-and-drop updates
For optimal performance:
  • Use filters to reduce the number of visible events
  • Avoid showing too many fields per event (2-3 maximum)
  • Archive old events to keep the calendar focused
  • Consider separate views for past vs. future events
Calendar view performs well with thousands of events, but consider using date range filters to focus on relevant time periods for the best user experience.

Sharing Calendar Views

Calendar views can be shared externally:
  • Create a shared view for public event calendars
  • Share team availability with external stakeholders
  • Publish content calendars for collaborators
  • Embed calendars in websites or portals
Use password protection and view-only permissions when sharing calendars publicly to protect sensitive information.

API Reference

Create a calendar view programmatically:
const calendarView = {
  fk_view_id: 'view_id',
  base_id: 'base_id',
  source_id: 'source_id',
  calendar_range: [
    {
      fk_from_column_id: 'date_column_id'
    }
  ],
  fk_cover_image_col_id: 'attachment_column_id',
  meta: {}
}
Update calendar view settings:
const updates = {
  fk_cover_image_col_id: 'new_attachment_column_id',
  calendar_range: [
    {
      fk_from_column_id: 'new_date_column_id'
    }
  ],
  meta: {
    custom_setting: 'value'
  }
}
Changing the calendar_range field restructures which records appear on the calendar and when, so choose your date fields carefully during setup.

Keyboard Shortcuts

ShortcutAction
TJump to today
Left ArrowPrevious period
Right ArrowNext period
MSwitch to month view
WSwitch to week view
DSwitch to day view
Ctrl/Cmd + FSearch events
EscClose event detail
Master keyboard shortcuts to navigate your calendar efficiently, especially when managing many events across different time periods.

Build docs developers (and LLMs) love