Java Webdav Server Library

Supports: Webdav level 2 / CalDav / CardDav

Integrate your java web app with desktop and mobile devices for files, calendars and contacts.
Your data could be relational databases, file system, web services or any other data source.
Supports Windows, Mac, Linux, Android and iOS devices, and pretty much everything else

Getting started tutorials

How do i use it?

Milton lets you use either of two programming styles

Annotations framework. Create controller classes with annotated method such as @Get, @Move, etc. This is a high level framework which allows Milton to prevent most implementation mistakes.

With annotations

  public List getBands(..) {
  return Band.findAll();

Resource API. Create implementations of Kademi's resource interfaces. This is the oldest and most mature approach. It gives the most flexibility, but some aspects can be trickier to implement correctly then with annotations.

Without annotations

  class SolarSystem implements CollectionResource {
  public List getChildren() {
  files = new ArrayList();
  for( Planet s : getPlanets()){
  return files;


License information

A free, apache licensed, community edition for basic webdav.

An enterprise edition for advanced webdav capabilities such as Carddav, Caldav and DAV level2+. The enterprise edition is normally offered on a per server/JVM fee. OEM licensing is also available on request where there is no server counting

Read about licensing



The tutorials are guided, step-by-step instructions with sample code, videos, screen shots and complete projects.

Webdaw server tutorials
Source Code
Source code

Milton source code is available on Github here

Milton source code

API reference docs and developer guide, see the milton documentation

Read the manual