A syncable, in-browser calendar
JavaScript Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


PouchDB Calendar

A syncable, in-browser calendar, using PouchDB and FullCalendar.


The online demo maintains a working version.

To add an event, click on a day in the month view, or select a time-span in the day or week view. Click on the new (empty) event to add content. Similarly, click on an existing event to modify its content. Use drag-and-drop to modify the start and end times of an event, or to to convert an event from full-day to time-based and conversely. You might also modify the start time (in HH:MM format) by typing the new time at the beginning of the event label; use HH:MM-HH:MM to change the start and end times. To remove an event, click on the event and clear its content; the event will be deleted. Events classes are created by using the #name hash-tag syntax. Each event classes is mapped to attributes such as color.

To replicate your local (in-browser) calendar database, first create the destination database on your CouchDB server, then enter its URL in the Remote CouchDB box at the bottom of the page. Two-way synchronization will start and will restart automatically when you access the page again. Your CouchDB server needs to have CORS enabled. Look into the test/couchdb.ini file on how to do that. If you are using the start-couchdb.sh script in the test folder to start a per-user, local CouchDB instance, use as the URL.


You will need Node.js; the build is otherwise self-contained (npm will install the tools required).

git clone https://github.com/shimaore/pouchdb-calendar.git
cd pouchdb-calendar && npm install

To test, run

www-browser pouchdb-calendar/test/index.html

To test with a local CouchDB database, install CouchDB then run

(cd test && ./start-couchdb.sh) &

The database will be created in test/.db/.