<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
<document>

	<properties>
		<title>Changing the Calendar and Timezone default</title>
		<author email="sebawagner@apache.org">
			OpenMeetings Team
		</author>
	</properties>

	<body>

		<section name="Changing the Calendar and Timezone default">

			<p>
				In general the timezone is configured in the user profile of each
				user, so changing the server timezone has no effect how to the users
				calendar for example.
				<br />
				<br />
				However there are some circumstances where there is no user profile
				available.
			</p>
		</section>

		<section
			name="Changing servers default timzeone for Emails and Invitations (display)">
			<p>
				Goto Administration &gt; Configuration and change the config-key:
				<tt>default.timezone</tt>
			</p>
			<p>Valid timezone have to meet standards! </p>
		</section>

		<section
			name="Changing first day in week for calendar from Sunday to Monday">

			<p>in the config.xml change the key: </p>
			<div class="xmlcode">
				&lt;!--
				<br />
				First day in the Week used by the Calendar
				<br />
				0 means Sunday
				<br />
				1 means Monday
				<br />
				this is the way how the Celendar inits a week
				<br />
				--&gt;
				<br />
				&lt;firstdayinweek&gt;0&lt;/firstdayinweek&gt;
				<br />
			</div>
		</section>

		<section
			name="Changing the default number of max participants of a conference room created via calendar">

			<p>Goto
				Administration &gt; Configuration and change the config-key:
				<tt>calendar.conference.rooms.default.size</tt>
			</p>
		</section>

	</body>

</document>