diff --git a/IPython/html/services/notebooks/nbmanager.py b/IPython/html/services/notebooks/nbmanager.py
index caabebf..568c6a5 100644
--- a/IPython/html/services/notebooks/nbmanager.py
+++ b/IPython/html/services/notebooks/nbmanager.py
@@ -131,14 +131,18 @@ class NotebookManager(LoggingConfigurable):
model = self.save_notebook_model(model, model['name'], model['path'])
return model
- def copy_notebook(self, name, path=''):
- """Copy an existing notebook and return its new model."""
+ def copy_notebook(self, from_name, to_name=None, path=''):
+ """Copy an existing notebook and return its new model.
+
+ If to_name not specified, increment `from_name-Copy#.ipynb`.
+ """
path = path.strip('/')
- model = self.get_notebook_model(name, path)
- name = os.path.splitext(name)[0] + '-Copy'
- name = self.increment_filename(name, path)
- model['name'] = name
- model = self.save_notebook_model(model, name, path)
+ model = self.get_notebook_model(from_name, path)
+ if not to_name:
+ base = os.path.splitext(from_name)[0] + '-Copy'
+ to_name = self.increment_filename(base, path)
+ model['name'] = to_name
+ model = self.save_notebook_model(model, to_name, path)
return model
# Checkpoint-related