⚡ XActions
📖 Guides & Reference

📅 Content Calendar

Visual drag-and-drop content calendar for planning, scheduling, and managing posts. Competes with Hypefury, Buffer, and Hootsuite.


Overview

The Content Calendar provides a full visual interface for content planning:

  • Month view — see all scheduled posts at a glance
  • Color-coded events — tweet (blue), thread (purple), repost (green)
  • Click to create — click any date to add a post
  • Event management — edit, reschedule, or delete events
  • LocalStorage persistence — data saved across browser sessions
  • Quick navigation — month-by-month with today highlight

Accessible at: /calendar in the dashboard.


Features

Create Events

Click any day cell to open the event creator:

Field Options
Title Free text — your post content or label
Type tweet, thread, repost
Time HH:MM time picker

Visual Indicators

Color Type
🔵 Blue Tweet
🟣 Purple Thread
🟢 Green Repost
  • ← → arrows for previous/next month
  • Today button jumps to current date
  • Current day highlighted with accent ring
  • Weekday headers (Mon–Sun)

Integration with Scheduler

Events created in the calendar can be linked to the cron scheduler:

import { getScheduler } from 'xactions/src/scheduler/scheduler.js';

const scheduler = getScheduler();
scheduler.addJob({
  name: 'calendar-post-1',
  cron: '0 14 25 2 *',  // Feb 25 at 2 PM
  command: 'post',
  args: ['My scheduled tweet! 🚀']
});

Architecture

dashboard/calendar.html → Full-page calendar UI
src/scheduler/
├── scheduler.js        → Backend scheduling engine
└── webhookTrigger.js   → External trigger support

Data Storage

Calendar events are stored in localStorage under the key xactions-calendar-events:

[
  {
    "id": "evt_1708905600000",
    "title": "Launch announcement thread",
    "type": "thread",
    "date": "2026-02-25",
    "time": "14:00"
  }
]

API Integration

The calendar UI connects to the scheduler API for server-side persistence:

# Create a scheduled post
POST /api/schedule
{
  "name": "calendar-feb-25-post",
  "cron": "0 14 25 2 *",
  "action": "post"
}

# List scheduled posts
GET /api/schedule

Dashboard Access

Navigate to /calendar or click "Calendar" in the sidebar navigation.

The calendar uses responsive CSS grid and works on desktop and tablet viewports.

⚡ Free and open source

No API keys, no monthly fees, no signup. Star the repo if it saved you a subscription.

View on GitHub