Components / Content Generation

AI Content Calendar

A content calendar with AI-suggested posting schedules, topic ideas, and content type recommendations.

Live Preview — ai-content-calendar-01

AI Strategy Feed

Blog

Mon, 10:00 AM

Future of AI UI

Suggested

Social

Tue, 2:00 PM

Showcase: Data Viz

Published

Email

Fri, 9:00 AM

Monthly AI Digest

Scheduled

Installation

Dependencies

Install the core libraries required for this component.

npm
npm install react lucide-react

Source Code

ai-content-calendar-01.tsx
"use client";

import React from "react";
import { Calendar, Sparkles, Clock, MoreHorizontal } from "lucide-react";

const events = [
    { id: "1", type: "Blog", title: "Future of AI UI", status: "Suggested", time: "Mon, 10:00 AM" },
    { id: "2", type: "Social", title: "Showcase: Data Viz", status: "Published", time: "Tue, 2:00 PM" },
    { id: "3", type: "Email", title: "Monthly AI Digest", status: "Scheduled", time: "Fri, 9:00 AM" },
];

export default function AIContentCalendar() {
    return (
        <div className="rounded-xl border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-950 p-6 shadow-sm w-full max-w-sm mx-auto">
            <div className="flex items-center justify-between mb-8">
                <div className="flex items-center gap-2">
                    <Calendar className="h-4 w-4 text-blue-500" />
                    <h3 className="text-sm font-bold text-zinc-900 dark:text-zinc-100 tracking-tight">AI Strategy Feed</h3>
                </div>
                <button className="p-2 rounded-lg bg-blue-500/10 text-blue-600 lg:animate-pulse">
                    <Sparkles className="h-3.5 w-3.5" />
                </button>
            </div>

            <div className="space-y-4">
                {events.map((e) => (
                    <div key={e.id} className="group relative flex items-start gap-4 p-3 rounded-xl border border-zinc-100 dark:border-zinc-800 bg-zinc-50/30 dark:bg-zinc-900/30 hover:bg-white dark:hover:bg-zinc-800 transition-all hover:shadow-lg hover:shadow-zinc-200/20 dark:hover:shadow-black">
                        <div className="pt-1">
                            <div className={`h-2 w-2 rounded-full ${e.status === "Published" ? "bg-emerald-500" : e.status === "Scheduled" ? "bg-blue-500" : "bg-amber-500"
                                }`} />
                        </div>
                        <div className="flex-1 min-w-0">
                            <div className="flex items-center justify-between mb-1">
                                <p className="text-[10px] font-black uppercase tracking-[0.2em] text-zinc-400">{e.type}</p>
                                <span className="text-[9px] font-bold text-zinc-400 flex items-center gap-1">
                                    <Clock className="h-2.5 w-2.5" />
                                    {e.time}
                                </span>
                            </div>
                            <h4 className="text-sm font-bold text-zinc-900 dark:text-zinc-100 leading-tight mb-2">{e.title}</h4>
                            <div className="flex items-center justify-between">
                                <span className={`text-[9px] font-bold px-1.5 py-0.5 rounded ${e.status === "Published" ? "bg-emerald-100 text-emerald-600 dark:bg-emerald-900/30 dark:text-emerald-400" :
                                        e.status === "Scheduled" ? "bg-blue-100 text-blue-600 dark:bg-blue-900/30 dark:text-blue-400" :
                                            "bg-amber-100 text-amber-600 dark:bg-amber-900/30 dark:text-amber-400"
                                    }`}>
                                    {e.status}
                                </span>
                                <button className="opacity-0 group-hover:opacity-100 transition-opacity">
                                    <MoreHorizontal className="h-3.5 w-3.5 text-zinc-400" />
                                </button>
                            </div>
                        </div>
                    </div>
                ))}
            </div>
        </div>
    );
}

Functional Logic

Internal functions used to handle component logic.

Function Parameters
AIContentCalendar() None

Variables

All variable declarations found in this component.

Name Kind Value
events const [

JSX Tags Usage

Every JSX/HTML tag used in this component, with usage count and source.

Tag Count Type Source
<Calendar> Library lucide-react
<Clock> Library lucide-react
<MoreHorizontal> Library lucide-react
<Sparkles> Library lucide-react
<button> Native Native HTML
<div> 10× Native Native HTML
<h3> Native Native HTML
<h4> Native Native HTML
<p> Native Native HTML
<span> Native Native HTML

Related Components

  • AI Text Generator — A text generation interface with tone selector, length control, and real-time AI-powered content creation.
  • AI Image Prompt Builder — A guided image prompt builder with style presets, aspect ratio selector, and negative prompt support.
  • AI Content Rewriter — A before/after content rewriter showing original text alongside AI-improved versions with diff highlighting.
  • AI Summarizer Card — A document summarization card with adjustable summary length, key points extraction, and bullet-point output.
  • AI Translation Panel — A translation panel with language detection, multi-language output, and side-by-side comparison view.
  • AI Code Generator — A code generation interface with language selector, framework presets, and syntax-highlighted output.