Zimbra offers Open Source email server software and shared calendar for Linux and the Mac
 
Go Back   Zimbra - Forums > Zimbra Collaboration Suite > Administrators

Welcome to the Zimbra - Forums!
Welcome, if you would like to post a comment please register. We also encourage you to explore all things Zimbra with our team and members of the community.

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 11-19-2008, 04:51 PM
Senior Member
 
Posts: 61
Default Calendar delegation & recieving invites

Hello, I am wanting to see how others deal with calendar delegations. If you have an administrative assistant working for you, has anyone found any tricks to make this smooth? I know that you can give the assistant 'admin' or 'manage' privileges to the boss calendar. But, the assistant does not receive copies of these invites when the boss is invited. What I am looking for, is the feature in exchange that is "Delegate receives copies of meeting-related messages sent to me".

This seems to be a missing piece for us in our zimbra intallation. We have a workaround to forward any calendar event to the assistant (this has it's own problems). Without these emails, it's kinda difficult for an assistant to act on invites promptly. Has anyone found any tricks or workarounds to make this more 'exchange like'?

-Jeff
Reply With Quote
  #2 (permalink)  
Old 11-19-2008, 09:07 PM
nrc nrc is offline
Special Member
 
Posts: 141
Default

All I can think to suggest is a forwarding rule, which you've already mentioned.

Sounds like you may want to vote for Bug 23336 - Admin should get email on meeting requests sent to boss
Reply With Quote
  #3 (permalink)  
Old 11-20-2008, 09:51 AM
Senior Member
 
Posts: 61
Default

Thanks for the reply, I have voted for that bug. The forwarding rule is OK, but causes a problem. When the assistant receives the forwarded invite and accepts it, it places the event on the assistant's calendar as well. An un-wanted side effect. We are on 4.5.11 now, upgrading to 5 soon. I have found a work around that is a bit better in 5. The boss creates a shared folder, and a rule that puts all calendar events in the shared folder. The assistant views this shared folder, and accepts/declines from here. Doing this does not put the event on the assistant calendar, which is a good thing.
Reply With Quote
  #4 (permalink)  
Old 06-30-2009, 06:42 PM
Elite Member
 
Posts: 481
Default

Quote:
Originally Posted by vandehey View Post
I have found a work around that is a bit better in 5. The boss creates a shared folder, and a rule that puts all calendar events in the shared folder. The assistant views this shared folder, and accepts/declines from here. Doing this does not put the event on the assistant calendar, which is a good thing.
Does anyone know what this rule would look like? It occurred to me to filter on "The following is a new meeting request:" in the message body, but I don't think that appears in all invitations (e.g. if sent from iCal).
__________________
Elliot Wilen
Berkeley, CA
Reply With Quote
  #5 (permalink)  
Old 06-30-2009, 08:44 PM
Outstanding Member
 
Posts: 596
Default

body include BEGIN:VCALENDAR would be one way.
Reply With Quote
  #6 (permalink)  
Old 07-01-2009, 09:55 AM
Senior Member
 
Posts: 61
Default

Quote:
Originally Posted by ewilen View Post
Does anyone know what this rule would look like? It occurred to me to filter on "The following is a new meeting request:" in the message body, but I don't think that appears in all invitations (e.g. if sent from iCal).
Yes. The filter criteria should be (if ANY criteria are met):

body CONTAINS meeting.ics
body CONTAINS text/calendar

This will catch calendar invites from both Outlook at ZWC.
Reply With Quote
  #7 (permalink)  
Old 07-01-2009, 06:32 PM
Elite Member
 
Posts: 481
Default

Thanks to both of you. I'd already hit upon

body CONTAINS Content-Type: text/calendar

and I was pairing it with

body CONTAINS method=REQUEST

as well as a separate filter for method=CANCEL

The idea being to look for multiple indicators so as to avoid incorrect filing. I will have to test further to make sure I catch everything from Outlook, ZWC, and iCal, but I have been able to confirm that vandehey's method works perfectly. I.e., if an invite appears in the boss's shared folder, the assistant only has to click Accept to approve the appointment on the boss's shared calendar.

I'll also have to do some testing to see if this will work when the assistant is using Outlook or iCal.
__________________
Elliot Wilen
Berkeley, CA
Reply With Quote
  #8 (permalink)  
Old 07-02-2009, 12:32 AM
Elite Member
 
Posts: 481
Default

Okay, based on some reading of the RFCs, I think this will capture any meeting-related message from any source (even Google Calendar), with a fairly low chance of capturing anything else.

Code:
If ALL of the following conditions are met:

Body contains Content-Type: text/calendar
Body contains method=
Body contains METHOD:
Body contains VEVENT
Body contains VCALENDAR

Perform the following actions:

File into Folder <folder_name>
I'll test in the morning with the "assistant" using various clients.
__________________
Elliot Wilen
Berkeley, CA
Reply With Quote
  #9 (permalink)  
Old 07-02-2009, 06:45 PM
Elite Member
 
Posts: 481
Default

Another busy day but I was able to test with the "assistant" using Outlook, and it works.

Now I'd like to write a shell script, say zmdelegate.sh <boss_account> <assistant_account>. This is the logic and some of the relevant zimbra commands--if anyone beats me to writing the script I won't cry.

Steps:

Verify <boss_account> and <assistant_account> exist on the server
Make sure Meeting Notifications Folder doesn't already exist; if it does, then exit.
Create Meeting Notifications Folder
Share Meeting Notifications Folder and Calendar to assistant R/W
Make sure that mountpoint names on assistant's account don't already exist
Accept shares by assistant (only for web interface; Outlook must be done at the workstation)
Verify that filter rule with same name doesn't already exist
Create filter to file meeting messages into folder

All can be done via zmmailbox

zmmailbox -z -m <boss_account> gaf will list all folders for boss's account

Can also do zmmailbox -z -m <boss_account> gf "<folder name>"; will return info on folder, or error if folder doesn't exist.

zmmailbox -z -m <boss_account> cf -V message "</absolute/path>" will create a folder

zmmailbox -z -m <boss_account> mfg "</absolute/path>" account <assistant_account> rwidx will share the message or calendar folder to assistant.

zmmailbox -z -m <assistant_account> cm -V appointment -F# "</path/as_shown_in_assistant_account>" <boss_account> "</absolute/path/to/Calendar>"
will mount the shared calendar in the assistant's account and check it to be visible (via the -F# argument)

zmmailbox -z -m <assistant_account> cm -V message "</path/as_shown_in_assistant_account>" <boss_account> "</absolute/path/to/folder>" will mount the shared folder in the assistant's account.

zmmailbox -z -m <boss_account> gfrl will list filter rules--useful to check beforehand to avoid filter name conflicts. (pipe through grep).

zmmailbox -z -m <boss_account> afrl "<rule_name>" body contains "Content-Type: text/calendar" body contains "method=" body contains "METHOD:" body contains "BEGIN:VEVENT" body contains "BEGIN:VCALENDAR" fileinto "<folder_name>" stop will create the necessary filter rule.
__________________
Elliot Wilen
Berkeley, CA
Reply With Quote
  #10 (permalink)  
Old 07-03-2009, 01:58 PM
Elite Member
 
Posts: 481
Default shell script to delegate between accounts

First real shell scripting I've done...

Note that this should no longer be necessary once 6.0 (GunsNRoses) is released.

Code:
# ! /bin/sh
#
# Script to perform Calendar delegation between accounts
#
# Usage ./zmdelegate source_account delegate_account
# Should be executed as zimbra user.
# 
#
# Name of notifications folder
notifications="Meeting Notifications"
# Name of filter used on boss's account
filtername="Meeting Notifications"
# response variable
response=
# Note: could do all checking and then output list of all problems
# instead of exiting after first detected problem
#
# Verify exactly two arguments
# (Could use shell Shift command to allow multiple delegation)
if test $# -ne 2
then
echo "Must supply exactly two arguments."
exit 1
fi
# Assign variables
boss_account=$1
assistant_account=$2
# Verify <boss_account> and <assistant_account> exist on the server
if ! zmmailbox -z -m $boss_account gms 1>/dev/null 2>/dev/null
then
echo "Boss account doesn't exist. Terminating."
exit 1
fi
if ! zmmailbox -z -m $assistant_account gms 1>/dev/null 2>/dev/null
then
echo "Assistant account doesn't exist. Terminating."
exit 1
fi
# Check if Meeting Notifications Folder already exists; if it does, then post warning and ask if want to continue.
# Otherwise Create Meeting Notifications Folder
if zmmailbox -z -m $boss_account gf "$notifications" 1>/dev/null 2>/dev/null
then
	while [ "$response" != "y"  -a "$response" != "n" ]
		do
			echo -e 'Folder "\c'
			echo -e "$notifications\c"
			echo -e '" already exists, use it to store/share notification messages? (y/n) \c'
			read response
	done
	if [ "$response" = n ]
	then
		echo "Command cancelled."
		exit 1
	fi
else
	echo -e 'Creating folder "\c'
	echo -e "$notifications\c"
	echo -e '".'
	zmmailbox -z -m $boss_account cf -V message "/$notifications" 1>/dev/null 2>/dev/null
fi
# Make sure that mountpoint names on assistant's account don't already exist
# Am having to use account names in names of sharepoints because I don't see
# a way to discover display names via CLI. Could add user-defined sharepoint
# names later.
if zmmailbox -z -m $assistant_account gf "/$boss_account $notifications" 1>/dev/null 2>/dev/null
then
echo -e 'Naming conflict--delete or unmount folder "\c'
echo -e "$boss_account $notifications\c"
echo -e '" on assistant account.'
exit 1
fi
if zmmailbox -z -m $assistant_account gf "/$boss_account Calendar" 1>/dev/null 2>/dev/null
then
echo -e 'Naming conflict--delete or unmount calendar "\c'
echo -e "$boss_account Calendar\c"
echo -e '" on assistant account.'
exit 1
fi
#Verify that filter rule with same name doesn't already exist
if eval zmmailbox -z -m $boss_account gfrl | grep ^\"Meeting\ Notifications\" 1>/dev/null
then
echo -e 'Naming conflict--delete or rename filter "\c'
echo -e "$filtername\c"
echo -e '" on boss account.'
exit 1
fi
# Share Meeting Notifications Folder and Calendar to assistant R/W
echo "Sharing Meeting Notifications Folder."
zmmailbox -z -m $boss_account mfg "/$notifications" account $assistant_account rwidx
echo "Sharing Calendar."
zmmailbox -z -m $boss_account mfg "/Calendar" account $assistant_account rwidx
#Accept shares by assistant (only for web interface; Outlook must be done at the workstation)
echo "Mounting Meeting Notifications Folder on assistant account. Right-click in Zimbra Web Client to change name."
zmmailbox -z -m $assistant_account cm -F# "/$boss_account $notifications" $boss_account "/$notifications" 1>/dev/null
echo "Mounting Calendar Folder on assistant account. Right-click in Zimbra Web Client to change name."
zmmailbox -z -m $assistant_account cm -F# "/$boss_account Calendar" $boss_account "/Calendar" 1>/dev/null
echo '(In Outlook, use File>Open>Other User’s Folder to access.)'
#Create filter to file meeting messages into folder
echo "Creating filter in boss account."
zmmailbox -z -m $boss_account afrl -f "$filtername" body contains "Content-Type: text/calendar" body contains "method=" body contains "METHOD:" body contains "BEGIN:VEVENT" body contains "BEGIN:VCALENDAR" fileinto "/$notifications" stop
echo "Delegation complete!"
__________________
Elliot Wilen
Berkeley, CA

Last edited by ewilen : 07-03-2009 at 02:04 PM.
Reply With Quote
Reply


Thread Tools
Display Modes


Similar Threads

Why Join?

Registering let's you ask questions, makes it easier to search, displays any files attached to posts, and notifies you about replies.

Zimbrablog.com




 

Search Engine Optimization by vBSEO 3.1.0