Because events are always connected to the user who created them, we will create and edit events on the user details page which is specified in web/user/view.ftl. Let's add the needed functionality to that page.
Working with TabbedPanes
Many interfaces in MUM are created using the TabbedPane macro. The tabs can be loaded independently using Ajax.
The calling tabbed pane
Now we create a tabbed pane where events are edited. For now it will only have one tab, which will load its content from /event/create.action. Add the following within the <@show.page /> block:
<@show.tabbedPane name="eventOperations">
<@show.tab name="event.create"
url="${base}/event/create.action?author=${user.id?c}" />
</@show.tabbedPane>
edit config/mum_messages.properties and add in "User keys":
tab.event.create=Create Event
The new tabbed pane will show up right below the first one:

Tabbed pane added to the "show user" view.
Now we will create the necessary templates for the event.create action. We will need two of them, one to display the form and one for the response after a successful creation.
The form
The create action displays a form, which we will write in the template web/event/create.ftl:
<#assign event=event?default(edit.emptyModel("Event")) />
<@edit.form model=event actionName="save">
<@edit.hidden name="event.author" value="${author.id?c}" />
<@edit.string name="event.title" value="${event.title?if_exists}"
required=true />
<@edit.date name="event.date" value=event.date?if_exists required=true />
<@edit.time name="event.time" value=event.time?if_exists required=true />
<@edit.text name="event.description" value="${event.description?if_exists}"
/>
<@edit.controls />
</@edit.form>
Once again edit mum_messages.properties and add follow lines:
label.Event.title=title
label.Event.date=date
label.Event.time=time
label.Event.description=description
As you may notice, all attributes beside description are marked as required. We will need to take care of that in the action processing the Values.
This is how it looks like:

The success message
For the success message we only take a simple template which will be saved as web/event/save.ftl:
Your event "${event.title?html}" was created successfully.
Well done!
There's no point in creating events if we can never reach them again. Let's give each user a way to list all his or her events (and more).