
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
`KalendraCalendar` is a themeable and customizable booking component built for managing events with features such as user-specific responses, event booking, with success and error handling. This component can be used in any React-based project and allows
KalendraCalendar is a themeable and customizable booking component built for managing events with features such as user-specific responses, event booking, with success and error handling. This component can be used in any React-based project and allows seamless integration with your application's and Kalendra scheduling platform.

To install the package, use npm or yarn:
npm install kalendra
# or
yarn add kalendra
Below is an example of how to use the KalendraCalendar component in your React application.
import { KalendraCalendar } from "kalendra";
import React, { useState } from "react";
import { useNavigate } from "react-router-dom";
import { KalendraCalendar } from "kalendra"; // Import the component
import { parentActions } from "./store/actions"; // Replace with actual path to your actions
const CalendarExample = ({
theme,
event_type_id,
kalendra_user_id,
userInfo,
metadata,
duration,
user,
}) => {
const navigate = useNavigate();
const [isSuccess, setIsSuccess] = useState(false);
return (
<KalendraCalendar
styles={{
border: theme.borders[1],
borderRadius: theme.radii[1],
}}
eventTypeId={event_type_id}
kalendra_user_id={kalendra_user_id}
onSuccess={onSuccess}
onError={onError}
responses={{
name: "name"
email: "example@gmail.com",
"phone-number": "12345678",
}}
duration={duration}
/>
);
};
export default CalendarExample;
The KalendraCalendar component accepts the following props:
styles (object) - Custom CSS styles for the calendar component (optional).
{ border: '1px solid #ccc', borderRadius: '8px' }eventTypeId (string) - The ID of the event type to be displayed in the calendar from the kalendra event types you created.kalendra_user_id (string) - The unique user ID associated with the kalendra user.onSuccess (function) - Callback function to be executed when the event is successfully added or processed.onError (function) - Callback function to be executed when there is an error during the event handling.responses (object) - To auto populate event questions if you have any.
{
name: 'John Doe',
email: 'johndoe@example.com',
'phone-number': '555-555-5555',
}
duration (number) - Duration of the event in minutes (optional) used to auto populate the event duration.LoadingIndicator (JSX) - (Optional) A custom loading component to be displayed while the calendar is loading.NoEventError (JSX) - (Optional) A custom component to be displayed when there are no events to display or when something goes wrong.responses Object:The responses object should contain necessary user and event data. It could look like this:
responses={{
name: userInfo?.user?.full_name || userInfo?.full_name || '',
email: userInfo?.user?.email || userInfo?.email || '',
'db-email': userInfo?.user?.email || userInfo?.email || '',
'profile-id': userInfo?.id || '',
'phone-number': userInfo?.user?.phone_number || user.phone_number || '',
'recording-consent-metadata': JSON.stringify(metadata || {}),
session_uuid: uuid4(),
}}
The onSuccess and onError callbacks allow you to handle the outcome of the calendar interaction:
onSuccess: Triggered when the calendar operation completes successfully. It’s a good place to dispatch state updates or trigger side effects like navigation.onError: Triggered if something goes wrong. You can use this callback to show an error message or handle any failures gracefully.onSuccess Usage:onSuccess={(response) => {
console.log(response);
setIsSuccess(true);
navigate?.();
}}
onError Usage:onError={(error) => {
console.log(error);
showToast({
message: 'Something went wrong',
type: 'error',
});
}}
styles prop allows for full customization of the calendar's border and radius using your app's theme. Simply pass an object with the desired CSS properties.duration should be passed as a number representing the duration of the event in minutes.uuid: Ensure you have the uuid library installed for generating unique session IDs.
npm install uuid
# or
yarn add uuid
react-redux: Used for dispatching actions (if you're using Redux).
npm install react-redux
# or
yarn add react-redux
react-router-dom: For navigation handling, if your application uses it.
npm install react-router-dom
# or
yarn add react-router-dom
// Example theme (Our dark theme)
// You can create your own theme by modifying this object
// And create dark or light as you like or any other theme
export const lightTheme = {
breakpoints: ["320px", "576px", "768px", "992px", "1200px", "1400px"],
colors: {
rootLoaderColor: "#ffa516", // The color of the loader when the KalendraCalander is initializing
background: "white",
border: "#cbd5e1",
lightGray: "#cbd5e1",
text: "black",
headCell: "black",
dayHoverBg: "#3b3b4f",
dayHoverText: "white",
daySelectedBg: "#1e293b",
daySelectedText: "#f8fafc",
dayDisabled: "#cbd5e1",
dayRangeMiddle: "#475569",
icon: "#475569",
transparent: "transparent",
dayBg: "#cbd5e1",
error: "#f87171",
},
};
This software is under a Commercial Software License.
📩 For licensing and inquiries, contact: humedessie@gmail.com
📄 See the full license in the LICENSE file.
FAQs
`KalendraCalendar` is a themeable and customizable booking component built for managing events with features such as user-specific responses, event booking, with success and error handling. This component can be used in any React-based project and allows
We found that kalendra demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.