Sync your personal calendar to your work calendar, privately 🐒

Overview

Callibella 🐒

It is considered unusual among Callibella in that it gives birth to only a single baby instead of twins, the norm for Callibella. Wikiepdia

Callibella was created under the assumption that it's normal for humas to have two calendars - one personal calendar that goes with them for years, and one work calendar. Your work calendar might be shared with others in the company, making it easy for others to book meetings with you by simply checking when you're free. However, this goes wrong when important personal events are missing from your work calendar.

Callibella reads your personal calendar and then connects to your work calendar and generates matching events. It doesn't reveal the content of your events - every event coming from your personal calendar will show up as "Busy" only, without description or location. Callibella will keep this event in sync with the original personal event, updating it's time or deleting it if nescasery.

Configuration

Callibella makes heavy use of tsdav to configure your source and destination calendars. Check tsdav's documentation for complete details. Below is an example of my ~/.config/callibella/config.json:

{
  "timeRange": {
    "daysInPast": 7,
    "daysInFuture": 180
  },
  "source": {
    "connection": {
      "serverUrl": "https://calendar.zoho.com/",

      "credentials": {
        "username": "[email protected]",
        "password": "correcthorsebatterystaple"
      },
      "authMethod": "Basic",
      "defaultAccountType": "caldav"
    },
    "calendar": "my-calendar-display-name"
  },
  "destination": {
    "connection": {
      "serverUrl": "https://oauth-hopper.example.com/caldav/v2/[email protected]/user/",

      "credentials": {
        "username": "me",
        "password": "Tr0ub4dor&3"
      },
      "authMethod": "Basic",
      "defaultAccountType": "caldav"
    },
    "calendar": "[email protected]"
  }
}
  • timeRange will define the range of dates in which Callibella would sync things.
  • source.connection is the same object you would pass to tsdav's DAVClient, and will include information about your source CalDAV server.
  • source.calendar is the unique name identifier of your calendar on this CalDAV server.
  • destination.* is exactly the same as source.*, and will include the details of your work calendar. In the above example I'm using OAuth Hopper to skip OAuth authenticaion with Google, but it's not a must as it seems like tsdav supports OAuth authenticaion too.

Usage

  1. Configure your calendars as explained above and save the file at ~/.config/callibella/config.json
  2. Run npx callibella to start syncing without installation, or install it using npm install -g callibella and then use callibella
  3. Everything works? Add a cron job for it and have your calendars forever synced!
You might also like...

Readavocado obsidian plugin to sync your favorite highlights.

Readavocado Sync Plugin This plugin automatically export your Readavocado highlights into your Obsidian vault. Usage Install the Readavocado Sync Plug

Oct 31, 2022

Open source project that make it easy to sync your calendars in real time.

Open source project that make it easy to sync your calendars in real time.

Syncit 2.0 - We make it easy to sync your calendars in real time. This is an Open source project! Installation Run yarn in order to install all depend

Dec 15, 2022

Obsidian plugin to sync Pinboard.in links to Daily Notes

Obsidian Pinboard Sync An Obsidian plugin that adds links you've saved with Pinboard to your Obsidian Daily Notes, synchronizing periodically. Why? I'

Dec 1, 2022

Obsidian.md plugin to sync highlights/notes from koreader

Obsidian KOReader Plugin Sync KOReader notes in your Obsidian vault. The KOReader device must be connected to the device running obsidian to let the p

Dec 18, 2022

🔂 Send patches around to keep the system in sync.

The core idea is to use patches to keep the UI in sync between client and server, multiple clients, or multiple windows. It uses Immer as an interface

Sep 15, 2022

Sync pages from Notion to GitHub to be used as a static website (JAM)

Sync pages from Notion to GitHub to be used as a static website (JAM)

notion-jam Sync pages from Notion to GitHub to be used as a static website (JAM) Usage Quick Start Create a new Notion Integration Add Notion secret t

Nov 15, 2022

Obsidan Plugin: Simpread annote sync

描述 SimpRead.Unreader.Sync.mp4 安装此插件后,在简悦中加入稍后读 / 标注(包括:新增或更新)均可实时同步到 Obsidian 库相应的文件夹中。(每个稍后读(标注)对应一个 Markdown 文件) 意义 通常在 Web 标注的话,大多需要这样的操作步骤:标注后 → 复

Dec 28, 2022

Lip-sync VRM avatar client for zero-webcam mic-based vtubing

Lip-sync VRM avatar client for zero-webcam mic-based vtubing

VU-VRM A lip-sync VRM avatar client for zero-webcam mic-based vtubing: automattic.github.io/VU-VRM/ Why? Because multitasking. Because sometimes you n

Oct 19, 2022

Markdown note maker (with Git sync) using Tauri.

Markdown note maker (with Git sync) using Tauri.

Mediocre Markdown note maker (with Git sync) using Tauri. Screens Tech Stack Frontend Monaco Editor for the editor interface Chakra UI library Redux T

Dec 6, 2022
Owner
Yo'av Moshe
CTO @ Zaraz (zaraz.com)
Yo'av Moshe
A JavaScript Library To Make Your Work Work Easier/Faster

Functionalty.js (beta) About ✍️ This Is A JavaScript Library To Make Your Work Easier/Faster, You Can See Functionalty.js Website From Here Project Cr

Ali-Eldeba 16 Aug 30, 2022
A JavaScript Library To Make Your Work Work Easier/Faster

Functionality.js (beta) About ✍️ This Is A JavaScript Library To Make Your Work Easier/Faster, You Can See Functionalty.js Website From Here Project C

Ali-Eldeba 9 May 25, 2022
A JavaScript Library To Make Your Work Work Easier/Faster

Functionality.js About ✍️ This Is A JavaScript Library To Make Your Work Easier/Faster, You Can See Functionalty.js Website From Here Project Created

functionality 16 Jun 23, 2022
A personal semantic search engine capable of surfacing relevant bookmarks, journal entries, notes, blogs, contacts, and more, built on an efficient document embedding algorithm and Monocle's personal search index.

Revery ?? Revery is a semantic search engine that operates on my Monocle search index. While Revery lets me search through the same database of tens o

Linus Lee 215 Dec 30, 2022
Automatically sync your leetcode solutions to your github account - top 5 trending GitHub repository

LeetHub - Automatically sync your code to GitHub. Top 5 Trending JavaScript Repositories Available on: What is LeetHub? A chrome extension that automa

Qasim Wani 2.8k Dec 31, 2022
This tool allows you to test your chains.json file to see if your chains are available, syncing, or in sync.

Chains Tester This tool allows you to test your chains.json file to see if your chains are available, syncing, or in sync. This is an open source tool

Jorge S. Cuesta 9 Nov 4, 2022
Get a diff view of your Obsidian Sync, File Recovery and Git version history

Version History Diff (for Sync and File Recovery Core plugins and Git) Note This plugin uses private APIs, so it may break at any time. Use at your ow

null 39 Dec 26, 2022
A CLI tool to make Taobao's npm mirror sync your package immediately.

npm-mirror-sync A CLI tool to make Taobao's npm mirror sync your package immediately. 让淘宝的 NPM 镜像立即收录你的包的新版本。 背景 相信国内小伙伴都在用淘宝的 NPM 镜像(npmmirror.com)作为

CSS魔法 10 Jun 9, 2022
🍎 A simple application which enables you to sync readings from your Withings scale to a Notion page.

weight-logger weight-logger is a simple application which enables you to sync readings from your Withings scale to a Notion page. Preview Installation

Juri Adams 2 Jan 14, 2022
Infisical — Sync your .env securely in seconds.

Infisical Infisical is a simple, end-to-end encrypted secrets manager for your .env files. It enables teams to securely sync and manage .env files in

null 2.7k Jan 4, 2023